实验1、数据定义
1.1 实验目的
熟悉SQL的数据定义语言,能够理解并熟练地使用SQL语句来创建、修改和删除数据库、模式和基本表,创建和取消索引,特别是各种参数的具体含义和使用方法。掌握SQL 语句常见语法错误的调试方法。
1.2 实验内容
- 在DataStudio的SQL终端中使用CREATE语句创建数据库Db_Uni,该数据库为zjutuser所属,使用SQL语句创建SCHEMA并授权给用户zjutuser。
- 在DataStudio的SQL终端中使用CREATE语句创建基本表。
- 更改基本表的定义: 增加列,删除列,修改列的数据类型。
- 创建表的升、降序索引。
- 删除基本表的约束、基本表的索引或基本表。
1.3实验步骤
- 在DataStudio的SQL终端使用SQL语言创建数据库Zhangyy_Db_Uni并为zjutuser所属
- 使用SQL语句查看当前模式搜索路径,创建SCHEMA并授权给用户zjutuser所有,设置当前会话的搜索路径为zjutuser 模式、Puhlic 模式,随后创建的基本表就会自动创建zjutuser 模式下。
- 使用SQL语句创建关系数据库基本表:
学生表
Zhangyy_Students(zyy_Sno,zyy_Sname,zyy_Semail,zyy_Scredit,zyy_Sroom);
教师表Zhangyy_Teachers(zyy_Tno,zyy_Tname,zyy_Temail,zyy_Tsalary);
课程表Zhangyy_Courses(zyy_Cno,zyy_Cname,zyy_Ccredit);
成绩表Zhangyy_Reports(zyy_Sno,zyy_Tno,zyy_Cno,zyy_Score);
其中:zyy_Sno、zyy_Tno、zyy_Cno分别是表Zhangyy_Students、表Zhangyy_Teachers、表Zhangyy_Courses的主键,具有唯一性约束,zyy_Scredit具有约束“大于等于0”; Zhangyy_Reports中的zyy_Sno,zyy_Tno,zyy_Cno是外键,它们共同组成Zhangyy_Reports的主键。
- 更改表Zhangyy_Students:增加属性zyy_Ssex(类型是VARCHAR,长度为3),取消zyy_Scredit“大于等于0”约束。分别把表Zhangyy_Students中的属性zyy_Sname、Zhangyy_Teachers中的属性zyy_Tname、Zhangyy_Courses中的属性zyy_Cname的数据类型改成长度为30。
- 删除表Zhangyy_Students的一个属性zyy_Sroom。
- 删除表Zhangyy_Reports,然后重建表Reports。
- 为Zhangyy_Courses表创建按zyy_Cno降序排列的索引。
- 为Zhangyy_Students表创建按zyy_Sno升序排列的索引。
- 创建表Zhangyy_Students的按zyy_Sname升序排列的唯一性索引。
- 删除Zhangyy_Students表zyy_Sno的升序索引,删除Zhangyy_Courses表zyy_Cno的降序索引。
1.4 实验结果
1) 在DataStudio的SQL终端中使用CREATE语句创建数据库Zhangyy_Db_Uni,该数据库为zjutuser所属。
启动DataStudio,连接到服务器,然后单击工具栏中的“打开新的终端”,在出现的任务页面中输入创建数据库的SQL命令,创建名为Zhangyy_Db_Uni的数据库,并为zjutuser所属。
SQL语句为:
--若数据库Db_Uni存在的话将删除
DROP DATABASE IF EXISTS Zhangyy_Db_Uni;
--采用字符集UTF-8创建名为Zhangyy_Db_Uni 的数据库,并设置zjutuser为其属主
CREATE DATABASE Zhangyy_Db_Uni ENCODING = 'UTF-8' OWNER zjutuser;
实验结果如图1-1.
图1-1 创建数据库Zhangyy_Db_Uni的结果
2) 创建表
学生表
Zhangyy_Students(zyy_Sno, zyy_Sname, zyy_Semail, zyy_Scredit, zyy_Sroom);
图1-3 创建基本表Zhangyy_Students的命令和执行结果
教师表
课程表
成绩表
给更改表Zhangyy_Students:增加属性zyy_Ssex(类型是VARCHAR,长度为3)
- 分别把表Zhangyy_Students中的属性zyy_Sname、Zhangyy_Teachers中的属性zyy_Tname、Zhangyy_Courses中的属性zyy_Cname的数据类型改成长度为30。
(5)删除表Zhangyy_Students的一个属性zyy_Sroom。
- 删除表,创建新表reports
- 增加主键
学生表
教师表
课程表
- 增加外键,并将其设为reports的主键