数据定义语言DDL

首先需要启动 MySQL 服务,命令行输入mysql -uroot -p之后输入密码即可连接上数据库。

创建数据库

  • 创建数据库可以直接使用命令:
CREATE DATABASE 数据库名;

注意最后的;结束语法不能丢掉,否则会认为你的命令没有输出完,敲enter键后会直接换行输出。

例如:

mysql> CREATE DATABASE yw1402;
Query OK, 1 row affected (0.01 sec)

创建完后,会提示 Query OK, 1 row affected,表示查询完成,所有的DDL和DML操作执行完成后都会提示。

  • 查看 MySQL 已有的数据库:
SHOW DATABASES;

执行完后的结果例如:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| njuphy             |
| performance_schema |
| sakila             |
| sys                |
| test               |
| world              |
| yw1402             |
+--------------------+
9 rows in set (0.02 sec)

这些数据库里面,information_schemaperformance_schemasys 都是系统自带的数据库。

  • 选择使用某个数据库命令
USE 数据库名;

同时如果想要查看该数据库下的表,则使用命令

SHOW TABLES;

删除数据库

  • 如果不想使用某个数据库,则可使用如下命令删除.
DROP DATABASE 数据库名;

创建表

  • 在某个数据库里面,创建表的命令为:
CREATE TABLE 表名
{
    列名称1 数据类型 约束;
    列名称2 数据类型 约束;
    列名称3 数据类型 约束;
    ...
}

例如在 yw1402 数据库中创建 student 表:

mysql> CREATE TABLE Student(id int(4), name varchar(20),age int(2));
Query OK, 0 rows affected, 2 warnings (0.06 sec)
数据类型 描述
integer(size) int(size) smallint(size) tinyint(size) 仅容纳整数。在括号内规定数字的最大位数
decimal(size,d) numeric(size,d) 容纳带有小数的数字。"size" 规定数字的最大位数。"d" 规定小数点
char(size) 容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。在括号中规定字符串的长度。
varchar(size) 容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。在括号中规定字符串的最大长度。
date(yyyymmdd) 容纳日期。

建表完成后可使用 DESC 表名查看表的基本信息。

mysql> DESC student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| age   | int         | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

DESC 命令会查看表的定义,但输出的信息还不够全面,所以,如果想要查看更全的信息,可通过查看表的创建语句的SQL来得到:

SHOW CREATE TABLE 表名 \G;

删除表

表的删除语句有两种,一种是 DROP 语句,SQL 语句为:

DROP TABLE 表名;

另一种为 TRUNCATE 语句,命令如下:

TRUNCATE TABLE 表名;

这二者的区别简单理解为 DROP 语句删除表之后,可以通过日志进行回复,而 TRUNCATE 删除表之后永远恢复不了,所以一般不使用 TRUNCATE 进行表的删除。

修改表

如果我们对已经创建好的表进行修改,此时需要使用到 ALTER 命令。

ALTER TABLE 语句用于在已有的表中添加,修改或删除列。

  • 在表中添加列
ALTER TABLE 表名 ADD 列名 数据类型;
  • 删除表中的列
ALTER TABLE 表名 DROP COLUMN 列名;
  • 改变表中列的数据类型
ALTER TABLE 表名 ALTER 列名 新数据类型;
  • 对表名进行修改
ALTER TABLE 表名 RENAME 新表名;

相关ALTER TABLE 命令可参考:https://www.runoob.com/mysql/mysql-alter.html