MySQL:表的创建、删除、修改

1、创建表

  • 方式一:

语法格式:

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; 
复制代码

2、查看表结构

在MySQL中创建好数据表之后,可以查看数据表的结构。MySQL支持使用DESCRIBE/DESC语句查看数据表结构,也支持使用SHOW CREATE TABLE语句查看数据表结构。

语法格式如下:

SHOW CREATE TABLE 表名;
复制代码

使用SHOW CREATE TABLE语句不仅可以查看表创建时的详细语句,还可以查看存储引擎和字符编码。

3、修改表

修改表指的是修改数据库中已经存在的数据表的结构,而不是修改表中的数据,不要弄错了。

使用 ALTER TABLE 语句可以实现:

  • 1、向已有的表中添加列

语法格式:

#【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;
复制代码
  • 3、删除现有表中的列

语法格式:

ALTER TABLE 表名 DROP 【COLUMN】字段名
复制代码

举例:

ALTER TABLE  dept
DROP job_id; 
复制代码

  • 4、重命名现有表中的列

语法格式:

ALTER TABLE 表名 CHANGE 【column】 列名 新列名 新数据类型;
复制代码

举例:

ALTER TABLE dept
CHANGE department_name dept_name varchar(15); 
复制代码

4、重命名表

语法格式:

RENAME TABLE emp
TO myemp;
复制代码

5、删除表

语法格式:

DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];
复制代码

IF EXISTS的含义为:如果当前数据库中存在相应的数据表,则删除数据表;如果当前数据库中不存在相应的数据表,则忽略删除语句,不再执行删除数据表的操作。

举例:

DROP TABLE dept80;
复制代码

注意: DROP TABLE 语句不能回滚,在实际工作中要小心谨慎!

6、清空表

语法格式:

TRUNCATE TABLE 数据表;
复制代码

举例:

#这里清空的是表中的数据,表的结构不会删除
TRUNCATE TABLE dept;
复制代码

注意: TRUNCATE TABLE 语句也是不能回滚的,在实际工作中要小心谨慎!

爱在结尾:自己学习到:1、创建表的两种方式 ; 2、表结构的查看 ; 3、表中添加列(add)、删除列(drop)、重命名列(change)、修改列(modify) ; 4、表的清空、删除、重命名、修改都应该谨慎而行

猜你喜欢

转载自blog.csdn.net/m0_71777195/article/details/126319372