数据库模式定义语言并非,DDL数据库模式定义语言是语言(结构化查询语言)的组成部分。
SQL语言包括:四种主要程序设计语言类别的语句:(DDL,Data Definition Language),(Data Manipulation Language, DML),(DCL)和事务控制语言(TCL)。
这里主要介绍DDL和DML语言
常见的DDL和DML有:
DDL{ CREATE DATABASE 创建数据库,CREATE TABLE 创建数据库表格,ALTER TABLE 修改数据库表格,DROP TABLE删除数据库表格,CREATE VIEW 创建查询命令,ALTER VIEW 修改查询命令,DROP VIEW删除查询命令}
DML{
,,,}1.登录数据库:mysql -u root -p
例如:
sue@suepc:~/abc$ mysql -u root -p
Enter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 7Server version: 5.7.19 MySQL Community Server (GPL)
2.显示当前所有数据库:show databases;
例如:
mysql> show databases;
+--------------------+| Database |+--------------------+| information_schema || abc || boss || eg || example || lxh || mysql || performance_schema || sys |+--------------------+9 rows in set (0.38 sec)3.连接数据库:use database(database为数据库名),以下使用的是abc数据库;
例如:
mysql> use abc;
Database changed4.查看当前连接的数据库:select database();
例如:
mysql> select database();
+------------+| database() |+------------+| abc |+------------+1 row in set (0.00 sec)5.查看当前数据库包含的表信息: show tables;(注意:最后有个s)
mysql> show tables;
+---------------------------+
| Tables_in_abc+---------------------------+| user |+---------------------------+
1rows in set (0.00 sec)6.删除数据库:drop database abc;删除后查看数据库是否存在:use abc;(下列例子数据库不存在所以报错)
例如:
mysql> drop database abc;
Query OK, 0 rows affected (0.36 sec)mysql> use abc;
ERROR 1049 (42000): Unknown database 'abc'
7.下边开始建立一个新的数据库并进行增删查改。注意:表操作,操作之前应连接某个数据库。
例如:
/*新建一个名为suedatabase的数据库*/
mysql> create database sue_database;
Query OK, 1 row affected (0.04 sec)/*连接数据库*/
mysql> use sue_database;
Database changed/*建表*/
mysql> CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1),birth DATE, birthaddr VARCHAR(20));
Query OK, 0 rows affected (0.19 sec)/*插入数据*/
/*Insert是语言,主要是插入数据*/
/*Alter是语言,主要是比如修改一些表结构,修改用户等*/
mysql> insert into mytable value ('aaa','f','1985-11-6','us');
Query OK, 1 row affected (0.04 sec)
/*在表中增加字段:*/
mysql> alter table mytable add column num int(30)
-> ;Query OK, 0 rows affected (0.46 sec)Records: 0 Duplicates: 0 Warnings: 0/*查看表结构*/
mysql> desc mytable;
+-----------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-----------+-------------+------+-----+---------+-------+| name | varchar(20) | YES | | NULL | || sex | char(1) | YES | | NULL | || birth | date | YES | | NULL | || birthaddr | varchar(20) | YES | | NULL | || num | int(30) | YES | | NULL | |+-----------+-------------+------+-----+---------+-------+5 rows in set (0.02 sec)mysql> insert mytable value('abc','m',1991-11-12,'jp',50);
ERROR 1292 (22007): Incorrect date value: '1968' for column 'birth' at row 1mysql> select * from mytable;+------+------+------------+-----------+------+| name | sex | birth | birthaddr | num |+------+------+------------+-----------+------+| aaa | f | 1985-11-06 | us | NULL |+------+------+------------+-----------+------+1 row in set (0.00 sec)
/*注意:“Insert 向数据库表添加是数据行”,Alter 修改数据库表属性(如新增资料行)*/
/*DML语言update ,delete, select ,insert*/
/*更新字段内容*/
mysql> update mytable set num=50 where birth = "1985-11-06" ;
Query OK, 1 row affected (0.09 sec)Rows matched: 1 Changed: 1 Warnings: 0
/*查看表 mytable 中所有数据*/
mysql> select * from mytable;
+------+------+------------+-----------+------+| name | sex | birth | birthaddr | num |+------+------+------------+-----------+------+| aaa | f | 1985-11-06 | us | 50 |+------+------+------------+-----------+------+1 row in set (0.00 sec)8.导入数据库abc.sql
例如:
方法1:
sue@suepc:~/abc$ mysqldump -u root -p 123456 abc < /home/sue/abc/abc.sql
Enter password: -- MySQL dump 10.13 Distrib 5.7.19, for Linux (x86_64)---- Host: localhost Database: 123456-- -------------------------------------------------------- Server version 5.7.19Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 34Server version: 5.7.19 MySQL Community Server (GPL)mysql> show databases;
+--------------------+| Database |+--------------------+| information_schema || abc |+--------------------+2 rows in set (0.12 sec)方法二:
导入数据库,常用source 命令进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source /home/sue/abc/defg.sql;
备份数据库:sue@suepc:~$ mysqldump -u root -p sue_database > 123.sql (出错)
mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'gtid\_mode'': Table 'performance_schema.session_variables' doesn't exist (1146)