SQL报表补充练习

合集下载

数据库SQL语句补充 共24页PPT资料

数据库SQL语句补充 共24页PPT资料
(select * from 读者,借阅 where 读者.借书证号=借阅.借书证号 and 单位=‘经济系’
)
3.1 添加数据
命令格式
insert [into] 表名[(列名1,列名2,...列名n)] values (各相应列的值) 简例:例16:添加一条图书记录信息:书编号为554433,书名为‘数据库原理’,作者为
数据库SQL语句补充
数据库SQL语句入门
以SQL Server 2K 为平台 有关语句的详细语法,参见自带联机丛书查阅、搜 索
1、结构化查询语言(SQL)概况
结构化查询语言(Structured Query Language,简称SQL)的理论是1974年提 出的,并在IBM公司的System R上实现。由于它功能丰富、使用方式灵活、语言 简洁易学等优点,在计算机工业界和用户中倍受青睐,很快得以推广。后来,美 国国家标准局(ANSI)和国际标准化组织(ISO)先后批准SQL作为关系数据库 语言的美国及国际标准。至此,SQL就成为关系数据库的标准语言,关系数据库 系统一般都支持标准SQL语句。
2.3 嵌套查询
例11:查2019年6月1号以后没有借书的读者借书证号、姓名和单位。 select 借书证号,姓名,单位 from 读者 where 借书证号 not in (select 借书证 from 借阅 where 借书日期>='2019-06-01' )
2.4. 使用库函数查询
SQL常用统计函数
2.4 使用库函数查询
存在量词exists和not exists
在嵌套查询主查询的where字句中,条件可用exists表示存在。
例15:查询经济系是否还清所有借书。如还清,显示该系所有读者的姓名、所在单位和职称。

补充SQL练习2

补充SQL练习2

1.关系:图书(书号,书名,作者,出版社,单价)BOOK(Bno, Bname, Author, Press, Price)⏹查询“数据库”一书的书号和单价SELECT Bno, PriceFROM BOOKWHERE Bname=”数据库”;⏹查询单价在20至50元之间的图书信息SELECT Bno, Bname, Author, Press, PriceFROM BOOKWHERE Price BETWEEN 20 AND 50;⏹查询北京某出版社出版的图书信息SELECT Bno, Bname, Author, Press, PriceFROM BOOKWHERE Press LIKE “北京%”⏹查询作者是张一,王二,刘三的书的信息SELECT Bno, Bname, Author, Press, PriceFROM BOOKWHERE Author =”张一” OR Author =”王二” OR Author =”刘三”⏹查询所有图书的书号,书名和单价信息SELECT Bno, Bname, PriceFROM BOOK查询缺少出版社信息的图书的书号和书名SELECT Bno, BnameFROM BOOKWHERE Press IS NULL2.数据库模式如下:◆仓库(仓库号,负责人)◆货物(货物号,货物名,货物描述)◆入库记录(货物号,仓库号,数量,入库日期,经办人号) 用SQL实现以下查询要求:◆查询每个仓库中有多少种不同的货物◆查询每天入库数量的最大值◆统计2003年3月20日以后每天入库的货物总数量◆按货物号统计每一种货物在仓库中的总数量◆查询“A-001”号经办人当日经办的入库记录数SELECT仓库号,COUNT(货物号) FROM 入库记录GROUP BY 仓库号;SELECT入库日期, MAX(数量)FROM 入库记录GROUP BY 入库日期;SELECT入库日期, SUM(数量)FROM 入库记录WHERE入库日期> 2003/03/20GROUP BY 入库日期;或SELECT入库日期, SUM(数量)FROM 入库记录GROUP BY 入库日期HA VING 入库日期> “2003/03/20”;(HA VING子句中没有聚集函数)SELECT货物号,SUM(数量)FROM 入库记录GROUP BY货物号;SELECT COUNT(*)FROM入库记录WHERE 经办人=” A-001” AND 入库日期=GETDATE();3.Student-Course-SC数据库中⏹新生“张军”来校报到并选修了两门课程(‘1’,‘3’),请将相关的信息插入到对应表中去。

