Sql基础代码第二章数据查询Word文档下载推荐.docx
《Sql基础代码第二章数据查询Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Sql基础代码第二章数据查询Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
![Sql基础代码第二章数据查询Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/16/be5663f5-ff6b-43e4-8ff1-2c266ec463c7/be5663f5-ff6b-43e4-8ff1-2c266ec463c71.gif)
3.1.5聚合函数24
第四章变量25
4.1局部变量26
4.2全局变量27
第五章循环语句27
5.1统计平均成绩27
5.2提分27
5.3根据成绩显示等级27
第六章存储过程27
6.1存储过程的应用27
6.1.1系统存储过程27
6.1.2Sp_helptext的使用27
6.1.3创建存储过程27
6.2raiserror语句的应用27
第七章exists子查询27
7.1exists子查询的应用27
7.2求银行利息27
7.3变量查询27
7.4查询考试通过情况27
7.5循环提分27
7.6通过率27
第八章事物27
8.1使用事物解决银行转账27
第九章触发器27
9.1检测触发器27
9.2创建触发器27
9.3触发器delete运用27
9.4触发器update运用27
9.5触发器禁止修改运用27
第二章数据查询
2.1建表和插入数据
2.1.1建立学生信息表
usemaster—使用master系统数据库
ifexists(select*fromsysdatabaseswherename='
studb'
)
dropdatabasestudb—检测是否有studb数据库,有则删除
createdatabasestudb
usestudb—使用studb数据库
createtableclass—创建课程表
(cnochar(10)primarykey,--课程号
cnamechar(50)notnull,--课程名
teanochar(10)notnull,--教师号
creditchar(4)notnull,
ctimechar(50)notnull)
createtablestudent1—创建学生信息表
(snochar(10)primarykey,--学号
snamechar(10)notnull,--姓名
ssexchar
(2)notnull,--性别
sagechar
(2)notnull,--年龄
majorchar(10)notnull,--专业
dapartchar(10)notnull)–系别
createtableteacher1
(teanochar(10)primarykey,
tnamechar(10)notnull,--教师名
tsexchar
(2)notnull,--教师性别
tdepartchar(10)notnull)–教授课程
createtablescore—创建成绩表
(snochar(10)notnull,
cnochar(10)notnull,
scoreintnotnull)–成绩
2.1.2插入信息
--插入单条信息
insertintostudent1
values('
0811080101'
'
陈琦'
男'
'
22'
信息'
工商'
)
--插入多条信息
insertintostudent1—在student1表中插入信息
select'
0811080102'
崔雪娇'
女'
23'
union
0811080103'
董朝阳'
数学教育'
数学系'
0811080104'
杜鹃'
计算机应用'
计算机系'
0811080105'
方卉'
20'
汉语言'
文法系'
insertintoclass—在class表中插入信息
0301'
财务管理'
001'
2'
24'
union
0302'
供应链管理'
002'
2.2'
18'
0303'
'
生产与运作管理'
003'
2.4'
36'
0304'
统计学'
004'
2.6'
32'
0305'
网页制作'
005'
2.8'
30'
0306'
操作系统原理'
006'
3.0'
union
0307'
数据库原理'
007'
3.2'
0308'
项目管理'
008'
3.4'
45'
0309'
web程序设计'
009'
3.5'
35'
insertintoscore—在score表中插入信息
select0811080101,0306,85union
select0811080101,0303,90union
select0811080101,0305,86union
select0811080102,0306,82union
select0811080102,0304,84union
select0811080102,0301,81union
select0811080103,0306,93union
select0811080103,0302,79union
select0811080103,0304,85union
select0811080104,0306,94union
select0811080104,0308,74union
select0811080104,0307,86
insertintoteacher1—在teacher1表中插入信息
select001,'
卢亚君'
财经'
select002,'
李昌明'
select003,'
张富强'
select004,'
刘翠杰'
数信'
select005,'
王庆石'
select006,'
黄立明'
select007,'
王纲'
计算机'
select008,'
徐伟丽'
select009,'
刘书霞'
2.2查询运用
2.2.1数据查询
--查询课程表信息
select*fromclass
--查询学生表信息
select*fromstudent1
--查询教师表信息
select*fromteacher1
--查询成绩表信息
select*fromscore
2.2.2单表查询
--
(1)查询sno为0811080101学生的sname
selectsname
fromstudent1
wheresno='
--
(2)查询ssex为’女’并且sdepart为’工商’的sname
wheressex='
anddapart='
--(3)查询所有学生的姓名和系别。
selectsnameas姓名,dapartas系别—as后的中文是别名,可以在查询结果中将别名前的名字替换成别名后的名字。
--(4)查询depart为数学系的sname。
wheredapart='
--(5)查询所有学生所在院系名称
selectdistinctdapart—distinct是去掉重复值
--(6)查询学生信息表中年龄小于和年龄大于的学生的姓名和系别
selectsname,dapart
wheresage<
21orsage>
21
--(7)查询所有学生的平均年龄
selectavg(sage)as平均成绩
2.2.3连接查询
--用where语句来进行两表联接
selects.sname,o,c.score
fromstudent1ass,scoreasc
wheres.sno=c.sno
--用where语句来进行多表联接
selectstudent1.sno,student1.sname,
o,ame,score.score,teacher1.tname
fromstudent1,class,score,teacher1
wherestudent1.sno=score.sno
ando=o
andclass.teano=teacher1.teano
--内联接,用innerjoin内联接将stuinfo表和stumarks表联接起来
fromscoreasc
innerjoinstudent1assonc.sno=s.sno
--用innerjoin内联接来进行三表联接
selects.sname,ame,sc.score
fromstudent1ass
innerjoinscoreasscon(s.sno=sc.sno)
innerjoinclassascon(o=o)
--左外连接leftjoinon,主键在左边
selects.sname,sc.score
leftjoinscoreassc
ons.sno=sc.sno
--左外连接leftjoinon三表联接
leftjoinscoreassc
on(s.sno=sc.sno)
leftjoinclassasc
on(o=o)
--右外连接rightjoinon,主键在右边
fromscoreassc
rightjoinstudent1ass
--右外连接rightjoinon三表联接
rightjoinstudent1ass
--显示奇数行的学生信息
select*fromstudent1
wheresno%2<
>
--显示偶数行的学生信息
wheresno%2=0
2.2.4操作结果集查询
selectcno课程号
fromscore
intersect
2.2.5嵌套查询
--查询选修了这门课的所有学生的学号、姓名、年龄、院系
selectsno,sname,sage,dapart
wheresnoin(selectsnofromclasswherecno='
2.3数据库更新
--A.插入数据
--向Student1表中添加一项记录:
--姓名:
叶问,学号:
,性别:
男,年龄:
专业:
信息管理,系别:
工商
0811080201'
叶问'
信息管理'
--B.修改数据
--修改陈琦的学号为:
updatestudent1
setsno='
081108023'
wheresname='
--C.删除数据
--删除所有工商学生的记录
deletestudent1