数据库sql语句和重要知识点总结 - 图文

2020-04-21 07:22

SQL Server 2000简单查询

1. 查询products表中p_price(商品价格)在800以上的商品详细信息,SQL代码如下所示: USE eshop SELECT *

FROM products

WHERE m_price > 800

2. 查询products表中p_quantity(商品数量)在20和50之间的商品编号、商品名称和商品数量, SQL代码如下所示:

USE eshop

SELECT p_no, p_name, p_quantity FROM products

WHERE p_quantity >= 20 AND p_quantity <= 50 或

USE eshop

SELECT p_no, p_name, p_quantity FROM products

WHERE p_quantity BETWEEN 20 AND 50

3. 查询orders表中各会员购买商品的总量,并以汉字列标题形式输出会员帐号,商品总额,SQL

码如下所示:

USE eshop

SELECT m_account 会员帐号, o_quantity 商品总额 FROM orders

4. 查询members表中家庭地址为“湖南”的会员详细信息,SQL代码如下所示: USE eshop SELECT *

FROM members

WHERE m_address LIKE '湖南%'

5. 查询members表中年龄大于30且性别为“男”的会员详细信息,SQL代码如下所示: USE eshop SELECT *

FROM members

WHERE DATEDIFF(YY,m_birth,GETDATE())>30 AND m_sex = '男'

6. 查询orders表各商品销售总量前3名的商品编号和销售总量,SQL代码如下所示: USE eshop

SELECT TOP 3 p_no, o_quantity FROM orders

ORDER BY o_quantity DESC

7. 查询orders表中购买过商品的会员帐号,要求去掉重复行,SQL代码如下所示: USE eshop

SELECT DISTINCT m_account FROM orders

8. 查询orders表已确认、已支付和已配送的订单详细信息,SQL代码如下所示: USE eshop SELECT * FROM orders

WHERE o_confirm_state = '1' AND o_pay_state = '1' AND o_send_state = '1'

SQL Server 2000高级查询

1. 查询性别为“男”的会员详细信息,查询结果按月薪降序排列,SQL代码如下所示: USE eshop SELECT *

FROM members WHERE m_sex = '男'

ORDER BY m_salary DESC

2. 查询全体会员的会员帐号,姓名和年龄并按家庭地址升序排列,同一地址中的会员按年龄降序

列,SQL代码如下所示:

USE eshop

SELECT m_account, m_name, YEAR(GETDATE())-YEAR(m_birth) 年龄 FROM members

ORDER BY m_address, m_birth 或

USE eshop

SELECT m_account, m_name, DATEDIFF(YY, m_birth, GETDATE()) 年龄 FROM members

ORDER BY m_address, m_birth

3. 查询会员帐号为’liuzc’所购买的商品号和订购日期,并按订购日期升序排列,SQL代码如下所示: USE eshop

SELECT p_no, o_date FROM orders

WHERE m_account = 'liuzc' ORDER BY o_date

4. 查询购买商品号为’0910810004’总人数,SQL代码如下所示: USE eshop

SELECT COUNT(*) FROM orders

WHERE p_no = '0910810004'

5. 查询2005年6月6日前,所有商品的订购总量,要求输出商品号和订购总量,SQL代码如下所 示:

USE eshop

SELECT p_no, SUM(o_quantity) FROM orders

WHERE o_date < '2005-6-6' GROUP BY p_no

6. 查询所有会员的平均月薪,最高月薪和最低月薪之和,SQL代码如下所示: USE eshop

SELECT AVG(m_salary)+MAX(m_salary)+MIN(m_salary) FROM members

7. 查询所有会员购买商品的种类和,要求输出会员号和商品种类和,SQL代码如下所示: USE eshop

SELECT m_account, COUNT(DISTINCT p_no) FROM orders

GROUP BY m_account

8. 查询各类商品的最高购买数量,要求输出最高数量大于10的商品号和最高数量,SQL代码如下 所示:

USE eshop

SELECT TOP 1 p_no, SUM(o_quantity) FROM orders GROUP BY p_no

HAVING SUM(o_quantity) > 10 ORDER BY SUM(o_quantity) DESC

SQL Server 2000联接查询

1. 查询购买了商品号为“0910810004”的会员号和姓名,并以汉字标题显示,SQL代码如下所示: USE eshop

SELECT DISTINCT members.m_account 会员号, m_name 姓名 FROM members JOIN orders

ON members.m_account = orders.m_account WHERE p_no = '0910810004'

2. 查询购买了商品名称为“爱国者MP3”的会员号、姓名和商品价格,SQL代码如下所示: USE eshop

SELECT members.m_account, m_name,p_price

FROM members JOIN orders

ON members.m_account = orders.m_account JOIN products

ON orders.p_no = products.p_no AND p_name = '爱国者mp3'