SQL语句补充笔记

SQL语句补充笔记

4.1日select `userid`, `username`,`userpassword` from `user`;用星号“*”从表中检索出所有字段select * from `user`; 记录条数select count(*) from `user`;select count(1) from `user`;获取当前时间select now();User表中id=1的name:Select `name` from`user` where `id`=1;select `name` from`user` where `id`=1 and `sex`=1;select `name` from`user` where `id`=1 or `sex`=1;select `name` from`user` where (`id`=1 and` address`=‟中国‟)or `sex`=1;关键字DISTINCT 取出该列重复的数据select distinct(`username`) from `user`;Limit 1,2 分页Select `name` from `user` limit 0,1;(0开始取,取一条) Select `name` from `user` limit 0,10;(前10条)Select `name` from `user` limit 10,10;(后10条)ORDER BY 顺序ASC 升序排列DESC 倒序排列select `name` from `user` order by `id` desc;select `name` from `user` order by `id` desc limit 0,3;(分页放在最后边)要想找出以“b”开头的名字:mysql> SELECT * FROM pet WHERE name LIKE 'b%';要想找出以“fy”结尾的名字:mysql> SELECT * FROM pet WHERE name LIKE '%fy';要想找出包含“w”的名字:mysql> SELECT * FROM pet WHERE name LIKE '%w%';要想找出正好包含5个字符的名字,使用“_”模式字符:mysql> SELECT * FROM pet WHERE name LIKE '_____';SELECT * FROM pet WHERE name REGEXP '^b';SELECT * FROM PER_USER WHERE USER_ID IN(12,13,34)Where id in(1,5,7)多个条件用in数据库:xbd_1表名:textbox两个数据表的关联Select a.*,b.* from user a ,userinfo b where erid=erid;修改数据(INSERT,UPDATE,DELETE,TRUNCATE)Insert into`插入数据`(内容) values(内容的值)Insert ito `id`(`name`,`sex`) values(`xbd`,`0`);自增益时value (null)4.2日●Insert into ‘表名’(‘字段名’,‘字段名’,‟时间‟)values(null,‟7‟,‟54555sdfa‟,now()) //整型不加引号可以,但字符串一定要加引号●Now 函数,当前时间比如当前注册时间year() time()Datetime 0000-00-00 00:00:00 注意格式必须一致●Update …表名‟ set …name//字段名=‘china//value’where …id‟in(2,3,4.5) //注意:必须加where 否则name全列都将改为china●Delete from …表名‟where id=‟2‟ //一定记得要加where,否则将删除整个表数据。

SQL语言课后练习[大全5篇]

SQL语言课后练习[大全5篇]

SQL语言课后练习[大全5篇]第一篇:SQL语言课后练习岳阳市湖湘认证培训学校学院路504号************SQL语言课后练习题以下练习都是基于数据库XSG,及数据库表XSCJ与XSDA中操作,表结构如下:XSCJ(学号C(10),语文N(4,1),数学N(4,1),英语N(4,1),计算机N(4,1),平均成绩N(4,1))XSDA(学号C(10),姓名C(10),性别C(4),班级C(10),出生日期D,籍贯C(20),家庭情况G,简历M,照片G)1、用SQL语句建立XSDA表,并为学号字段创建为主关键字,约束性别字段的值只能为男或为女,如果在不输入信息的情况下默认值是女。

2、用SQL语句建立XSCJ表,并与XSDA表建立联系。

3、为XSDA表增加一个学费字段,要求为货币型,约束字段有效性规则:学费必须在0至20000元内(含),否则提示:学费错了。

4、修改XSDA表学费字段,要求学费必须在2000-20000间(含),否则提示:学费错了。

5、修改XSDA表学费字段,删除它的字段有效性规则。

6、修改XSDA表学费字段,将其改名为:学杂费。

7、修改XSDA表的籍贯字段的宽度为10。

8、删除XSDA表的学费字段。

