数据库实验三.
数据库实验三报告_简单查询和连接查询实验

实验三、简单查询和连接查询实验简单查询和连接查询实验是数据库的基本查询操作,简单查询是只涉及到一个表(基本表或视图)的查询,连接查询是涉及两个表以上的数据连接查询。
1.实验内容和实验要求1.1实验目的了解SQL Server查询分析器的使用方法,加深对SQL 和Transaction-SQL语言的查询语句的理解;掌握表的数据简单查询、数据排序和数据连接查询的SQL表达和查询分析操作方法。
1.2实验内容(1)简单查询实验用SQL表达简单查询操作,包括投影、选择条件表达、数据排序和使用临时表等,通过SQL Server 查询分析器输入,并显示正确结果。
(2)连接查询实验用SQL表达连接查询操作,包括等值连接、自然连接、一般连接等,通过SQL Server 查询分析器输入,并显示正确结果。
1.3实验要求(1)简单查询实验在学生-课程库中,用Transaction-SQL语句表示下列操作,并通过查询分析器实现其查询操作:①求数学系学生的学号和姓名;select 学号,姓名from 学生where 所在系='数学系'S7 吴非S8 丁玉S9 赵名②求选修了课程的学生学号;select distinct 学号from 选课S1③求选修了C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同,则按学号的升序排列;select 学号,成绩from 选课where 课程号='C1'order by 成绩desc,学号asc;S2 93S4 89S1 60S3 NULL④求选修了课程C1且成绩在80-90分之间的学生学号和成绩,将成绩乘以系数0.8输出;select 学号,成绩*0.8from 选课where 课程号='C1' and 成绩between 80 and 90;S4 71.2⑤求数学系或计算机系姓张的学生的信息;select *from 学生where 所在系in('数学系','计算机系') and 姓名like '张%';S2 张小红21 男计算机系S4 张三21 男计算机系⑥求缺少了成绩的学生的学号和课程号。
实验三、数据库安全性实验报告

河南工业大学实验报告课程:数据库原理实验名称:实验三数据库安全性院系: ___信息科学与工程学院 _专业班级: _计科 F1203_姓名: ___ _ _________学号: ____ _______指导老师:孙宜贵日期:2014.10.19一.实验目的1.掌握数据库安全性控制的概念;2.通过在 SQL Server 查询分析器创建登录、数据库用户和角色,以及权限管理,来加深对自主存取控制方法( DAC )的理解和掌握。
二. 实验内容及要求假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号是主码;部门(部门号,名称,经理名,电话),其中部门号为主码。
创建数据库chenfeijie:在数据库 chenfeijie中创建表Worker 、 Department :1.请用 T-SQL 语句完成以下内容:(数据安全性)1 )创建一个SQL Server 身份验证的登录(命名方式:数据库名称+Login ,如ZhangsanLogin ),默认数据库是你创建的数据库,为该登录指定 sysadmin 服务器角色;2 )在已有数据库中创建一个数据库用户(命名方式:数据库名称+ User,如ZhangsanUser),与上面的登录关联;3)在已有数据库中创建一个自定义数据库角色(命名方式:数据库名称+ Role,如ZhangsanRole),并把上面用户指定为该角色成员;4)授予该角色对部门表具有 SELECT 权限;5)授予该角色对职工表具有 DELETE 和 INSERT 权限;6)授予该角色对职工表的工资字段的 UPDATE 权限;7)授予该用户生成、改变和删除数据库对象的权限(提示:将该用户指定为某一固定数据库角色成员。
);8)收回该角色对职工表的DELETE权限;9)拒绝该用户对部门表的SELECT权限。
备注:完成以上功能所需要的系统存储过程有sp_addrolemember, sp_addsrvrolemember,SQL Server sp_grantdbaccess, sp_addrole, sp_addlogin 等,具体含义和使用方式可参考联机帮助。
万常选版-数据库实验报告-3-数据库安全性