3. 查询比“张自梁”月薪高的而和他不是同一地址的会员姓名和年龄,SQL代码如下所示: USE eshop

SELECT A.m_name,YEAR(GETDATE())-YEAR(A.m_birth) FROM members A JOIN members B

ON A.m_account <> B.m_account AND B.m_name = '张自梁' AND A.m_salary > B.m_salary AND A.m_address <> B.m_address

4. 使用exists查询购买了“0910810004”商品的会员号和姓名,SQL代码如下所示: USE eshop

SELECT m_account, m_name FROM members

WHERE EXISTS ( SELECT * FROM orders WHERE members.m_account = orders.m_account AND p_no = '0910810004')

5. 使用in查询与“刘法治”购买至少同一种商品的会员号和商品号,SQL代码如下所示: USE eshop

SELECT DISTINCT A.m_account, A.p_no FROM orders A

WHERE p_no IN ( SELECT p_no FROM orders B WHERE A.m_account <> B.m_account AND B.m_account IN (SELECT m_account FROM members WHERE B.m_account = members.m_account AND m_name='刘法治'))

6. 使用简单查询家庭地址为“湖南株洲”的会员以及年龄在30岁以上的会员详细信息,SQL代码

下所示:

USE eshop SELECT *

FROM members

WHERE m_address = '湖南株洲'

SELECT *

FROM members

WHERE (YEAR(GETDATE())-YEAR(m_birth)) > 30 再按F5或点击工具栏上的运行按钮“”,查看运行结果,如图7-1所示。

7. 使用集合查询家庭地址为“湖南株洲”的会员以及年龄在30岁以上的会员详细信息,并与步骤6 进行比较,SQL代码如下所示:

USE eshop SELECT *

FROM members

WHERE m_address = '湖南株洲' UNION SELECT *

FROM members

WHERE (YEAR(GETDATE())-YEAR(m_birth)) > 30 再按F5或点击工具栏上的运行按钮“”,查看运行结果,如图7-2所示。

8. 将members表和orders表之间的左向外联接包括所有会员的信息,包括没有购买商品的会员,SQL 代码如下所示:

USE eshop

SELECT members.*, orders.* FROM members

LEFT OUTER JOIN orders

ON members.m_account = orders.m_account SQL Server 2000的视图操作

1. 在members表中创建地址为“湖南株洲”的会员的视图V_addr,SQL代码如下所示: CREATE VIEW V_addr AS SELECT * FROM members WHERE m_address = '湖南株洲'

2. 在orders表中创建购买了商品号为“0910810004”商品的视图V_buy,SQL代码如下所示: CREATE VIEW V_buy AS SELECT * FROM orders WHERE p_no = '0910810004'

3. 在members和orders表上创建“湖南株洲”的会员购买了商品号为“0910810004”商品的视图 V_addr_buy,SQL代码如下所示:

CREATE VIEW V_addr_buy AS SELECT members.* FROM members JOIN orders ON members.m_account = orders.m_account AND p_no = '0910810004' AND m_address = '湖南株洲'

4. 在视图V_addr上查询性别为“男”的会员信息,SQL代码如下所示: USE eshop SELECT * FROM V_addr

WHERE m_sex = '男'

5. 在视图V_addr中增加一条记录(内容如下),并查看members表中记录的改变情况。记录内容如

下:(T-SQL) ‘fengxk’,‘冯向克’,‘男’,‘1978-06-28’,‘北京市’,5000.0,‘fxk0628’

SQL代码如下所示:

USE eshop

INSERT INTO V_addr VALUES('fengxk', '冯向克', '男', '1978-06-28', '北京市',5000.0, ' fxk0628')

6. 将视图V_addr中会员号为“liuzc518”的会员的密码修改为“liuzc0518”,并查看members中记

的改变情况,SQL代码如下所示:

USE eshop

UPDATE V_addr

SET m_password = 'liuzc0518' WHERE m_password = 'liuzc518'

7. 在V_addr中删除会员号为“fengxk”的记录,并查看members中记录的改变情况,SQL代码如

所示:

USE eshop DELETE FROM V_addr

WHERE m_account = 'fengxk'

8. 删除视图V_addr_buy、V_buy和V_addr,SQL代码如下所示: USE eshop

DROP 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 student ON PRIMARY ( NAME=student_dat, FILENAME='E:\\mydata\\student_dat.mdf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5MB )

LOG ON ( NAME=student_log, FILENAME='E:\\mydata\\student_log.ldf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5MB ) GO

2. 创建表 USE student

CREATE TABLE S ( S# VARCHAR(20), SN VARCHAR(20), SEX CHAR(2), AGE INT, DEPT VARCHAR(50) ) GO


数据库sql语句和重要知识点总结 - 图文.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:食品企业如何做好品牌运营

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: