语法格式:
- CREATE TABLE [IF NOT EXISTS] 表名(
- 字段1, 数据类型 [约束条件] [默认值],
- 字段2, 数据类型 [约束条件] [默认值],
- 字段3, 数据类型 [约束条件] [默认值],
- ……
- [表约束条件]
- );
- 复制代码
加上了IF NOT EXISTS关键字,则表示:如果当前数据库中不存在要创建的数据表,则创建数据表;如果当前数据库中已经存在要创建的数据表,则忽略建表语句,不再创建数据表。[ ]内的都是可选的,根据实际情况;其它的都是必须写的。
举例:
- CREATE TABLE emp (
- -- int类型
- emp_id INT,
- -- 最多保存20个中英文字符
- emp_name VARCHAR(20),
- -- 总位数不超过15位
- salary DOUBLE(10,2),
- -- 日期类型
- birthday DATE
- );
- 复制代码
emp表结构显示:
语法格式:
- CREATE TABLE 表名
- AS
- 查询语句;
- 复制代码
举例:
- #将employees表中所有的数据添加到emp1中
- CREATE TABLE emp1 AS SELECT * FROM employees;
-
- #创建的emp2是空表,是一个表结构
- CREATE TABLE emp2 AS SELECT * FROM employees WHERE 1=2;
- 复制代码
在MySQL中创建好数据表之后,可以查看数据表的结构。MySQL支持使用DESCRIBE/DESC
语句查看数据表结构,也支持使用SHOW CREATE TABLE
语句查看数据表结构。
语法格式如下:
- SHOW CREATE TABLE 表名;
- 复制代码
使用SHOW CREATE TABLE
语句不仅可以查看表创建时的详细语句,还可以查看存储引擎和字符编码。
修改表指的是修改数据库中已经存在的数据表的结构,而不是修改表中的数据,不要弄错了。
使用 ALTER TABLE 语句可以实现:
语法格式:
- #【FIRST|AFTER 字段名】是把要插入的字段名放在已经存在的字段的前面或者后面
- ALTER TABLE 表名 ADD 【COLUMN】 字段名 字段类型 【FIRST|AFTER 字段名】;
- 复制代码
举例:
- #向dept表中添加新的一列,列名是job_id,数据类型是varchar(15)
- #添加新列默认的位置是放在最后面
- ALTER TABLE dept
- ADD job_id varchar(15);
- 复制代码
- 2、修改现有表中的列
可以修改列的数据类型,长度、默认值和位置
语法格式:
- ALTER TABLE 表名 MODIFY 【COLUMN】 字段名 字段类型 【DEFAULT 默认值】【FIRST|AFTER 字段名】;
- 复制代码
举例:
- #修改dept表中last_name中的数据类型是varchar(30)
- ALTER TABLE dept
- MODIFY last_name VARCHAR(30);
-
- #修改dept表中salary中的数据类型是double(9,2),默认值是1000
- ALTER TABLE dept
- MODIFY salary double(9,2) default 1000;
- 复制代码
语法格式:
- ALTER TABLE 表名 DROP 【COLUMN】字段名
- 复制代码
举例:
- ALTER TABLE dept
- DROP job_id;
- 复制代码
语法格式:
- ALTER TABLE 表名 CHANGE 【column】 列名 新列名 新数据类型;
- 复制代码
举例:
- ALTER TABLE dept
- CHANGE department_name dept_name varchar(15);
- 复制代码
语法格式:
- RENAME TABLE emp
- TO myemp;
- 复制代码
语法格式:
- DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];
- 复制代码
IF EXISTS
的含义为:如果当前数据库中存在相应的数据表,则删除数据表;如果当前数据库中不存在相应的数据表,则忽略删除语句,不再执行删除数据表的操作。
举例:
- DROP TABLE dept80;
- 复制代码
注意: DROP TABLE 语句不能回滚,在实际工作中要小心谨慎!
语法格式:
- TRUNCATE TABLE 数据表;
- 复制代码
举例:
- #这里清空的是表中的数据,表的结构不会删除
- TRUNCATE TABLE dept;
- 复制代码
注意: TRUNCATE TABLE 语句也是不能回滚的,在实际工作中要小心谨慎!
爱在结尾:自己学习到:1、创建表的两种方式 ; 2、表结构的查看 ; 3、表中添加列(add)、删除列(drop)、重命名列(change)、修改列(modify) ; 4、表的清空、删除、重命名、修改都应该谨慎而行