实验3:数据库安全性第1个实验.安全性定义——第5章实验八使用订单数据库完成下面的实验内容:(1)分别创建登录账号user01、user02,其密码皆为p888888,并设置为订单数据OrderDB的用户。
(2) 创建登录账号login03,并加入到OrderDB数据库中,其用户名为user03。
(3) 将员工表的所有权限授予全部用户。
(4) 授予user03用户对Product表的查询权限,对Employee表的编号、名称的查询和更新权限。
(5) 创建角色r3、r4,将订单明细表所有列的SELECT权限、UNIT_PRICE列的UPDATE权限授予r3。
(6) 收回全部用户对员工表的所有权限。
(7) 将user01、user02两个用户赋予r3角色。
(8) 收回user02对订单明细表所有列的SELECT权限。
(9) 在当前数据库中删除角色r4。
(10) 授予user01建表和建视图的权限,user01用户分别建立一张表和一个视图(表和视图自定),然后将该表和视图的查询权限授予user02和user03。
第2个实验.安全性检查——第5章实验九使用订单数据库完成下面的实验,记录详细的操作过程:(1)用户user07在订单数据库中创建一张表Table1。
(2)用户user02对表Table1和表OrderDetail执行了插入和查询操作。
(3)用户user03建立两张表Table2和Table3和一个视图View1,然后将该表和视图的查询权限授予user05和user06,并具有转授权限。
(4)user06用户需要对Product表进行插入操作,然后查询Product表的所有记录。
(5)在订单数据库中创建两个角色r5和r6,角色r5具有创建表和视图的权限,角色r6具有对Customer表的查询、插入权限,Employee表的查询、更新和插入权限,OrderMaster 表的所有权限。
(6)用户user05在订单数据库中插入一条客户信息,并查询了所有客户的订货记录。
数据库实验报告3

数据库实验报告课程:数据库原理及应用正文:一、实验目的1.理解索引和视图的概念。
2.掌握索引的使用方法。
3.掌握视图的定义和使用方法。
4.理解存储过程的概念,掌握存储过程的使用方法。
5.学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。
6.理解SQL Server2000验证用户身份的过程,掌握设置身份验证模式的方法。
7.理解登陆账号的概念,掌握混合认证模式下登陆账号的建立与取消方法。
8.掌握混合认证模式下数据库用户的建立与取消。
9.掌握数据库用户权限的设置方法。
10.理解角色的概念,掌握管理角色技术。
11.学会配制ODBC数据源。
了解使用ODBC来进行数据库应用程序设计,通过ODBC接口访问数据库并对数据库进行操作。
学习在Visual Basic中使用ADO控件访问后台的SQL Server数据库。
二、实验内容1.建立索引。
对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。
USE JWGLIF EXISTS(SELECT name FROM sysindexes WHERE name = 'SC_ind')DROP INDEX SC.SC_ind;GOUSE JWGLCREATE INDEX SC_ind ON SC (Cno,Grade DESC);2.视图的定义和操作,(1)在JWGL数据库里,完成第三章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。
(2)在Market数据库中,完成第三章习题11中(1)中建立视图的操作,然后在视图上完成第三章习题11(2)的查询操作。
3.在数据库JWGL中,完成第四章例1,例3~7中例题的创建存储过程的操作,并使用EXEC语句调用这些存储过程执行,观察他们的执行结果。
4.在Market数据库中,完成第四章习题5中(1)~(4)创建存储过程的操作。
数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告题目:实验三学号姓名班级日期数据完好性与安全性控制一、实验内容、步骤以及结果1.利用图形用户界面对实验一中所创立的Student 库的 S 表中,增添以下的拘束和索引。
(18 分,每题 3 分)(1)非空拘束:为出诞辰期增添非空拘束。
非空拘束:撤消表 S 中 sbirth 的勾。
可能需要重修表。
(2)主键拘束:将学号 (sno) 设置为主键,主键名为 pk_sno 。
设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘改正’命令--> 对话框中右击 sno--> 选择‘设置主键’ --> 改正主键名为‘ pk_sno ’ --> 保存(3)独一拘束:为姓名 (sname) 增添独一拘束 ( 独一键 ) ,拘束名为 uk_sname。
独一拘束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘改正’命令→右击sname--> 选择‘索引和键’命令--> 翻开‘索引和键’框图--> 增添 -->能否独一改为‘是’--> 名称改为‘ us_sname’ --> 封闭。
(4)缺省拘束:为性别 (ssex) 增添默认值,其值为“男”。
设默认拘束:单击数据库 Student →单击表→单击 S→右击 sno →选择‘改正’命令→单击 cno--> 在默认值栏输入‘男’→保留(5) CHECK拘束:为 SC表的成绩 (grade) 增添 CHECK拘束,拘束名为ck_grade ,其检查条件为:成绩应当在0-100 之间。
(6)外键拘束:为 SC表增添外键拘束,将 sno,cno 设置为外键,其引用表分别是S 表和 C 表,外键名称分别为fk_sno , fk_cno 。
2.在图形用户界面中删除以上小题中已经创立的各样拘束,用SQL语言分别从头创立第1 题中的 (2)-(6)小题.(15分,每题 3 分,提示: alter table add constraint)删除拘束:单击数据库Student-->表-->单击S-->睁开键、拘束。
数据库实验三

