授课类型
讲授
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
学时
2
授课地点
教室
教学
目标
本章学习在SQLSERVER中对数据进行查询的相关知识。包括简单查询、连接查询、子查询、联合查询和分布式查询。
教学重点
简单查询语句
连接查询语句
子查询语句
联合查询语句
教学难点
简单查询语句
教学
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
“任务驱动” 以及启发式教学法。
教学环节
教 学 内 容
备注
复习
引入
新课
简单查询
连接查询
子查询
联合查询
分布式查询
数据库
安全控制
并发控制
查询技术
数据库对象
管理技术
开发技术
技术基础
基本操作
5.1单表查询
SQL查询语句的目标是从数据库中检索满足条件的
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
,SQL查询通过SELECT语句来完成,查询语句并不会改变数据库中的数据,它只是检索数据。
SQL查询的基本语句格式:
ELECT [ALL/DISTINCT]<.目标列表达式>[,<目标列表达式]
FROM<表名或视图名>[,<表名或视图名>]
[WHERE<条件>]
[GROUP BY <列名1>]
[HAVING<条件表达式>]
[ORDER BY <列名2>] [ASC/DESC]
5.1.1选择列
1.所有列
【任务1-1】网站销售部管理人员或采购部管理人员需要了解所有商品的详细信息
SELECT * FROM GOODS
【提示】:该语句无条件地把GOODS表中的全部信息都查询出来,所以也称为全表查询,这是最简单的一种查询.
2.指定列
【任务1-2】网站管理人员在了解商品信息时只需要了解所有商品的商品号、商品名称和商品单价。
SELECT g_id,g_name,g_price FROM GOODS
【提示】
● Select子名中的<目标列表达式>中各个列的先后顺序要以与表中的顺序不一致
● 用户在查询时可以根据需要改变列的显示顺序,但不改变中列的原始顺序.
3.计算列
【任务1-3】在GOODS表中存储有商品数量和商品单价,现在需要了解所有商品的商品号、商品名称和商品总额。
SELECT g_id,g_name,g_price*g_number
FROM goods
4.使用别名
在显示结果集时,要以指定以别名(显示的名字)代替原来的列名,通常也用来显示结果集中列的汉字标
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
【任务1-4】要求了解所有商品的商品号、商品名称和总价值,但希望以汉字标题商品号、商品名称和总价值表示g_id、g_name和g_PRICE*g_number
SELECT g_id 商品号,g_name 商品名称,g_price*g_number 总价值 FROM goods
【提示】
● 用户可以通过指定别名来改变查询结果的列标题,这在含有算术表达式、常量、函数名的列分隔目标列表达式时非常有用。
● 有三种方法指定别名:
1)通过“列名 列标题”形式;
2)通过“列名 AS 列标题”形式;
3)通过“列标题=列名”形式
课堂实践1
1. 操作要求:
(1)查询Webshop数据库中会员信息表Customers中的所有
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
。
(2)查询Webshop数据库中会员信息表Customers会员的编号(c_id)、用户名(c_name)、真实姓名(c_truename)和密码(C_password)。
(3)查询webshop数据库中会员信息表Customers中会员的编号(c_id)、用户名(c_name)、真实姓名(c_truename)、年龄(c_age)和密码(c_password)。
(4)查询webshop数据库中会员信息表customers中会员的编号(c_id)、用户名(c_name)、真实姓名(c_truename)、年龄和密码(c_password)并以汉字标题显示列名。
5.1.2选择行
1.满足条件的行
查询满足指定条件的记录可以通过WHERE子名实现。WHERE后可以使用关系运算符来进行条件判断,在WHERE条件中常见的运算符如表所示:
运算符
含义用法
<
小于
<=
小于等于
>
大于
>=
大于等于
=
等于
<>
不等于
BETWEEN
用来指定值的范围
LIKE
在模式匹配中使用
IN
用来指定数据中的记录
(1) 简单条件查询
【任务1-5】需要了解所有商品中的“热点”商品的所有信息
SELECT * FROM Goods where g_status=’热点’
(2) 复合条件查询:使用逻辑运算符AND和OR可用来联结多个查询条件。如果这两个运算符同时出现在同一个WHERE条件子句中,则AND的优先级高于OR,但可通过括号改变优先级。
【任务1-6】需要了解商品类别为“01”,商品单价在2500元以上的商品信息,要求以汉字标题显示商品号、商品名称、商品类别号和价格。
SELECT g_id 商品号,g_name 商品名称,t_id 类别号,g_price 价格
FROM Goods
Where t_id=’01’and g_price>2500
【任务1-7】需要了解“湖南”省的所有男性的会员或者是年龄在30岁以下的会员的会员号、会员名称、性别、籍贯和年龄。
SELECT c_id as 会员号,c_name as 会员名称,c_gender as 性别,c_address as籍贯,year(getdate())-year(c_birth) as 年龄
From customers
Where (c_gender=’男’ and left(c_address,2)=’湖南’) or (year(getdate())-year(c_birth)<30)
【任务1-8】需要了解所有年龄在20~25岁之间的会员的名称、籍贯和年龄(NL表示,不是基本表中的字段,是计算出来的列)。
SELECT C_name,c_address,year(getdate())-year(c_birth) nl
From customers
Where year(getdate())-year(c_birth) between 20 and 25
【任务1-9】需要了解所有年龄不在20~25之间的会员的名称、籍贯和NL
SELECT C_name,c_address,year(getdate())-year(c_birth) nl
From customers
Where year(getdate())-year(c_birth) not between 20 and 25
(4)指定集合查询
【任务1-10】需要了解来自“湖南株洲”和“湖南长沙”两地会员的详细信息
SELECT * FROM CUSTOMERS
WHERE LEFT(c_address,4) in (‘湖南株洲’,’湖南长沙’)
该语句相当于多个OR运算符,下面语句可完成相同的查询功能:
SELECT * FROM CUSTOMERS
WHERE LEFT(c_address,4)= ‘湖南株洲’ OR LEFT(c_address,4)= ’湖南长沙’
与IN相对的是NOT IN ,用于查询属性值不属于指定集合的记录。
【任务1-11】需要了解家庭地址不是“湖南株洲”和“湖南长沙”两地会员的详细信息
SELECT * FROM CUSTOMERS
WHERE LEFT(c_address,4) not in (‘湖南株洲’,’湖南长沙’)
(5)模糊查询。谓词LIKE可以用来进行字符串的匹配,其一般语句格式如下:
[NOT]LIKE“<匹配串>”[ESCAPE“<换码字符>”]
其含义是查找指定的属性列值与<匹配串>相匹配的记录。<匹配串>可以是一个完整的字符串,也可以含有通配符“%”和“_”。
%(百分号):代表任意长度(长度可以为0)的字符串。
_(下划线):代表任意单个字符。
【任务1-12】需要了解所有商品中“三星”的商品的详细信息。
SELECT * FROM GOODS
WHERE g_name like ‘三星%’
【任务1-13】需要了解姓“黄”且名字中只有两个汉字的会员的会员名、真实姓名、电话和电子邮箱。
SELECT C_name,c_truename,c_phone,c_email from customers
Where c_truename like ‘黄_’
【任务1-14】知道一个商品的商品名称中包含有“520“字样,要求查询该商品中的商品号、商品名称、商品单价和商品折扣。
SELECT g_id,g_name,g_price,g_discount from goods
Where g_name like ‘%520%’
【提示】
● 如果用户要查询的匹配字符串本身就含有“%“或”_“,如要查询名字为”三星Cdmaix_008“的商品的信息,这时就要使用”ESCAPE“关键字对通配符进行转义。
● ESCAPE“\“短语表示”\“为换码字符,这样匹配串中紧跟在”\’后面的字符“_”不再具有通配符的含义,而是取其本身含义,即普通的“_”字符。
(6)涉及空值的查询
【任务1-15】查询暂时没有商品图片的商品信息
SELECT * FORM Goods
Where g_image is null
【提示】
● 这里的“IS”不能用等号(“=”)代替。IS NULL表示空,ISNOT NULL表示空。
● 这里的NULL值是抽象的空值,不是0,也不空字符串,如果用户将已有的商品图片信息删除,则为空字符串,而非NULL值 。
2. 消除重复行
【任务1-16】需要了解在WEBSHOP网站进行了购物并下了订单的会员编号,如果一个会员下了多个订单,中需要显示一次会员编号。
SELECT g_id from orderedails
该运行结果里包含了重复“C0001”。如果让想会会员编号“C0001”只显示一次,必须指定DISTINCT短语。
SELECT DISTINCT g_id from orderedails
3.前N行
在SELECT子句中利用TOP子句限制返回到结果集中的行数,其基本语句格式如下:
TOP n[PERCENT]
n指定返回的行数。如果未指定PERCENT,n就是返回的行数。如果指定了PERCENT,n就是返回的结果集行的百分比。
SELECT TOP 8 * FROM Goods
课堂实践2
1. 操作要求
(1)查询WEBSHOP数据库中“VIP会员”的详细情况
(2)查询webshop数据库中男“VIP会员”的详细情况,并对所有的列使用汉字标题。
(3)查询WEBSHOP数据库中来自湖南的男“VIP会员”的姓名(c_name)、性别(c_gender)、出生年月(c_birth)、籍贯(c_address)、联系电话(c_phone)和e_mail(c_email)地址,要求使用汉字标题。
(4)查询所有使用163邮箱的会员详细信息
(5)查询最先注册的10%的会员详细信息
(6)查询所有姓“刘”的会员信息,要求显示姓名(c_name)、性别(c_gender)、出生年月(c_birth)和籍贯(c_address)
单元
小结
作业