02-数据库-续
三. 数据定义语言
1. 数据库的管理
1.1 练习
# 课堂练习
CREATE DATABASE authentication1 CHARSET=UTF8;
CREATE DATABASE authentication2 CHARSET=GBK;
DROP DATABASE authentication2;
# 查询所有数据库是否创建成功
SHOW DATABASES ;
# 检查两个数据库的字符集是否正确
SHOW CREATE DATABASE authentication1;
SHOW CREATE DATABASE authentication2;
# 先使用authentication1 再使用authentication2
USE authentication1;
USE authentication2;
# 删除数据库
DROP DATABASE authentication1;
DROP DATABASE authentication2;
2. 数据表的管理(DDL指令)
2.1 创建表
CREATE TABLE 表名(
字段名1 类型,
字段名2 类型
)[CHARSET=UTF8];
CREATE TABLE userinfo(
id INT, # 字段名 类型
username CHAR(20) COMMENT '用户名称',
age INT
)CHARSET=UTF8;
练习
在studb再创建一张表(user), 保存用户信息(用户编号(int),用户名(VARCHAR(32)), 密码, 昵称, 年龄)
CREATE TABLE user(
id INT,
username VARCHAR(32),
password VARCHAR(32),
nickname VARCHAR(32),
age INT
)CHARSET=UTF8;
2.2 查看当前数据库中所有的表
SHOW TABLES;
2.3 查看表结构
DESC 数据库表;
DESC userinfo;
2.4 修改表名
RENAME TABLE 原表名 TO 新表名
RENAME TABLE user TO hero;
2.5 查看数据表创建信息
SHOW CREATE TABLE 表名;
SHOW CREATE TABLE hero;
2.6 删除表
DROP TABLE 表名;
DROP TABLE userinfo;
2.7 课堂练习
# 1.创建数据库 graduationpro(毕业设计)字符集UTF8并使用
CREATE DATABASE graduationpro CHARSET=UTF8;
USE graduationpro;
# 2.创建表js_school_student_content(毕业设计成果汇报展览及评价),包括
# id(int) studentId(INT) className(VARCHAR(32)),
# student_name(VARCHAR(32)) title(VARCHAR(32))
CREATE TABLE js_school_student_content(
id INT COMMENT '编号',
studentId INT COMMENT '学生id',
classNname VARCHAR(32) COMMENT '专业',
student_name VARCHAR(32) COMMENT '学生姓名',
title VARCHAR(32) COMMENT '毕设标题'
)CHARSET=UTF8;
SHOW TABLES;
# 3.修改表名 js_school_student_content_new
RENAME TABLE js_school_student_content TO js_school_student_content_new;
# 4.查看表js_school_student_content_new信息
SHOW CREATE TABLE js_school_student_content_new;
# 5.查询表js_school_student_content_new结构
DESC js_school_student_content_new;
# 6.删除表js_school_student_content_new
DROP TABLE js_school_student_content_new;
# 7.删除数据库
DROP DATABASE graduationpro;
3. 修改表结构ALTER - 表字段操作
3.0 前期准备
CREATE DATABASE mydb CHARSET=UTF8;
USE mydb;
# 关于表字段 - 准备一张表
CREATE TABLE hero(
name VARCHAR(32),
age INT
)CHARSET=UTF8;
# 演示对于表字段的操作
3.1 添加字段 - ADD
- 表末尾追加字符
ALTER TABLE 表名 ADD 字段名 类型[(长度) 默认值 约束]
- 表起始追加字段
ALTER TABLE 表名 ADD 字段名 类型[(长度) 默认值 约束] FIRST
- 表指定位置追加字段
ALTER TABLE 表名 ADD 字段名 类型[(长度) 默认值 约束] AFTER 表中现有字段名
CREATE DATABASE mydb CHARSET=UTF8;
USE mydb;
# 关于表字段 - 准备一张表
CREATE TABLE hero(
name VARCHAR(32),
age INT
)CHARSET=UTF8;
SHOW TABLES;
DESC hero;
# 演示对于表字段的操作
# 1. 表末尾追加字段
ALTER TABLE hero ADD gender char(4);
# 2. 表起始处添加字段
ALTER TABLE hero ADD id INT FIRST ;
# 3. 在name后添加学号字段
ALTER TABLE hero ADD studentId INT AFTER name;
3.2 删除字段 - DROP
ALTER TABLE 表名 DROP 字段名;
# 将hero表中的gender字段删除
ALTER TABLE hero DROP gender;
3.3 修改字段数据类型 - MODIFY
ALTER TABLE 表名 MODIFY 字段名 新数据类型
# 将hero表中的studentId设置为CHAR(16)类型
ALTER TABLE hero MODIFY studentId CHAR(16);
3.4 替换字段-CHANGE
ALTER TABLE 表名 CHANGE 旧字段 新字段名 新数据类型
# 将hero表中的name字段修改为username CHAR(16)
ALTER TABLE hero CHANGE name username CHAR(16);
3.5 注意事项
- 修改表结构最好是在表中没有数据的情况下进行
- 当表中含有数据时:
– 尽量不修改表中某字段的类型, 否则可能因为现有数据不满足新修改的类型导致修改失败
– 尽量不缩短字段的长度
– 若为字段新添加约束, 该字段现有的数据不能违反该约束