数据定义语言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_schema
,performance_schema
,sys
都是系统自带的数据库。
- 选择使用某个数据库命令
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