资源描述:
《第7课sql查询》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7课SQL查询SQL概述SQL数据定义语句SQL数据查询语句SQL数据编辑语句7.1SQL概述SQL(StructuredQueryLanguage)结构化查询语言ANSI(美国国家标准协会)规定SQL为关系型数据库管理系统的标准语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通,以达到操纵数据库数据的目的。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据、从数据库中检索数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle、Sybase、MicrosoftSQLServer、Acce
2、ss等,都采用了SQL语言标准。7.2SQL数据定义功能建立表:CREATETABLE表名(字段1数据类型1[NOTNULL][,字段2数据类型2[NOTNULL]]……)[IN数据库名]修改表:ALTERTABLE表名ADD字段名数据类型删除表:DROPTABLE表名7.3SQL数据查询语句7.3.1SQL查询语句格式7.3.2单一记录源的查询7.3.3多个记录源的查询7.3.4合计、汇总与计算7.3.5嵌套查询7.3.1SQL查询语句格式SQL的查询语句格式:SELECT字段列表[INTO新表]FROM记录源[
3、WHERE<条件表达式>][GROUPBY<分组表达式>][HAVING<条件表达式>][ORDERBY字段列表[ASC
4、DESC]][]中的内容为可选项7.3.2单一记录源的查询单一记录源:被查询的对象是一个表或查询进入SQL视图:先进入空白查询设计视图(不选择表)7.3.2基于单一记录源的查询1.选取记录源的全部字段或部分字段[例7-1]输出“订单”表的全部字段*表示记录源的全部字段7.3.2基于单一记录源的查询[例7-2]以“98年订单”查询为记录源,显示部分字段SELECT订单编号,客户,雇员,发货日期FROM
5、98年订单说明:(1)字段名之间的逗号“,”必须是英文字符(2)如果重命名查询“98年订单”,则本查询中引用的记录源名字将自动更新。(3)作为记录源的“98年订单”查询不能删除(4)当真正的记录源“订单”表中的数据更新时,查询的执行结果也自动更新。7.3.2基于单一记录源的查询2.用DISTINCT消除重复记录[例7-3]若SELECTDISTINCT货主城市FROM订单SELECT货主城市FROM订单7.3.2基于单一记录源的查询3.用TOP显示前面的若干条记录语法格式:TOPn(n为指定记录数)[例7-4]显示“订
6、单”表中的前4条记录SELECTTOP4*FROM订单7.3.2基于单一记录源的查询4.用AS改变列标题[例7-5]SELECT产品IDAS产品编号,产品名称,'供应商是'AS供应商是,供应商IDAS供应商编号FROM产品;7.3.2基于单一记录源的查询5.用WHERE子句对记录进行选择语法格式:WHERE<表达式><关系运算符><表达式>[例7-6]找年龄不低于20元的产品,显示部分字段SELECT产品名称,单价FROM产品WHERE单价>=207.3.2基于单一记录源的查询WHERE条件表达式内容算术运算符:+、-
7、、*、/逻辑运算符:AND、OR、NOT比较运算符:=、>=、<=、<><列名>IS[NOT]NULL:列值是否为空。<表达式1>[NOT]BETWEEN<表达式2>AND<表达式3>。<表达式>[NOT]IN(目标列表):表达式的值是否是目标列表中的一个值。<列名>[NOT]LIKE<‘字符串’>列值是否包含在‘字符串’中。字符串中可用通配符“?”、和“*”。7.3.2基于单一记录源的查询可用逻辑运算符形成逻辑表达式。逻辑运算符的优先级依次为:NOT>AND>OR[例7-7][例7-8]SELECT产品名称,单价,类
8、别IDFROM产品WHERE单价>=15AND类别ID=3SELECT产品名称,单价,类别IDFROM产品WHERE单价>15AND类别ID=3OR类别ID=27.3.2基于单一记录源的查询6.用特殊运算符过滤记录例如,“单价BETWEEN10AND20”指单价在10~20元之间,包括10元和20元者;而“单价IN(10,20)”指单价等于10或者20。7.3.2基于单一记录源的查询[例7-9][例7-10]SELECT产品名称,单价,类别ID,库存量FROM产品WHERE类别IDIN(1,3)AND单价BETWEEN
9、10AND20SELECT*FROM产品WHERE类别IDISNULL类别编号为空7.3.2基于单一记录源的查询[例7-11][例7-12]SELECT*FROM客户WHERE邮政编码LIKE'*[!0-4]'邮政编码尾数不在0~4SELECT*FROM客户WHERE公司名称LIKE‘广*’OR姓名LIKE‘*州*'以“广”开头或