




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL Server 2000简单查询1. 查询products表中p_price(商品价格)在800以上的商品详细信息,SQL代码如下所示:USE eshopSELECT *FROM productsWHERE m_price 8002. 查询products表中p_quantity(商品数量)在20和50之间的商品编号、商品名称和商品数量,SQL代码如下所示:USE eshopSELECT p_no, p_name, p_quantityFROM productsWHERE p_quantity = 20 AND p_quantity 30 AND m_sex = 男6. 查询orders表各商品销售总量前3名的商品编号和销售总量,SQL代码如下所示:USE eshopSELECT TOP 3 p_no, o_quantityFROM ordersORDER BY o_quantity DESC7. 查询orders表中购买过商品的会员帐号,要求去掉重复行,SQL代码如下所示:USE eshopSELECT DISTINCT m_accountFROM orders8. 查询orders表已确认、已支付和已配送的订单详细信息,SQL代码如下所示:USE eshopSELECT *FROM ordersWHERE o_confirm_state = 1 AND o_pay_state = 1 AND o_send_state = 1SQL Server 2000高级查询1. 查询性别为“男”的会员详细信息,查询结果按月薪降序排列,SQL代码如下所示:USE eshopSELECT *FROM membersWHERE m_sex = 男ORDER BY m_salary DESC2. 查询全体会员的会员帐号,姓名和年龄并按家庭地址升序排列,同一地址中的会员按年龄降序排列,SQL代码如下所示:USE eshopSELECT m_account, m_name, YEAR(GETDATE()-YEAR(m_birth) 年龄FROM membersORDER BY m_address, m_birth或USE eshopSELECT m_account, m_name, DATEDIFF(YY, m_birth, GETDATE() 年龄FROM membersORDER BY m_address, m_birth3. 查询会员帐号为liuzc所购买的商品号和订购日期,并按订购日期升序排列,SQL代码如下所示:USE eshopSELECT p_no, o_dateFROM ordersWHERE m_account = liuzcORDER BY o_date4. 查询购买商品号为0910810004总人数,SQL代码如下所示:USE eshopSELECT COUNT(*)FROM ordersWHERE p_no = 09108100045. 查询2005年6月6日前,所有商品的订购总量,要求输出商品号和订购总量,SQL代码如下所示:USE eshopSELECT p_no, SUM(o_quantity)FROM ordersWHERE o_date 10ORDER BY SUM(o_quantity) DESCSQL Server 2000联接查询1. 查询购买了商品号为“0910810004”的会员号和姓名,并以汉字标题显示,SQL代码如下所示:USE eshopSELECT DISTINCT members.m_account 会员号, m_name 姓名FROM membersJOIN ordersON members.m_account = orders.m_accountWHERE p_no = 09108100042. 查询购买了商品名称为“爱国者MP3”的会员号、姓名和商品价格,SQL代码如下所示:USE eshopSELECT members.m_account, m_name,p_priceFROM membersJOIN ordersON members.m_account = orders.m_accountJOIN productsON orders.p_no = products.p_noAND p_name = 爱国者mp33. 查询比“张自梁”月薪高的而和他不是同一地址的会员姓名和年龄,SQL代码如下所示:USE eshopSELECT A.m_name,YEAR(GETDATE()-YEAR(A.m_birth)FROM members AJOIN members BON A.m_account B.m_accountAND B.m_name = 张自梁AND A.m_salary B.m_salaryAND A.m_address B.m_address4. 使用exists查询购买了“0910810004”商品的会员号和姓名,SQL代码如下所示:USE eshopSELECT m_account, m_nameFROM membersWHERE EXISTS ( SELECT * FROM ordersWHERE members.m_account = orders.m_accountAND p_no = 0910810004)5. 使用in查询与“刘法治”购买至少同一种商品的会员号和商品号,SQL代码如下所示:USE eshopSELECT DISTINCT A.m_account, A.p_noFROM orders AWHERE p_no IN ( SELECT p_no FROM orders BWHERE A.m_account B.m_accountAND B.m_account IN (SELECT m_accountFROM membersWHERE B.m_account = members.m_accountAND m_name=刘法治)6. 使用简单查询家庭地址为“湖南株洲”的会员以及年龄在30岁以上的会员详细信息,SQL代码如下所示:USE eshopSELECT *FROM membersWHERE m_address = 湖南株洲SELECT *FROM membersWHERE (YEAR(GETDATE()-YEAR(m_birth) 30再按F5或点击工具栏上的运行按钮“”,查看运行结果,如图7-1所示。7. 使用集合查询家庭地址为“湖南株洲”的会员以及年龄在30岁以上的会员详细信息,并与步骤6进行比较,SQL代码如下所示:USE eshopSELECT *FROM membersWHERE m_address = 湖南株洲UNIONSELECT *FROM membersWHERE (YEAR(GETDATE()-YEAR(m_birth) 30再按F5或点击工具栏上的运行按钮“”,查看运行结果,如图7-2所示。8. 将members表和orders表之间的左向外联接包括所有会员的信息,包括没有购买商品的会员,SQL代码如下所示:USE eshopSELECT members.*, orders.*FROM membersLEFT OUTER JOIN ordersON members.m_account = orders.m_accountSQL Server 2000的视图操作1. 在members表中创建地址为“湖南株洲”的会员的视图V_addr,SQL代码如下所示:CREATE VIEW V_addrASSELECT *FROM membersWHERE m_address = 湖南株洲2. 在orders表中创建购买了商品号为“0910810004”商品的视图V_buy,SQL代码如下所示:CREATE VIEW V_buyASSELECT *FROM ordersWHERE p_no = 09108100043. 在members和orders表上创建“湖南株洲”的会员购买了商品号为“0910810004”商品的视图V_addr_buy,SQL代码如下所示:CREATE VIEW V_addr_buyASSELECT members.*FROM membersJOIN ordersON members.m_account = orders.m_accountAND p_no = 0910810004AND m_address = 湖南株洲4. 在视图V_addr上查询性别为“男”的会员信息,SQL代码如下所示:USE eshopSELECT *FROM V_addrWHERE m_sex = 男5. 在视图V_addr中增加一条记录(内容如下),并查看members表中记录的改变情况。记录内容如下:(T-SQL)fengxk,冯向克,男,1978-06-28,北京市,5000.0,fxk0628SQL代码如下所示:USE eshopINSERT INTO V_addr VALUES(fengxk, 冯向克, 男, 1978-06-28, 北京市,5000.0, fxk0628)6. 将视图V_addr中会员号为“liuzc518”的会员的密码修改为“liuzc0518”,并查看members中记录的改变情况,SQL代码如下所示:USE eshopUPDATE V_addrSET m_password = liuzc0518WHERE m_password = liuzc5187. 在V_addr中删除会员号为“fengxk”的记录,并查看members中记录的改变情况,SQL代码如下所示:USE eshopDELETE FROM V_addrWHERE m_account = fengxk8. 删除视图V_addr_buy、V_buy和V_addr,SQL代码如下所示:USE eshopDROP VIEW V_addr_buy, V_buy, V_addr学生表S,课程表C和学生选课表SC,它们的结构如下,试用SQL完成下列操作。S(S#,SN,SEX,AGE,DEPT)C(C#,CN,TEACHER)SC(S#,C#,GRADE)1. 建立数据库:CREATE DATABASE studentON PRIMARY(NAME=student_dat,FILENAME=E:mydatastudent_dat.mdf,SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5MB)LOG ON(NAME=student_log,FILENAME=E:mydatastudent_log.ldf,SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5MB)GO2. 创建表USE studentCREATE TABLE S(S# VARCHAR(20),SN VARCHAR(20),SEX CHAR(2),AGE INT,DEPT VARCHAR(50)GOUSE studentCREATE TABLE C(C# VARCHAR(20),CN VARCHAR(20),TEACHER VARCHAR(50)GOUSE studentCREATE TABLE SC(S# VARCHAR(20),C# VARCHAR(20),GRADE INT)GOUSE studentCREATE TABLE SC_C(CNO VARCHAR(20),CNAME VARCHAR(20),AVG_GRADE INT)GO 用SQL找出选修了“程军”老师教的所有课程的学生姓名。SELECT DISTINCT SN FROM SWHERE NOT EXISTS (SELECT * FROM C WHERE C.TEACHER=程军 AND NOT EXISTS (SELECT * FROM SC WHERE S.S#=SC.S# AND SC.C#=C.C#)GO用SQL找出选修了“程军”老师教的课程的学生姓名。SELECT DISTINCT SN FROM S,SC,CWHERE S.S#=SC.S# AND SC.C#=C.C# AND TEACHER=程军GO 用SQL找出“程序设计”课程成绩在90分以上的学生姓名。SELECT DISTINCT SN FROM S,SC,CWHERE S.S#=SC.S# AND SC.C#=C.C# AND CN=程序设计 AND GRADE90GO 检索所有比“王华”年龄大的学生姓名、年龄和性别。SELECT DISTINCT SN,AGE,SEX FROM SWHERE AGE(SELECT AGE FROM S WHERE SN=王华)GO 检索选修课程“C2”的学生中成绩最高的学生的学号。SELECT S# FROM SCWHERE C#=C2 AND GRADE=ALL(SELECT GRADE FROM SC WHERE C#=C2)GO或SELECT S# FROM SCWHERE C#=C2 AND GRADE=(SELECT MAX(GRADE) FROM SC WHERE C#=C2)GO 检索学生姓名及其所选课程的课程号和成绩SELECT SN,C#,GRADE FROM S,SCWHERE S.S#=SC.S#GO 检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。SELECT SUM(GRADE) FROM SCWHERE GRADE=60GROUP BY S# HAVING COUNT(*)=4ORDER BY SUM(GRADE) DESCGO 检索全是女同学选修的课程的课程号。SELECT DISTINCT C# FROM SC,SWHERE SC.S#=S.S# AND SEX=女GO或SELECT DISTINCT C# FROM SCWHERE SC.S# IN (SELECT S.S# FROM S WHERE SEX=女)GO 检索不学C6课程的男同学的学号和姓名(S#,SN)。SELECT S#,SN FROM SWHERE SEX=男 AND S# NOT IN(SELECT S# FROM SC WHERE C#=C6) GO 把SC表中每门课程的平均成绩插入到另一个已存在的表SC_C(CNO,CNAME,AVG_GRADE)中。INSERT INTO SC_C(CNO,CNAME,AVG_GRADE)SELECT C.C#,CN,AVG(GRADE) FROM SC,CWHERE SC.C#=C.C#GROUP BY C.C#,CNGO 从SC表中把吴老师的女学生选课元组删除。DELETE FROM SCWHERE S# IN (SELECT S# FROM S WHERE SEX=女) AND C# IN (SELECT C# FROM C WHERE TEACHER LIKE 吴%)GO 从SC表中把数学课程中低于数学平均成绩的选课元组删去。DELETE FROM SCWHERE GRADE(SELECT AVG(GRADE) FROM SC,C WHERE SC.C#=C.C# AND CN=数学 GROUP BY SC.C#)GO 把吴老师的女学生选课成绩增加4%。UPDATE SCSET GRADE=GRADE+GRADE*0.04WHERE S# IN(SELECT S# FROM S WHERE SEX=女)AND C# IN(SELECT C# FROM C WHERE TEACHER LIKE 吴%)GO课本知识点总结P86 页20题将下图的教务管理数据库的E-R图,转化为关系模型P87 页23题P124 例57由学生、课程和选课3个表,定义一个计算机系的学生成绩视图,其属性包括学号、姓名、课程名和成绩CREATE VIEW 学生成绩(学号,姓名,课程名,成绩)AS SELECT 学生.学号,学生.姓名,课程.课程名,选课.成绩 FORM 学生,课程,选课 WHERE学生.学号=选课. 学号AND课程.课程号=选课.课程号 AND学生.所在系=计算机系;P124 例58 将学生的学号、总成绩、平均成绩定义成一个视图CREATE VIEW 学生成绩统计(学号,总成绩,平均成绩)AS SELECT 学号,SUM(成绩),AVG(成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灌肠术考试试题及答案
- 浸润剂配置工三级安全教育(班组级)考核试卷及答案
- 室温硫化硅橡胶生产工抗压考核试卷及答案
- 2025年解剖实验学考试题及答案
- 排土犁司机前沿技术考核试卷及答案
- 兽用生物制品制造工特殊工艺考核试卷及答案
- 公路工程试验检测师资格考试(公共基础)综合能力测试题及答案(南宁2025年)
- 挤压修模工协作考核试卷及答案
- 细纱机操作工设备维护与保养考核试卷及答案
- 客运索道操作工质量追溯知识考核试卷及答案
- 2025广西公需科目真题续集(附答案)
- T/CECS 10214-2022钢面镁质复合风管
- 学校“1530”安全教育记录表(2024年秋季全学期)
- 公路工程标准施工招标文件(2018年版)
- DL∕T 5776-2018 水平定向钻敷设电力管线技术规定
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范
- 道路、桥梁、隧道、地铁施工标准化手册(专业篇)
- 第十四章 环合反应天津大学
- 有机化学汪小兰 知识点总结 315化学
- 水土保持工程概(估)算编制规定(水利部水总[2003]67号)
- 串谐说明书概要
评论
0/150
提交评论