【实验名称】:数据库的建立—DDL&DML
【实验目标】:
(1) 使用任何一种交互工具创建DDL脚本,包括创建、修改、删除、展示表结构,字段类型的指定及修改,主键、候选键和外键的指定;
(2) 创建、删除索引;
(3) 创建、删除视图;
(4) 数据的插、删、改等操作;
【实验具体要求】:
- 使用sql语句创建所有的表;
- 使用alter命令修改表结构,删除教师表中的“title” 字段,然后再添加到表中;修改学生表中的“sex” 字段的类型为char(2);
- 在教师表中添加任意一条数据,然后添加类型为char(2)的‘sex‘字段,该字段不能为空,默认值为“m”,添加是否成功,如果失败分析失败的原因并进行必要的操作使‘sex’字段添加成功;
- 在请假单表上为lessonNum列创建索引;在学生选课表中依据“studentNum”和“lessonNum”字段创建索引;
- 使用sql语句查询所有创建表的表结构;
- 将补充资料中提供的数据插入到相应的表中;
- 删除学生表中studentNum为“200101”的学生记录,如果不能请分析原因;
- 将课程号3的课程的学分更新为4分,将课程号4的课程的学分更新为1分,将课程号1的课程名称更新为“高级语言程序设计”;
- 创建学生选课视图v_stu_lesson,字段包括学号、学生姓名、课程号、课程名称、学分、任课教师工号、任课教师姓名;
【实验步骤】:
使用sql语句创建所有的表;
2. 使用alter命令修改表结构,删除教师表中的“title” 字段,然后再添加到表中;修改学生表中的“sex” 字段的类型为char(2);
代码如下:
运行结果:
3. 在教师表中添加任意一条数据,然后添加类型为char(2)的‘sex‘字段,该字段不能为空,默认值为“m”,添加是否成功,如果失败分析失败的原因并进行必要的操作使‘sex’字段添加成功;
①添加一条数据 ('1','刘波','男','教授');
代码如下:
运行结果:
②添加类型为char(2)的‘sex‘字段,该字段不能为空,默认值为“m”
代码如下:
添加失败,报错:
可以看到原本的teacher表中就有sex
所以错误原因是出现了字段重复。需要先删去原本的sex字段,再进行添加。
4. 在请假单表上为lessonNum列创建索引;在学生选课表中依据“studentNum”和“lessonNum”字段创建索引;
代码如下:
使用sql语句查询所有创建表的表结构;
代码如下:
6. 将补充资料中提供的数据插入到相应的表中;
7. 删除学生表中studentNum为“200101”的学生记录,如果不能请分析原因
出现这种错误的原因是,studentNum同时也是其他表的外键,而在删除操作时会自动检查外链。
解决方法:
不检查外链,在将执行语句前加上下句:
SET FOREIGN_KEY_CHECKS = 0;
8.将课程号3的课程的学分更新为4分,将课程号4的课程的学分更新为1分,将课程号1的课程名称更新为“高级语言程序设计”;
①课程号3的课程的学分更新为4分
②将课程号4的课程的学分更新为1分
③将课程号1的课程名称更新为“高级语言程序设计”
修改结果如下:
9.创建学生选课视图v_stu_lesson,字段包括学号、学生姓名、课程号、课程名称、学分、任课教师工号、任课教师姓名;
创建结果如下:
【小结】:
知识总结:
1.创建表CREATE TABLE
CREATE TABLE “表格名”
(“栏位1”“栏位1资料种类”,
“栏位2”“栏位2资料种类”,
……)
2.创建视图CREATE VIEW
视图可以当做虚拟表格,与表格不同的是,表格中有实际存储的资料,而视图是建立在表格之上的一个架构,其本身不实际存储资料。
CREATE VIEW “VIEW_NAME”AS “SQL语句”
3.创建索引CREATE INDEX
索引可以帮助快速查找资料。索引的存在,数据库系统可以先从这个索引找出需要的资料在表格的位置,在进行抓取。
CREATE INDEX “INDEX_NAME”ON “TABLE_NAME”(COLUMN_NAME)
4.更改表结构ALTER TABLE
ALTER TABLE “TABLE_NAME”[改变方式]
具体操作可以包括:增加栏位ADD,删除栏位DROP,改变栏位名称CHANGE和改变栏位种类MODIFY。
5.删除表格DROP TABLE
DROP TABLE “表格名”
6.修改表格UPDATE
使用UPDATA指令,可以修改表格中的资料。
UPDATE“表格名”
SET “栏位1”=[新值]
WHERE {条件}
7.插入资料INSERT INTO
加入一些资料进入表格
INSERT INTO “表格名”(“栏位1”,“栏位2”,……)
VALUES(“值1”,“值2”,…)
8.删除资料DELETE FROM
有时需要直接从数据库中去除一些资料。可以使用DELETE FROM实现。
DELETE FROM “表格名”
WHERE{条件}
9.限制条件CONSTRAINT
NOT NULL:不允许一个栏位含有NULL值。
UNIQUE:保障一个栏位中的所有资料都是不一样的值。
CHECK:限制保障一个栏位的所有资料符合某些条件。
PRIMARY KEY:主键
FOREIGN KEY:外键