9、将XSDA表的姓名字段和性别字段定义为候选索引,索引名为:TEMP。

10、删除XSDA表的候选索引TEMP。

11、删除XSDA表及XSCJ表。

12、在XSCJ表中插入一个元组:学号:19980405,语文:78,数学:68,英语:74,计算机:90,平均成绩:77.50。

13、在XSDA表中插入一个元组:学号:19980405,姓名:王小辉,性别:男,出生日期:1981年12月5日14、在XSCJ表中为所有学生的英语成绩加10分15、在XSDA表中为学号为:19980405的学生的籍贯改为岳阳市16、删除XSDA表中学号为19980405的记录17、将XSDA表复制到XSDABAK表18、从XSG数据库中的XSDA表查找所有学生的学号、姓名和班级的情况19、从XSG数据库的XSDA表查找计981班的学生的学号、姓名和班级的情况20、从XSG数据库中的XSCJ表中查找计算机成绩大于80的学生的学号21、从XSG数据库的XSDA表查找所有学生的学号、姓名和班级的情况,并按学号降序排序22、从XSG数据库中的XSCJ表中查找计算机成绩大于60的学生学号、语文、计算机和平均成绩,并按计算机的降序排序,如计算机成绩相同,按学号的升序排序23、从XSG数据库的XSDA表查找前4个学生的情况,按学号降序排序24、从XSG数据库中的XSCJ表中查找计算机成绩大于70的前40%学生的学生信息,并按计算机的降序排序25、从XSG数据库的XSDA和XSCJ表查找所有学生的姓名、语文、数学、英语和计算机成绩。

SQL补充作业-sql2

SQL补充作业-sql2

部门表:部门名字城市10ACCOUNTING NEW YORK20RESEARCH DALLAS30SALES CHICAGO40OPERATIONS BOSTON雇员表:雇员编名字职务上级编号雇佣日期工资津贴部门7369SMITH CLERK79021980-12-178**** ****ALLEN SALESMAN76981981-2-20160030030 7521WARD SALESMAN76981981-2-22125050030 7566JONES MANAGER78391981-4-2397520 7654MARTIN SALESMAN76981981-9-281250140030 7698BLAKE MANAGER78391981-5-1285030 7788SCOTT ANAL YST75661987-4-19300020 7844TURNER SALESMAN76981981-9-81500030 7876ADAMS CLERK77881987-5-23110020 7900JAMES CLERK76981981-12-395030 7902FORD ANAL YST75661981-12-3300020工资档次:工资档次最低工资最高工资17001200212011400314012000420013000530019999--1、列出至少有一个雇员的所有部门--2、列出薪金比"SMITH"多的所有雇员--3、列出所有雇员的姓名及其直接上级的姓名--4、列出入职日期早于其直接上级的所有雇员--5、列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门--6、列出所有“CLERK”(办事员)的姓名及其部门名称--7、列出各种工作类别的最低薪金,并使最低薪金大于1500--8、列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号--9、列出薪金高于公司平均水平的所有雇员--10、列出与“SCOTT”从事相同工作的所有雇员--11、列出某些雇员的姓名和薪金,条件是他们的薪金等于部门30中任何一个雇员的薪金--12、列出某些雇员的姓名和薪金,条件是他们的薪金高于部门30中所有雇员的薪金--13、列出每个部门的信息以及该部门中雇员的数量--14、列出所有雇员的雇员名称、部门名称和薪金--15、列出从事同一种工作但属于不同部门的雇员的不同组合--16、列出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员--17、列出各种类别工作的最低工资--18、列出各个部门的MANAGER(经理)的最低薪金--19、列出按计算的字段排序的所有雇员的年薪--20、列出薪金水平处于第四位的雇员第一种理解答案:按工资位次排,处于第4位的员工第二种理解答案:按工资水平排,处于第4档的员工。

SQL经典50题练习

SQL经典50题练习

