《数据库技术与开发》工程实训指导书
3、实验三:数据表操作
一、课后作业
1、常见数据库约束有哪些及其各自特点? 2、char、varchar、nchar、nvarchar之间区别?
3、date和datetime之间区别?money和float区别?
二、上机作业
1、创建数据表customers(必做)
分别使用SSMS和T-SQL语句分别完成下述操作:
创建数据库Marker,在Market中创建数据表customers,customers表结构如下表所示,按要求进行操作。
表1.customers表结构
字段名 数据类型 主键 非空 唯一 c_id Int 是 是 是 c_name Varchar(50) 否 否 否 c_contact Varchar(50) 否 否 否 c_city Varchar(50) 否 否 否 c_birth DateTime 否 是 否 (1) 创建数据库Market (2) 创建数据表customers,在c_id字段上添加主键约束,在c_birth字段上添加非空约束。
(3) 将c_name字段数据类型改为varchar(70)。 (4) 将c_contact字段改名为c_phone。
(5) 增加c_gender字段,数据类型为Char(1)。 (6) 将表名修改为customers_info。 (7) 删除字段c_city。
2、在Market中创建数据表orders(必做)
orders表结构如下表所示,按要求进行操作:
(1) 创建数据表orders,在o_num字段上添加主键约束,在c_id字段上添加外键约束,关联customers表中的主键c_id。
(2) 删除orders表的外键约束,然后删除表customers。
表2.orders表结构
字段名 o_num o_date c_id 数据类型 Int(11) date Varchar(50) 主键 是 否 否 非空 是 否 否 唯一 是 否 否 3、EduAdmin数据库创建与管理
请分别使用Management Stuio及T-SQL完成以下内容:
6
《数据库技术与开发》工程实训指导书
(1) 创建表
创建一个数据库:教务管理数据库EduAdmin,依据数据表的结构创建相对应的数据表,表结构如下所示;
表3.学生信息表(student)
字段名称 Sno Sname Ssex Sage Sdept 字段名称 Cno Cname Cpno Ccredit 字段名称 Sno Cno 字段类型及长度 Char(9) Char(6) Char(2) Int VarChar(8) 字段类型及长度 Char(4) VarChar(20) Char(4) Int 字段类型及长度 Char(9) Char(4) 说明 学生学号 学生姓名 学生性别 学生年龄 学生所在院系 说明 课程编号 课程名称 先行课 学分 备注 主关键字 非空 可为空 可为空 可为空 备注 主关键字 非空 可为空 可为空 备注 主关键字 主关键字 表4.课程信息表(course) 表5.选课信息表(sc) 说明 学生学号 课程编号 Grade Int 成绩 可为空 (2) 修改表结构 ? 在表student中增加新字段 “班级名称(sclass)”字符类型为varchar(10); ? 在表student中删除字段“班级名称(sclass)”;
? 修改表student中字段名为“sname”的字段长度由原来的6改为8; ? 修改表student中ssex字段默认值为‘男’;
? 修改表course中cname字段为强制唯一性字段; ? 修改表sc中grade字段的值域为0-100; ? 删除数据表course的唯一性约束;
7
《数据库技术与开发》工程实训指导书
4、实验四:T-SQL基础及T-SQL语句
一、课后作业
1、简述T-SQL语句分类及其作用? 2、简述什么是架构Schema?
3、简述SQL SERVER中最常用的3个全局变量以及全局变量和局部变量的区别?
4、简述什么是批处理及其特点?什么是T-SQL脚本及其特点?
二、上机作业
1、T-SQL编程1:CASE语句
声明整数变量@var,使用CASE流程控制语句判断@var值等于1,等于2或者两者都不等。当@var值为1时,输出字符串”var is 1”; 当@var值为2时,输出字符串”var is 2”;否则输出字符串”var is not 1 or 2”。
2、T-SQL编程2:统计被3整除的数和总和
编程计算1~100之间所有能被3整除的数的个数@count和总和@sum,并分别用Select语句和Print语句两种方法输出个数@count和总和@sum。
3、T-SQL编程3:输出素数
用T-SQL语言编程输出3~100之内的素数。
4、调试DML综合示例程序
将代码段的作用及个人心得体会写到实验报告中 (1) 代码段1 use student go --创建Teacher表 create table teacher ( id int not null primary key, name varchar(20) not null, birthday date, sex char(4), phone varchar(15) ); go --插入单条记录 insert into teacher(id,name,birthday,sex,phone) values(1,'张三','1977-1-2','男','0472-2313450') insert into teacher values(2,'李四','1978-10-2','男','13088997766') --插入多条记录 insert into teacher values (3,'孙二娘','1978-09-12','女','0474-2313140'),
8
《数据库技术与开发》工程实训指导书
(4,'张三丰','19600402','男','0479-2353440'), (5,'李元霸','1969-10-2','男','04725951563') go --查询记录 select * from teacher (2) 代码段2 use student select * from teacher --修改表中指定记录 update teacher set name='萧十一郎',phone='13099999966' where ID=1 select * from teacher (3) 代码段3 use student select * from teacher delete from teacher where name like '李%' select * from teacher (4) 代码段4 create table stu_info ( s_id int primary key, s_name char(20) not null, s_score int, s_sex char(2), s_age int ); insert into stu_info values (1,'王登',98,'男',21), (2,'李敏',88,'女',20), (3,'张林',76,'男',21), (4,'余蒙',90,'女',21), (5,'王登',65,'男',19); select * from stu_info (5) 代码段5 --基本Select查询 select * from stu_info; --查找记录中指定字段 select s_id,s_name,s_score from stu_info; --查询结果中使用表达式 select s_id,s_name,s_score-10 as newscore from stu_info; --显示部分数据 select top 3 * from stu_info; select Top(80) percent * from stu_info; --带限定条件的查询 select * from stu_info where s_age>20 and s_sex='男' select * from stu_info where s_score between 60 and 90 select * from stu_info where s_name like '余%' select * from stu_info order by s_score desc
9
《数据库技术与开发》工程实训指导书
5、实验五:T-SQL函数
一、课后作业
1、简述T-SQL语句分类及其作用?
二、上机作业
1、使用数学函数进行如下运算
(1) 计算18除以5的商和余数
(2) 将弧度值PI()/4转换为角度值。 (3) 计算9的4次方值。
(4) 保留浮点值3.14159小数点后面2位。
2、使用字符串函数进行如下运算
(1) 分别计算字符串“Hello World!”和“University”的长度。 (2) 从字符串“Nice to meet you”中获取子字符串“meet”。 (3) 除去字符串“H e llo”中的空格。
(4) 将字符串“SQLSERVERE”逆序输出。
(5) 在字符串“SQLSERVERSQLSERVER”中,从第4个字母开始查找字母Q 第一次出现的位置。
3、使用日期和时间函数进行如下运算
(1) 计算当前日期是一年的第几天。
(2) 计算当前日期是一周中的第几个工作日。
(3) 计算“1929-02-14”与当前日期之间相差的年份。
10