1.展示数据库中的表
如:SHOW TABLES FROM myname;
FROM myname
省略时,显示当前数据库下的表。
2.创建表
创建表时,至少需要:
_1.给表起个名字
_2.给表定义一些列,且给这些列都起个名
_3.每一个列都需要定义一种数据类型
_4.如需要,可给这些列定义相应的属性,比如设置默认值等。
上述内容也称为表的结构或表的定义。列有一个别名,称为字段。
2.1.基本语法
// 风格1
CREATE TABLE 表名 (
列名1 数据类型 [列的属性],
...
列名n 数据类型 [列的属性]
);
// 风格2
CREATE TABLE '表名' (
'列名1' 数据类型 [列的属性],
...
'列名n' 数据类型 [列的属性]
);
如我们可用如下语句创建表:
CREATE TABLE first_table (
first_column INT,
second_column VARCHAR(100)
);
2.2.为创建表语句添加注释
CREATE TABLE first_table (
first_column INT,
second_column VARCHAR(100)
) COMMENT ‘第一个表’;
2.3.创建现实生活中的表
如,创建一个学生基本信息表
CREATE TABLE student_info (
number INT,
name VARCHAR(5),
sex ENUM('男', '女'),
id_number CHAR(18),
department VARCHAR(30),
major VARCHAR(30),
enrollment_time DATE
) COMMENT '学生基本信息表';
再创建一个学生成绩表
CREATE TABLE student_score (
number INT,
subject VARCHAR(30),
score TINYINT
) COMMENT '学生成绩表';
类似的,创建表时,可以加上IF NOT EXISTS
,此时,表名不存在则创建;否则,什么都不做。如
CREATE TABLE IF NOT EXISTS student_score (
number INT,
subject VARCHAR(30),
score TINYINT
) COMMENT '学生成绩表';
2.4.删除表
语法:DROP TABLE 表1, ..., 表n;
类似的,删除时,可以加上IF EXISTS
,此时表明存在,则删除;否则,什么都不做。如DROP TABLE IF EXISTS first_table;
2.5.查看表结构
可以用下列语句,它们的效果是一样的:
DESCRIBE 表名;
DESC 表名;
EXPLAIN 表名;
SHOW COLUMNS FROM 表名;
SHOW FIELDS FROM 表名;
2.6.直接使用某个数据库中的某个表
语法:数据库名.表名
2.7.修改表
在创建好表之后,如果对表的结构不满意,比如想增加或删除一列,想修改某一列的数据类型或属性,或想对表名或列名进行重命名等,可使用MYSQL
提供的一系列修改表结构的语句。
_1.修改表名
_1.1.如:ALTER TABLE 旧表名 RENAME TO 新表名;
_1.2.如:ALTER TABLE 旧表名1 TO 新表名1, 旧表名2 TO 新表名2;
_2.增加列
如:ALTER TABLE 表名 ADD COLUMN 列名 数据类型 [列的属性];
默认下,新增列会放到现有最后一列的后面,也可在新增列时指定它的位置。
_2.1.添加到第一列
如:ALTER TABLE 表名 ADD COLUMN 列名 列的类型 [列的属性] FIRST;
_2.2.添加到指定列的后面
如:ALTER TABLE 表名 ADD COLUMN 列名 列的类型 [列的属性] AFTER 指定列名;
_3.删除列
如:ALTER TABLE 表名 DROP COLUMN 列名;
4.修改列信息
_4.1.方式1
如:ALTER TABLE 表名 MODIFY 列名 新数据类型 [新属性];
需注意,修改后的数据类型和属性需要兼容现有的数据
_4.2.方式2
如:ALTER TABLE 表名 CHANGE 旧列名 新列名 新数据类型 [新属性];
_4.3.修改列的排列位置
(1).放到第一列
如:ALTER TABLE 表名 MODIFY 列名 列的类型 列的属性 FIRST;
(2).将列放到指定列后面
如:ALTER TABLE 表名 MODIFY 列名 列的类型 列的属性 AFTER 指定列名;
_5.一条语句包含多个修改操作
如:ALTER TABLE 表名 操作1, 操作2;