创建表及插⼊数据学⽣表Studentcreate table SC(SId varchar(10),CId varchar(10),score decimal(18,1));insert into SC values('01' , '01' , 80);insert into SC values('01' , '02' , 90);insert into SC values('01' , '03' , 99);insert into SC values('02' , '01' , 70);insert into SC values('02' , '02' , 60);insert into SC values('02' , '03' , 80);insert into SC values('03' , '01' , 80);insert into SC values('03' , '02' , 80);insert into SC values('03' , '03' , 80);insert into SC values('04' , '01' , 50);insert into SC values('04' , '02' , 30);insert into SC values('04' , '03' , 20);insert into SC values('05' , '01' , 76);insert into SC values('05' , '02' , 87);insert into SC values('06' , '01' , 31);insert into SC values('06' , '03' , 34);insert into SC values('07' , '02' , 89);insert into SC values('07' , '03' , 98);练习题⽬1. 查询" 01 "课程⽐" 02 "课程成绩⾼的学⽣的信息及课程分数1.1 查询同时存在" 01 "课程和" 02 "课程的情况1.2 查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显⽰为 null )1.3 查询不存在" 01 "课程但存在" 02 "课程的情况2. 查询平均成绩⼤于等于 60 分的同学的学⽣编号和学⽣姓名和平均成绩3. 查询在 SC 表存在成绩的学⽣信息4. 查询所有同学的学⽣编号、学⽣姓名、选课总数、所有课程的总成绩(没成绩的显⽰为 null )4.1 查有成绩的学⽣信息5. 查询「李」姓⽼师的数量6. 查询学过「张三」⽼师授课的同学的信息7. 查询没有学全所有课程的同学的信息8. 查询⾄少有⼀门课与学号为" 01 "的同学所学相同的同学的信息9. 查询和" 01 "号的同学学习的课程 完全相同的其他同学的信息10. 查询没学过"张三"⽼师讲授的任⼀门课程的学⽣姓名11. 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩12. 检索" 01 "课程分数⼩于 60,按分数降序排列的学⽣信息13. 按平均成绩从⾼到低显⽰所有学⽣的所有课程的成绩以及平均成绩14. 查询各科成绩最⾼分、最低分和平均分:以如下形式显⽰:课程 ID,课程 name,最⾼分,最低分,平均分,及格率,中等率,优良率,优秀率及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90要求输出课程号和选修⼈数,查询结果按⼈数降序排列,若⼈数相同,按课程号升序排列15. 按各科成绩进⾏排序,并显⽰排名, Score 重复时保留名次空缺15. 按各科成绩进⾏排序,并显⽰排名, Score 重复时保留名次空缺15.1 按各科成绩进⾏排序,并显⽰排名, Score 重复时合并名次16. 查询学⽣的总成绩,并进⾏排名,总分重复时保留名次空缺16.1 查询学⽣的总成绩,并进⾏排名,总分重复时不保留名次空缺17. 统计各科成绩各分数段⼈数:课程编号,课程名称,[100-85],[85-70],[70-60],[60-0] 及所占百分⽐18. 查询各科成绩前三名的记录19. 查询每门课程被选修的学⽣数20. 查询出只选修两门课程的学⽣学号和姓名21. 查询男⽣、⼥⽣⼈数22. 查询名字中含有「风」字的学⽣信息23. 查询同名同性学⽣名单,并统计同名⼈数24. 查询 1990 年出⽣的学⽣名单25. 查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列26. 查询平均成绩⼤于等于 85 的所有学⽣的学号、姓名和平均成绩27. 查询课程名称为「数学」,且分数低于 60 的学⽣姓名和分数28. 查询所有学⽣的课程及分数情况(存在学⽣没成绩,没选课的情况)29. 查询任何⼀门课程成绩在 70 分以上的姓名、课程名称和分数30. 查询不及格的课程31. 查询课程编号为 01 且课程成绩在 80 分以上的学⽣的学号和姓名32. 求每门课程的学⽣⼈数33. 成绩不重复,查询选修「张三」⽼师所授课程的学⽣中,成绩最⾼的学⽣信息及其成绩34. 成绩有重复的情况下,查询选修「张三」⽼师所授课程的学⽣中,成绩最⾼的学⽣信息及其成 绩35. 查询不同课程成绩相同的学⽣的学⽣编号、课程编号、学⽣成绩36. 查询每门功成绩最好的前两名37. 统计每门课程的学⽣选修⼈数(超过 5 ⼈的课程才统计)。

