局网站建设工作,网站推广究竟应该怎么做,什么是网络营销最基本的职能之一是网络营销的基础工作,昆明市建设厅网站本文提供下面数据库代码的数据库原件#xff0c;下载后可使用 教程如下#xff1a;
1.打开sql sever 2.找到数据库 3.右键数据库点击“附加”#xff0c;然后点击“添加” 4.导入数据库原件#xff0c;点击确定
ps#xff1a;如果没有sqlsever 或者页面编辑器#x…本文提供下面数据库代码的数据库原件下载后可使用 教程如下
1.打开sql sever 2.找到数据库 3.右键数据库点击“附加”然后点击“添加” 4.导入数据库原件点击确定
ps如果没有sqlsever 或者页面编辑器请参考此链接进行下载
--查询显示所有学生的信息
select * from s;--查询选选修了课程的学生学号
--一般默认不去重如果需要去重加distinc去重
select distinct sno from sc;--distinct写在目标列前面--查询所有选修信息
select * from sc;--查询所有选修信息按照课程号升序排列
--升序参数ASC默认可省略降序DESC不可省略
--如果要查的表里面有主键默认是按主键升序排
select* from sc order by cno;--统计学生的总人数
select count(*) from s;--查询选修了课程的学生人数
select count(distinct sno) from sc;--查询所有选修信息按照课程号升序排列同一课程内的学生成绩降序排列
select* from sc order by cno,grade desc;--升降序写在目标列后面--查询所有学生的学号和年龄并按年龄升序显示
select sno , datediff(year,sb,getdate())1 from s order by sb;
--datediff函数第一个参数是你要的时间单位第二个参数是从什么时间算起第三个参数是到哪个时间结束--关于重命名在目标列后面加名字即可
select sno 学号, datediff(year,sb,getdate())1 年龄 from s order by sb;--查询选修了课程编号为co1的学生学号和成绩
select sno,grade from sc where CNOC01;--查询“计算机”系“女”同学的学生学号和姓名
select sno,sn from s where sd计算机 and sex女;--查询出生时间在1998-01-01到1999-12-31之间的学生的姓名和出生时间
select sn ,sb from s where sb between 1998-01-01 and 1999-12-31;
select sn ,sb from s where sb1998-01-01 and sb1999-12-31;--查询姓“王”的所有学生的学号和姓名
select sno,sn from s where sn like 王%;--字符串同一用单引号
--模糊查询用%或者_
--%表示长度任意的字符串_表示任意单个字符--查询课程后缀名为_实验的课程信息
select * from c where cn like %_实验 escape \;
--_本身是通配符需要对它进行转义变成 \ _在字符串表达式后用ESCAPE来定义转义字符
--查询非数学系和非计算机系的学生学号、姓名、所在系
select sno ,sn, sd from s where sd !数学 and sd !计算机;--法一
select sno ,sn, sd from s where sd not in(数学,计算机);--法二in可以判断一个值是否属于一个集合--查询所有缺少选课成绩的学生学号和对应的课程号
select sno ,cno from sc where grade is null;--null适用于判断属性值是否为空--查询选修了课程的学生学号和平均成绩
select sno,avg(grade) from sc group by sno;--group by 按照某个规则分类having对分组进行筛选
--加了group by则会以每一分组的元组为计算对象--查询平均成绩在90分以上的学生学号和平均成绩
select sno,avg(grade) from sc group by sno having avg(grade)90;--groupby 和having搭配使用having只能对分组的属性进行操作--查询男生人数超过2名的系的名称(重点理解)
select sd from s where sex男group by sd having count(sd)2 ;--查询选修课程号为“CO1”的学生学号和成绩
select sno ,grade from sc where cnoC01;--查询选修课程号为“C01”的学生姓名和成绩
select sn,grade from s,sc where cnoC01and s.snosc.sno;
--如果不加s.snosc.sno那么就是一个笛卡尔积运算不符合题意--查询选修“数据结构”课程的学生学号、姓名和成绩
select s.sno,sn,grade from s,c,sc where s.snosc.sno and c.cnosc.cno and cn数据结构;
--如果多个表有相同的属性名比如都有sno你需要指定是哪个表的sno--左外连接返回左表全部的记录如果右表没有找到对应记录则将相关位置置为NULL
--右外连接返回右表全部的记录如果左表没有找到对应记录则将相关位置置为NULL--查询所有学生姓名以及选修课程号为“C01”的成绩没有选修该课程的学生成绩显示为空
select sn ,grade from s ,sc where cnoC01 and s.snosc.sno;--查询所有学生姓名以及选修课程号为“C01”的成绩,但不能显示没有选修该课程的学生
select sn ,grade from s left outer join sc on sc.snos.sno and cnoC01;--正解1左外连接
select sn ,grade from sc right outer join s on sc.snos.sno and cnoC01;--正解2右外连接--查询选修“数据结构”课程的学生学号、姓名、成绩
select s.sno,sn,grade from s,c,sc where cn数据结构and s.snosc.sno and c.cnosc.cno;--自连接一个表和自己连接需要对表进行重命名新表名作为表中属性的前缀
--查询每门课的间接先修课程号即先修课程的先修课程号
select c1.cno 课程,c2.pc 间接先修课程 from c c1 ,c c2 where c1.pcc2.cno;--下面都是嵌套查询对前面一些查询的例子的写法
--你选择嵌套查询或者前面的写法都可以--查询选修‘C02’课程的学生姓名
select sn from s where sno in
(select sno from sc where cnoC02);--先查一下哪些学号选择了C02再查哪些学生是在这些查到的学号里面select sn from s,sc where s.snosc.sno and cnoC02;--效果和上面一样--查询没有选修‘C02’课程的学生姓名
select sn from s where sno not in
(select sno from sc where cnoC02);--查询选修‘C01’课程的成绩高于王玲的学生的学号和成绩
select s.sno , grade from s,sc where s.snosc.sno and cno C01and grade--看谁的成绩大于王玲
(select grade from s, sc where s.snosc.sno and cnoC01 and sn王玲)--看王玲的c01成绩--法二
select sno,grade from sc where cnoC01 and grade --看谁C01比王玲高
(select grade from sc where cnoC01 and sno in--王玲C01成绩
(select sno from s where sn王玲)
)--查询每个学生所修课程成绩超过其所有选课平均成绩的学号和课程号
select sno ,cno from sc sc1 where grade--查询某个人的某科目成绩
(select avg(grade) from sc sc2 where sc1.snosc2.sno)--查询这个人的所选课平均成绩--查询其他系中比计算机系学生年龄都小的学生
select * from s where sd!计算机 and sb
all(select sb from s where sd计算机);--量词any 或者 all加在子查询前select * from s where sd!计算机 and sb
(select max(sb) from s where sd计算机);--量词any 或者 all加在子查询前--查询其他系中比计算机系某一学生年龄小的学生
select * from s where sd!计算机 and sb
any(select sb from s where sd计算机);--量词any 或者 all加在子查询前select * from s where sd!计算机 and sb
(select min(sb) from s where sd计算机);--法二--查询选修了C02课程的学生姓名
select sn from s where sno in(
select sno from sc where cnoC02)select sn from s ,sc where s.snosc.sno and sc.cnoC02;--法二select sn from s where exists(
select * from sc where sc.snos.sno and cnoC02);--法三
--exists用于判断一个子查询的结果是否为空如果子查询结果为空则exists为真否则为假--in和exists区别
--in是用一个字段匹配多个值exists则是用于检查子查询的结果是否为空
--使用exists关键字它是先进行主查询然后逐个的执行子查询进行匹配。--查询没有选修‘C02’课程的学生姓名
select sn from s where sno not in
(select sno from sc where s.snosc.sno and cnoC02);select sn from s where not exists
(select * from sc where sc.snos.sno and cnoC02);--法二--查询选修了全部课程的学生的姓名难题
--选了全部课程等价于没有一门课不选
select sn from s where not exists
(select * from c where not exists
(select * from sc where sc.sno s.sno and sc.cno c.cno)
)