来自:http://res.hersp.com/content/1154
学习内容:
课程导入:在前面的Access学习中我们知道使用Access数据库的图形化界面对数据库进行各种查询等操作,那么如果我们自己做数据库应用系统怎么实现对数据库的各种操作呢?
一、认识SQL:
SQL(Structured Query Language,结构化查询语言)诞生于1974年,现已被普遍采用,成为了数据库中的通用语言。
使用举例:1、我们即将要做的濒危动物数据库应用系统。2、我们常用的Oicq聊天工具
数据库查询语言: 当我们检索数据库中的数据时,可以通过 SQL 语句发出请求,然后, DBMS 对该请求进行处理并按要求检索数据,最后 将检索结构返回。
SQL分为自含式和嵌入式两类,即:它可以独立使用,也可以嵌入到另一种语言中,从而式这种语言具有数据库存取功能。
二、SQL语句:
select语句最简单的格式:
select columns from tables
其功能是从指定的表中选择全部列或部分列
例1:查看我国濒危动物的濒危等级
select level2 from PreservedSpecies
例2:查询我国濒危动物有那些濒危等级
select distinct level2 from PreservedSpecies
(2)使用通配符
例3:查询“PreservedSpecies”表中所有的濒危动物保护信息
select * from PreservedSpecies
(3)查询符合条件的记录
在实际的数据库查询中,经常需要查询满足某些条件的记录,如:在“濒危动物”数据库中,查询濒危等级为“极危”的动物。要实现这样的查询可以使用where子句,在where关键字后设置查询条件,格式如下:
select columns from tables [where predicates]
where 子句中可以使用比较运算符、between关键字、in关键字和like关键字等方法来限制需要检索的记录
【比较查询】
在SQL中可以使用多种比较方式查询,用于比较查询的运算符主要包括:
代表意思 | 运算符 |
等于 | = |
不等于 | <> |
小于 | < |
大于 | > |
小于或等于 | <= |
大于或等于 | >= |
例4:查询濒危等级为“极危”的动物信息
select * from PreservedSpecies where level='极危'
【“like”查询】
SQl中可以使用“like”关键字检索与特定字符串匹配的记录,即模糊查询;
“%”为通配符,代表一个或者多个;“_”代表一个字符
例5:查询中文名称最后一个字为“熊”的动物信息。
select * from AnimalSpecies where Cname like '%熊'
(4)使用逻辑运算符查询
如果要进行的查询需要满足多个条件,可以使用逻辑运算符and、or和not联接多个查询条件,从而实现多个重要条件查询
例6:查询分布于“广西”且中文名中带有“白”的动物信息
select * from AnimalSpecies where Cname like '%白%' and distribution like'%白%'
(5)对查询结构排序
select * from PreservedSpecies order by level desc
其中,desc表示降序排列,asc表示升序排列,缺省值为升序。
(6)常用计算函数
为了增强检索功能,SQL还提供了许多计算机函数,主要有:
1、count() | 统计记录个数 |
2、sum() | 统计一列值得综合,只能用于数值型字段 |
3、avg() | 统计一列值得平均值,只能用于数值型字段 |
4、max() | 返回一列中得最大值 |
5、min() | 返回一列中得最小值 |
统计北京地区动物的个数
select count(*) from AnimalSpecies where Distribution like '%北京%'
(7)从多个表中取列
前面的查询都是在一个表中进行的,如果查询涉及到多个表,即从多个表中取列,则需要进行连接查询
连接查询中用于连接两个表的条件称为连接条件,等值连接的连接条件格式为:
Table1.column1=Table2.column2
查看学生的所有科目的综合评价分数
select students.stu_name, subjectkind.lesson_name,stu_score.all_price from students,subjectkind,stu_score where students.student_id =stu_score.student_id and stu_score.lesson_id=subjectkind.lesson_id