西南石油大学实验报告注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。
一、实验课时:4二、实验目的(1) 掌握使用T-SQL语句创建、删除数据库的方法。
(2) 掌握使用T-SQL语句创建、修改、删除表的方法。
(3) 掌握使用T-SQL语句创建、删除数据库完整性约束条件的方法。
(4) 掌握使用T-SQL语句对表添加、修改、删除数据的方法。
(5) 掌握使用T-SQL语句创建、修改、删除、查询视图的方法。
三、实验要求(1) 使用SQL Server 2008查询分析器。
(2) 严格依照操作步骤进行。
(3) 在本地服务器中创建和管理数据库。
四、实验环境(1) PC机。
(2) SQL Server 2008。
五、实验内容及步骤(请特别注意实验步骤:第6项的第1小项,即“插入数据”操作必须在第4项以前执行)1.使用Transact-SQL语句创建JOBS数据库,数据库名格式为JOBS_SunYu(即JOBS_你的中文名字拼音)CREATE Database JOBS_DengZhiPeng;2.使用Transact-SQL语句创建JOBS数据库包含的所有表EMPLOYEECREATE TABLE EMPLOYEE(EMPNO SMALLINT NOT NULL,SUPNAME VARCHAR(50)NOT NULL,FORENAMES VARCHAR(50)NOT NULL,DOB DATE NOT NULL,ADDRESS VARCHAR(50)NOT NULL,TELNO CHAR(10)NOT NULL,DEPNO SMALLINT NOT NULL);JOBHISTORYCREATE TABLE JOBHISTORY(EMPNO SMALLINT NOT NULL,POSITION VARCHAR(50)NOT NULL, STARDATE DATE NOT NULL,ENDDATE DATE NULL,SALARY INT NOT NULL);COURSECREATE TABLE COURSE(COURSENO SMALLINT NOT NULL,CNAME VARCHAR(50)NOT NULL,CDATE DATE NOT NULL);DEPARTMENTCREATE TABLE DEPARTMENT(DEPNO SMALLINT NOT NULL,DNAME VARCHAR(50)NOT NULL,LOCATION VARCHAR(10)NOT NULL, HEAD SMALLINT NOT NULL);EMPCOURSECREATE TABLE EMPCOURSE(EMPNO SMALLINT NOT NULL,COURSENO SMALLINT NOT NULL);3.使用Transact-SQL语句创建JOBS数据库包含表的主键、外键约束条件创建每个表的主键:ALTER TABLE EMPLOYEEADD CONSTRAINT PK_EMPLOYEEPRIMARY KEY (EMPNO);ALTER TABLE JOBHISTORYADD CONSTRAINT PK_JOBHISTORYPRIMARY KEY (EMPNO,POSITION,STARDATE);ALTER TABLE COURSEADD CONSTRAINT PK_COURSE PRIMARY KEY (COURSENO);ALTER TABLE DEPARTMENTADD CONSTRAINT PK_DEPARTMENT PRIMARY KEY (DEPNO);ALTER TABLE EMPCOURSEADD CONSTRAINT PK_EMCOURSE PRIMARY KEY (EMPNO,COURSENO);创建关系:ALTER TABLE JOBHISTORYADD CONSTRAINT FK_JOBHISTORY_EMPLOYEE FOREIGN KEY (EMPNO)REFERENCES EMPLOYEE(EMPNO);ALTER TABLE EMPCOURSEADD CONSTRAINT FK_EMPCOURSE_EMPLOYEE FOREIGN KEY (EMPNO)REFERENCES EMPLOYEE(EMPNO);ALTER TABLE EMPCOURSEADD CONSTRAINT FK_EMPCOURSE_COURSE FOREIGN KEY (COURSENO)REFERENCES COURSE(COURSENO);ALTER TABLE EMPLOYEEADD CONSTRAINT FK_EMPLOYEE_DEPARTMENT FOREIGN KEY (DEPNO)REFERENCES DEPARTMENT(DEPNO);ALTER TABLE DEPARTMENTADD CONSTRAINT FK_DEPARTMENT_EMPLOYEE FOREIGN KEY (HEAD)REFERENCES EMPLOYEE(EMPNO);具体关系:EXECUTE sp_helpconstraint DEPARTMENT;EXECUTE sp_helpconstraint EMPCOURSE;EXECUTE sp_helpconstraint JOBHISTORY;EXECUTE sp_helpconstraint EMPLOYEE;(所有JOBS中表的约束图。
实验三数据库的创建与管理
实验三数据库的创建与管理实验三数据库的创建与管理⼀. 实验⽬的和要求1、熟悉数据库的存储结构;2、会使⽤SSMS创建数据库,并对数据库进⾏管理;3、会使⽤有关T-SQL语句创建数据库和对数据库进⾏管理;4、会利⽤SSMS和T-SQL语句对数据库进⾏分离和附加。
⼆. 实验内容1、利⽤SSMS和T-SQL语句创建“JWGL”数据库,相关属性为默认值。
2、使⽤SSMS和T-SQL查看JWGL数据库的属性。
如当前数据库⽂件、⽂件组及数据库⼤⼩等信息。
3、在D盘student⽬录下新建⼀个名为LIBRARY数据库,其中:(1)主⽂件逻辑名称为“LIBRARY_data”,物理⽂件名为“LIBRARY_data.mdf”,初始⼤⼩为5MB,最⼤⼤⼩为10MB,增长⽅式为1MB;(2)事务⽇志⽂件逻辑名为“LIBRARY_log”,物理⽂件名为“LIBRARY_log.ldf”,初始⼤⼩为2MB,最⼤⼤⼩为10MB,增长⽅式为5%。
4、修改LIBRARY数据库,修改要求如下:(1)为其增加⼀个⽂件组dy,其中包含两个数据⽂件,逻辑名分别为“dya”和“dyb”其它属性采⽤默认值;(2)为其增加⼀个事务⽇志⽂件,其中逻辑名为“dy_log”,物理⽂件名为“dy_log.ldf”,初始⼤⼩为1MB,最⼤⼤⼩为不限制,增长⽅式为1MB。
(3)修改数据⽂件“LIBRARY_data”,将其最⼤⼤⼩修改为不受限制(UNLIMITED)。
5、将“LIBRARY”数据库分离出来后,然后附加到当前计算机SQL Server服务器上。
三、作业提交⽅式1、SQL语句部分:实验三-学号-姓名.sql2、SSMS部分:数据库管理-学号-姓名.doc3、要求:a. SQL语句统⼀放在⼀个脚本⽂件中,每道题的SQL语句要区分开来;b. SSMS操作的要有具体步骤的⽂字说明+截图4.各组员提交给各⾃的⼩组长,由⼩组长统⼀收齐后提交,发送到教师的QQ邮箱。
数据库实验三报告
《数据库原理与应用》实验报告实验名称:数据更新与视图班级:学号:姓名:一、实验目的1.掌握数据更新语句的使用;2.掌握视图操作的基本方法和应用;3.理解基于视图的查询和数据更新操作的过程。
二、实验过程1.在实验一创建的表中使用SQL语句完成以下操作:(1)学生“宾兆琦”要退学,请删除该学生的所有记录。
语句:delete from sc where sno in (select sno from student where sname='宾兆琦'); delete from student where sname='宾兆琦';commit;执行结果:(2)将姓名为“朱安琪”同学的专业改为“软件工程”。
语句:update studentset major='软件工程'where sname='朱安琪';commit;执行结果:(3)创建转专业记录表change_major,在change_major表中插入“朱安琪”同学的转专业信息。
转专业记录表中包括:编号属性列(ID),学号属性列(sno),姓名属性列(sname),转出专业属性列(cbefore),转入专业属性列(cafter)和转专业时间属性列(ctime),change_major的表结构为Change_major(ID,sno,sname,cbefore,cafter,ctime)其中编号属性列ID为主码,主码取值从“1”开始依次按照1递增,学号属性列sno为外码语句:create table change_major(ID varchar2(20) primary key ,sno varchar2(10),sname varchar2(20),cbefore varchar2(30),cafter varchar2(30),ctime date,foreign key(sno) references student(sno),check(ID>=1));执行结果:(3)删除选修了“计算机网络”但没有及格的选课记录。
数据库实验三报告
实验报告学院(系)名称:计算机科学与工程学院
(6) 向学生表中插入学生,并实现调用。
(8) 查询选修了课程名为@cname并且成绩高于该门课程平均分的学生学号和成绩,并实现调用。
5.实验心得体会:
通过这次的实验,我了解了关于数据库存储过程以及存储调用的相关知识,使得我对SQL的使用有了更深的体会。
在实验的过程中,按着老师给的指导书,一步一步的做实验,同时也慢慢的掌握了这一部分知识,在一些不是很理解的地方,通过查阅书本也弄明白了。
本次实验相比于前两次实验,实验代码也多
【实验过程记录(源程序、测试用例、测试结果及心得体会等)】。
数据库实验3
实验报告学院(系)名称:计算机与通信工程学院using System.Threading.Tasks;using System.Windows.Forms;using System.Data.SqlClient;namespace doc3{public partial class MainForm : Form{public MainForm(){InitializeComponent();}private void MainForm_Load(object sender, EventArgs e){DataTable dataTable = DBUtil.QueryData("select sno '学号', sname '姓名', sage '年龄', sdept '学院' from Student");studentDataGridView.DataSource = dataTable;}private void studentDataGridView_CellClick(object sender, DataGridViewCellEventArgs e){int index = studentDataGridView.CurrentCell.RowIndex;// vs2012的写法snoTextBox.Text = studentDataGridView.Rows[index].Cells["学号"].Value.ToString();snameTextBox.Text = studentDataGridView.Rows[index].Cells["姓名"].Value.ToString();sageTextBox.Text = studentDataGridView.Rows[index].Cells["年龄"].Value.ToString();sdeptTextBox.Text = studentDataGridView.Rows[index].Cells["学院"].Value.ToString();}private void createStudentButton_Click(object sender, EventArgs e){string sno = snoTextBox.Text.Trim();string sname = snameTextBox.Text.Trim();string sage = sageTextBox.Text.Trim();string sdept = sdeptTextBox.Text.Trim();if ("".Equals(sno) || "".Equals(sname) || "".Equals(sage) || "".Equals(sdept)){MessageBox.Show("数据必须全不能为空", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);}else{string sql = "insert into Student(sno,sname,sage,sdept) values('" + sno + "', '" + sname+ "', '" + sage + "', '" + sdept + "')";if (DBUtil.CUDData(sql)){MessageBox.Show("创建操作成功!", "提示", MessageBoxButtons.OK, rmation);}}}private void readStudentButton_Click(object sender, EventArgs e){DataTable dataTable = DBUtil.QueryData("select sno '学号', sname '姓名', sage '年龄', sdept '学院' from Student");studentDataGridView.DataSource = dataTable;}private void updateStudentButton_Click(object sender, EventArgs e){string sno = snoTextBox.Text.Trim();string sname = snameTextBox.Text.Trim();string sage = sageTextBox.Text.Trim();string sdept = sdeptTextBox.Text.Trim();if ("".Equals(sno) || "".Equals(sname) || "".Equals(sage) || "".Equals(sdept)){MessageBox.Show("数据必须全不能为空", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);}else{string sql = "update Student set sname='" + sname + "', sage='" + sage + "', sdept='" + sdept + "' where sno=" + sno;if (DBUtil.CUDData(sql)){MessageBox.Show("更新操作成功!", "提示", MessageBoxButtons.OK, rmation);}}}private void deleteStudetnButton_Click(object sender, EventArgs e){int index = studentDataGridView.CurrentCell.RowIndex;string sno = studentDataGridView.Rows[index].Cells["学号"].Value.ToString();string sql = "delete from Student where sno = '" + sno + "'";if (DBUtil.CUDData(sql)){MessageBox.Show("删除操作成功!", "提示", MessageBoxButtons.OK,rmation);}}private void readScoreButton_Click(object sender, EventArgs e){string sql = "select * from Score";DataTable dataTable = DBUtil.QueryData(sql);scoreListView.GridLines = true;scoreListView.FullRowSelect = true;// 初始化scoreListView的列scoreListView.View = View.Details;scoreListView.Columns.Clear();scoreListView.Columns.Add("学号", 268, HorizontalAlignment.Left);scoreListView.Columns.Add("成绩", 266, HorizontalAlignment.Left);scoreListView.Items.Clear();// 将DataTable转换为DataTableReaderDataTableReader dr = dataTable.CreateDataReader();while (dr.Read()){ListViewItem lvi = new ListViewItem(dr[0].ToString());lvi.SubItems.Add(dr[1].ToString());scoreListView.Items.Add(lvi);}}private void createScoreButton_Click(object sender, EventArgs e){string sno = ssnoTextbox.Text.Trim();string sscore = sscoreTextBox.Text.Trim();if ("".Equals(sno) || "".Equals(sscore)){MessageBox.Show("数据必须全不能为空", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);}else{string sql = "insert into Score(sno,sscore) values('" + sno + "', '" + sscore + "')";if (DBUtil.CUDData(sql)){MessageBox.Show("创建操作成功!", "提示", MessageBoxButtons.OK, rmation);}}}private void ssnoTextbox_TextChanged(object sender, EventArgs e){}private void snoTextBox_TextChanged(object sender, EventArgs e){}}}运行结果:【实验过程记录(源程序、测试用例、测试结果及心得体会等)】【心得体会】:上机的学习中也了解到数据库的视图和查询。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江西师范大学计算机信息工程学院学生实验报告
专业____电子商务_ 姓名___勒伍智 学号___ 日期__ 14.10.25 __
课程名称 数据库原理 实验室名称 X4313
实验名称
指导教师 成绩
1、 实验目的
熟悉有关数据表的创建和修改等工作,理解数据库模式的概念,了解主键约束、
外键约束、UNIQUE约束和CHECK约束的创建和应用。要求学生熟练掌握使用企
业管理器和T—SQL语句CREATE TABLE、ALTER TABLE及DROP TABLE语句对数
据表进行管理。
2、 实验原理和内容
在Management studio中实现表的创建和修改等工作及使用T—SQL语句CREATE
TABLE、ALTER TABLE及DROP TABLE来实现数据表的创建、修改及删除。
3、 实验步骤
分别在SQL SERVER Management studio中使用T—SQL语句完成以下操作:
针对S_T数据库:
1. 创建student表,设置Sno为主键;在Sno列上创建核查约束,要求学号各
个位上只能取数字字符;在Ssex列上创建核查约束,要求性别只能取“男”或
“女”;在Sage 列上创建核查约束,要求学生的年龄只能在14至38之间。
2. 创建course表,设置列Cno为主键;在Cno列上创建核查约束,要求课程
号只能取数字字符。
3. 创建sc表,设置主键为Sno与Cno的组合;在Grade列上创建核查约束,
限定成绩只能在0-100。
4. 修改course表,在表中为Cpno列添加一外键约束Fk_Cpno,它参照了course
表的主键Cno。
5. 修改sc表,在表中为Sno添加一外键约束Fk_Sno,它参照了student表中
的主键Sno;为Cno添加外键约束Fk_Cno, 它参照了course表中的主键Cno。
针对company数据库:
1. 在数据库company中创建以上五张表,并设置各表的主键。
2. 在销售主表sales中添加字段“发票号码” invoice_no,char(10),NOT NULL。
3. 添加外键约束:
a) 在销售主表sales的业务员编号字段sale_id上添加外键约束,参照字段为
员工表employee中的字段员工编号emp_no,约束名为FK_sale_id。
b) 在销售主表sales的客户号字段cust_id上添加外键约束,参照字段为客户
表customer中的字段客户号cust_id,约束名为FK_cust_id。
c) 在销售明细表sale_item的订单编号字段order_no上添加外键约束,参照
字段为销售主表sales中的字段订单编号order_no,约束名为FK_order_no。
d) 在销售明细表sale_item的产品编号字段prod_id上添加外键约束,参照字
段为产品名称表product中的产品编号字段prod_id,约束名为FK_prod_id。
4. 添加核查约束:
a) 将员工表employee中的薪水字段salary的值限定在1000至10000间,约束
名为CK_salary。
b) 将员工表employee中的员工编号字段emp_no设定为以“E”字母开头, 后面
跟5位数的编号,约束名为CK_emp_no。
c) 将员工表employee中的性别字段设定这取值只能是“男”和“女”。约束名
为CK_sex。
d) 将销售主表sales中的发票号码字段invoice_no设定为以“I”字母开头,
后面跟9位数的编号,约束名为CK_inno。
5.为销售主表sales中的字段发票号码invoice_no设置为唯一约束,约束名为
UN_inno。
4、 程序及运行结果(或实验数据记录及分析)