MySQL创建数据表综合实例。
1、创建数据表(方式一)
示例:创建数据表的同时设置约束、索引。
-- 判断数据表是否存在,存在则删除
DROP TABLE IF EXISTS tb_student;
-- 创建“学生信息”数据表
CREATE TABLE IF NOT EXISTS tb_student
(
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '编号', -- 学号,并设置主键约束
name VARCHAR(10) NOT NULL COMMENT '姓名', -- 姓名,并设置非空约束
email VARCHAR(20) UNIQUE COMMENT '邮箱', -- 邮箱,并设置唯一性约束
sex CHAR(2) DEFAULT '女' COMMENT '性别', -- 性别,并设置默认约束
age INT COMMENT '年龄',
class_id INT NOT NULL,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
INDEX idx_class_id (class_id) -- 创建索引
) COMMENT = '学生信息表';
2、创建数据表(方式二)
示例:创建普通的数据表。
-- 判断数据表是否存在,存在则删除
DROP TABLE IF EXISTS tb_student;
-- 创建“学生信息”数据表
CREATE TABLE IF NOT EXISTS tb_student
(
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '编号',
name VARCHAR(10) COMMENT '姓名',
email VARCHAR(20) COMMENT '邮箱',
sex CHAR(2) COMMENT '性别',
age INT COMMENT '年龄',
class_id INT NOT NULL,
create_time TIMESTAMP COMMENT '创建时间'
) COMMENT = '学生信息表';
3、创建约束
示例:创建数据表的相关约束。
-- 创建姓名的非空约束
ALTER TABLE tb_student MODIFY COLUMN name VARCHAR(10) NOT NULL COMMENT '姓名';
-- 创建邮箱的唯一性约束
ALTER TABLE tb_student ADD CONSTRAINT uniq_email UNIQUE(email);
-- 创建性别的默认约束
ALTER TABLE tb_student ALTER COLUMN sex SET DEFAULT '女';
-- 创建时间的默认约束
ALTER TABLE tb_student MODIFY COLUMN create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';
4、创建索引
示例:给class_id(班级编号)字段创建普通索引。
-- 创建普通索引
CREATE INDEX idx_class_id ON tb_student(class_id);
5、新增字段
示例:新增class_name(班级名称)字段,该字段位于class_id(班级编号)字段的后面。
-- 新增字段
ALTER TABLE tb_student ADD COLUMN class_name VARCHAR(10) NOT NULL COMMENT '班级名称' AFTER class_id;
6、修改字段定义
示例:修改class_name(班级名称)字段的类型,将原先的VARCHAR(10)改成VARCHAR(20)。
-- 修改字段定义
ALTER TABLE tb_student MODIFY class_name VARCHAR(20) NOT NULL COMMENT '班级名称';
7、修改字段名称
示例:将class_name(班级名称)字段名称修改为:class_name2
-- 修改字段名称
ALTER TABLE tb_student CHANGE class_name class_name2 VARCHAR(20) NOT NULL COMMENT '班级名称';
8、删除字段
示例:删除class_name2字段。
-- 删除字段
ALTER TABLE tb_student DROP COLUMN class_name2;
9、重命名表名
示例:将tb_student(学生信息表)重命名为:tb_student2。
-- 重命名表名
ALTER TABLE tb_student RENAME AS tb_student2;
-- 或者:使用RENAME TABLE语句
RENAME TABLE tb_student To tb_student2;
10、复制表
示例:创建一份数据表tb_student(学生信息表)的备份tb_student_bet(表结构+表数据)。
-- 复制表
CREATE TABLE tb_student_bet
AS SELECT * FROM tb_student;
11、删除数据表
示例:删除tb_student(学生信息表)。
-- 删除数据表
DROP TABLE IF EXISTS tb_student;