SQL语句-补充练习及答案


--1.查询tblStudent表中所有学生的学号、姓名、年龄。
select studentNo,studentName,year(getdate())-year(birthday) as 年龄
from tblstudent
--2.查询选修了“数学”课程的学生学号、姓名、成绩。
select s.studentNo,studentName,grade
from tblstudent s JOIN tblSelectCourse sc ON s.studentNo=sc.studentNo
group by s.studentNo,studentName
having avg(grade)>85
--5.查询选修了3门以上课程的学生、姓名、总分。
1.查询tblStudent表中所有学生的学号、姓名、年龄。
2.查询选修了“数学”课程的学生学号、姓名、成绩。
3.查询没有选课的学生的学号、姓名。
4.查询平均分大于85分的学生学号、姓名、平均分。
5.查询选修了3门以上课程的学生、姓名、总分。
6.向tblStudent表中新增一条学生记录:‘000111’,‘李红’,‘女’。
select studentNo,studentName
from tblStudent
where studentNo not in(select studentNo from tblselectCourse)
--4.查询平均分大于85分的学生学号、姓名、平均分。
select s.studentNo,studentName,avg(grade) as 平均分
7.向tblSelectCourse表中新增一条选课记录:‘000111',‘F09'

SQL补充练习

1.用SQL语句创建如下三张表:学生表(Student),课程表(Course)和学生选课表(SC),这三张表的结构设计如下列表格所示。

表1-1 Student表结构⑴CREATE TABLE Student(Sno char(7) PRIMARY KEY,Sname char(10) NOT NULL,Ssex char(2) ,Sage int ,Sdept char (20) );表1-2 Course表结构⑵CREATE TABLE Course(Cno char(10) PRIMARY KEY,Cname char(20) NOT NULL, Ccredit int , Semster int , Period int );表1-3 SC表结构⑶ CREATE TABLE SC (Sno char(7) NOT NULL,Cno char(10) NOT NULL, Grade int , PRIMARY KEY(Sno,Cno),Foreign Key (Sno) references Student (Sno), Foreign Key (Cno) references Course (Cno));2.为SC表添加“选课类别”列,取名为:XKLB char(4). ALTER TABLE SC ADD COLUMN XKLB char(4);3.将SC表新添加的XKLB的类型改为:char(6).ALTER TABLE SC ALTER COLUMN XKLB char(6);4.删除Course表的Period列。

ALTER TABLE Course Drop COLUMN Period;5.查询Student表中全体学生的学号和姓名。

SELECT Sno, Sname FROM Student;6.查询Student表中全体学生的全部信息。

SELECT * FROM Student;7.在Student表中,查询计算机系全体学生的姓名。

补充SQL练习(参考答案)PPT课件


2020/10/13
Wei Lu Zhang SCU

2
补充练习
• 查询所有没有被选过的课程。 • Select *
from course c where not exists (select *
from c_s where c.course_no=c_s.course_no);
2020/10/13
Wei Lu Zhang SCU
3
查询选了“数据库原理”课程的所有学生的学号和姓名。 select id,
from student s, c_s, course c where s.id=c_s.student_id
and c_s.course_no=c.course_no and ='数据库原理';
2020/10/13
Wei Lu Zhang SCU
4
查询选课总分最多的学生的姓名及其选课总学分。 select , sum (credit)
from student s, c_s, course c where s.id=c_s.student_id
and c_s.course_no=c.course_no group by s.id,
• 创建上述关系及部分数据的的SQL语句见文件 createdb.sql
• 请完成以下查询:
– 查询所有没有被选过的课程。 – 查询选了“数据库原理”课程的所有学生的学号和姓名。 – 查询选课总学生最多的学生的姓名及其选课总学分。 – 查询选课门数最多的学生姓名及其选课门数。 – 查询选了其所在系开始所有课程的学生姓名。
having sum(credit)>= all (select sum(credit) from student s, c_s, course c where s.id=c_s.student_id

SQL补充作业-sql

SQL Server补充作业1.项目表(items_ordered)2.顾客表(customer)3.作者表(authors)4.书表(books)5.习题1)从items ordered表中查找客户号为10449的客户的购买项目列表。

