数据库技术与应用复习资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用SQL语句创建数据表&数据操作Insert、Update、Delete 1.利用Transact-SQL语句创建表booksales的代码。

USE test01

GO

CREATE TABLE booksales(

book_id nchar(6) NOT NULL,

sellnum int NOT NULL,

selldate datetime NOT NULL

) ON PRIMARY

2.利用insert语句为表booksales添加数据:

INSERT INTO booksales VALUES ('m00011',7,20/12/2008)

3.利用update语句为表booksales更新数据:

UPDATE booksales SET sellnum =11

WHERE book_id ='m00011'

4.利用delete语句删除表booksales的数据:

DELETE FROM booksales

WHERE book_id ='m00011'

Transact-SQL语句基础1 –数据完整性

1.将teaching数据库中score表的studentno列设置为引用表student的外键。

ALTER TABLE Score

ADD CONSTRAINT FK_score_student FOREIGN KEY (studentno)

REFERENCES student(studentno)

2.将teaching数据库中class表的classname创建UNIQUE约束。

ALTER TABLE class

ADD CONSTRAINT UQ_class UNIQUE(classname)

执行如下插入语句,查看提示信息

INSERT INTO class VALUES(‘090602’, ’计算机0902’, ’计算机学院’, ’马文斐’) 3. 为teaching数据库中student表的birthday列创建CHECK约束,规定学生的年龄在17-25岁之间。

ALTER TABLE student

ADD CONSTRAINT CK_birthday

CHECK(YEAR(GETDATE())-YEAR(birthday)) BETWEEN 17 AND 25 执行如下插入语句,查看提示信息

INSERT INTO student(studentno, sname, sex, birthday, classno)

VALUES (‘0922221328’, ’张源’, ’男’, ’1983-04-05’, ’090501’)

提示:表达式YEAR(GETDATE())-YEAR(birthday)

数据检索1

1)SELECT … FROM …

2)条件WHERE

3)生成新表INTO

4)比较运算符(数值类型、字符串、日期时间,YEAR())

5)模糊查询LIKE

6)逻辑运算符AND OR NOT

7)检索一定范围的值BETWEEN … AND …

8)利用列表值检索IN

9)改变列名AS

10)排序ORDER BY

11)消除重复行DISTINCT

12)输出前n行TOP n TOP n PERCENT

13)分组GROUP BY 筛选HAVING

14)聚合函数

15)附加行汇总值COMPUTE

16)多表连接INNER JOIN

17)使用子查询

1. 查询course表中所有的记录。

SELECT * FROM course

2. 查询student表中女生的人数。

SELECT * FROM student

WHERE sex='女'

3.查询teacher表中每一位教授的教师号、姓名和专业名称。

SELECT teacherno, tname, major FROM teacher

WHERE prof='教授'

4.利用现有的表生成新表,新表中包括学号、课程号和总评成绩。其中:总评

成绩=final*0.8+usually*0.2

SELECT student.studentno, sname, courseno, final*0.8+usually*0.2 AS 总评成绩INTO zongping

FROM student,score

WHERE student.studentno = score.studentno

GO

SELECT * FROM zongping

5.查询student表中所有年龄大于20岁的男生的姓名和年龄。

SELECT sname, Year(GetDate())-Year(birthday) AS age

FROM student

WHERE Year(GetDate())-Year(birthday)>20

GO

6.查询计算机学院教师的专业名称。

SELECT major AS 专业名称

FROM teacher

WHERE department='计算机学院'

GO

7.查询Email使用126邮箱的所有学生的学号、姓名和电子邮箱地址。

SELECT studentno,sname,Email

FROM student

WHERE Email Like '%%'

GO

8.查询score表中选修’c05109’或’c05103’课程,并且课程期末成绩在90~100分

之间的学号和期末成绩。

SELECT * FROM score

WHERE ((courseno in('c05109','c05103')) and (final between 90 and 100))

9.查询student表中所有学生的基本信息,查询结果按班级号classno升序排列,

同一班级中的学生按入学成绩point降序排列。

SELECT * FROM student

ORDER BY classno ASC, point DESC

10.查询选修’c05109’课程,并且期末成绩在前5名的学生学号、课程号和期末成

绩。(提示:TOP 5)

SELECT TOP 5 studentno,courseno,final

FROM score

WHERE courseno='c05109'

ORDER BY final DESC

相关文档
最新文档