内容正文:
MySQL数据库应用开发
单元3 MySQL表管理
主讲教师 张亚新
任务3.2 MySQL表管理
表的操作
知识点小结
本节实验
任务3.2 MySQL表管理
能力目标
1.掌握表的创建(重点);
2.掌握表的修改(难点)。
思政目标
1.培养踏实严谨的工作作风;
2.锻炼团结协作的工作能力。
表的操作
表是数据库中最为重要的数据库对象。
创建表前,需要根据数据库设计的结果确定表名、字段名及数据类型、约束等信息。
还要为每张表选择一个合适的存储引擎。
表的操作:
创建表,查看表,修改表,删除表
创建表
在同一个数据库中,表名不能有重名。
创建数据表可使用CREATE TABLE命令。
语法格式:
CREATE TABLE [IF NOT EXISTS] 表名(
字段名称 字段类型 [完整性约束条件]
...)
ENGINE=引擎名称 CHARSET=’编码方式’;
说明:
1.语法格式中“[]”表示可选的。
创建表
说明(续):
2. IF NOT EXISTS:如果数据库中已经存在某个表,再来创建一个同名的表,这时会出现错误,为了避免错误信息,可以在创建表的前面加上这个判断,只有该表目前不存在时才执行CREATE TABLE操作。
3.表名:要创建的表名。
4.字段的定义。包括指定字段名、数据类型、是否允许空值,指定默认值、主键约束、唯一性约束、注释字段名、是否为外键等。
创建表
说明(续):
完整性约束条件:
PRIMARY KEY主键(唯一来标识的,每一个表都一个,自动非空)
AUTO_INCREMENT自增长
FOREIGN KEY外键
NOT NULL非空
UNIQUE KEY唯一
DEFAULT默认值
创建表的示例
例:在StudentInfo数据库中创建Student表(学生表),包括字段:学号(sno,非空,主键,char(10)),姓名(sname,非空,varchar(20)),性别(ssex,char(2)),出生日期(sbirth,date,非空),专业号(zno,varchar(20)),班级(sclass,varchar(10))。
CREATE TABLE IF NOT EXISTS ‘student’(
sno char(10) NOT NULL PRIMARY KEY,
sname VARCHAR(20) NOT NULL ,
ssex ENUM(‘男’,’女’) NOT NULL DEFAULT ‘男’,
sbirth date NOT NULL ,
zno VARCHAR(20) NULL COMMENT ‘专业号’,
sclass varchar(10) NULL COMMENT ‘班级’
)ENGINE=INNODB CHARSET=UTF8;
8
查看表
1)显示表的名称
可以使用SHOW TABLES语句来显示指定数据库中存放的所有表名
语法格式: SHOW TABLES ;
2)显示表的结构
可使用DESCRIBE/DESC语句
语法格式:
DESCRIBE 表名;
DESC 表名;
示例:查看student的表结构。
DESCRIBE student;
DESC student;
修改表
ALTER TABLE用于更改原有的结构。语法格式:
ALTER TABLE table_name
|ADD [COLUMN] column_definition[ FIRST | AFTER col_name] //添加字段
| ALTER [COLUMN] col_name {SET DEFAULT LITERAL | DROP DEFAULT} //修改字段
| CHANGE [COLUMN] old_col_name column_definition [FIRST| AFTER col_name] //重命名字段
| MODIFY [COLUMN] column_definition [FIRST | AFTER col_name] //修改字段
| DROP [COLUMN] col_name //删除列
修改表—重命名
方法一:语法格式: ALTER TABLE 表名 RENAME [TO|AS] 新表名;
注:TO 或AS都可以,也以省略掉
例如:
ALTER TABLE student RENAME TO student01;
方法二:语法格式:RENAME TABLE 表名 TO 新表名;
注:这里面的TO不可以省略
例如:
RENAME TABLE stude