2)在items ordered表中找出曾买过帐篷的所有记录列表。

3)在items ordered表中检索任何时间且开始字母为‘S’的项目的所有客户号,订购日期,项目价格的列表.4)显示items ordered 表的全部客户号的列表。

5)在items ordered表中检索最高价格。

6)检索十二月份销售的平均价格。

7) items ordered表的总记录数是多少?8)在items ordered表中所有被订购的帐篷中,帐篷的最低价格是多少?9)检索customers表中居住在每一个州的总人数。

10)在items ordered 表中,检索每一种item的item名,最高价和最低价。

11)每个顾客订货多少次?在items ordered表中检索顾客号,订购次数,订购总额。

12)在customers表中,找出每个州居住的总人数和州的名字。

13)在items ordered表中检索最高价格大于190.00的项目名、项目的最高价和最低价。

14)显示定购次数大于1次的客户名,订购次数和订购总额。

15)按lastname升序显示customers表中所有客户的lastname,firstname和city。

16)根据customers表和item ordered表,找出定购次数最多的用户名字。

17)在items ordered表中检索价格大于10.00的所有项目的价格列表。

并根据价格升序排列18)在items ordered表中检索定购商品名称中不包含‘ snow shoes’和‘ear muffs’的客户ID,订货日期和项目名19)检索开始字母是,‘S’,‘P’或‘F’的所有项目的项目名称和价格。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3)将视图保存为view_rate。
5、使用报表向导生成一个报表文件zgbb.frx,其 中包括employee表的职员号、姓名、性别和职 务4个字段,报表样式为“简报式”,按“职员 号”升序排序,报表标题为“职员一览表”。 建立一个命令文件p3.prg,该文件包含一条预 览报表文件zgbb.frx的命令。
2、编写程序p2.prg,其功能是从Orders表中统计 2007年各月份签订的订单数。统计结果依次包含 “月份”和“订单数”两个字段,并按月份升序 排序。统计结果保存到临时表b2中。
SELECT MONTH(签订日期) as 月份,; count(*) as 订单数;
FROM orders;
WHERE YEAR(签订日期) = 2007;
ON
Student.系别号 = Department.系别号;
WHERE Student.系别号 = "01" 984-1-1} AND {^1985-12-31};
ORDER BY 出生日期;
INTO TABLE b1
YEAR(出生日期) IN (1984,1985)
GROUP BY 月份;
ORDER BY 月份;
INTO CURSOR b2
GROUP BY 1; ORDER BY 1;
3、建立查询qq.qpr,查询会员的会员号 (来自Customer表)、会员所购买的商品名
(来自article表)、单价(来自OrderItem表)、 数量(来自OrderItem表)和金额
REPORT FORM
zgbb.frx PREVIEW
1、编写程序p1.prg,其功能是从department 表和student表中查询临床医学系在1984到 1985年这2年中出生的所有学生信息,存到 表b1.dbf中。查询结果包括系别号、姓名、 出生日期和系名称4个字段,并按出生日期 升序排序。
SELECT Student.系别号,姓名,出生日期,系名称; FROM student INNER JOIN department ;
(OrderItem.单价*OrderItem.数量), 查询去向是表ss.dbf,并运行该查询。
4、建立一个名为“外汇管理”的数据库,根据 Cs表和Re表,创建视图,要求如下: 1)视图按顺序包含姓名、外币名称、持有数量 和人民币价值4个字段。 (其中人民币价值=基准价*持有数量)
2)按人民币价值降序排序。
相关文档
最新文档