SQL查询语句例子

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据表的查询(select)

select 字段列表[as 别名], * from 数据表名

[where 条件语句]

[group by 分组字段]

[order by 排序字段列表desc]

[LIMIT startrow,rownumber]

1、Select 字段列表From 数据表

例:①、select id,gsmc,add,tel from haf (* 表示数据表中所有字段)

②、select 单价,数量,单价*数量as 合计金额from haf (As 设置字段的别名)

2、Select …from …Where 筛选条件式

筛选条件式:①、字符串数据:select * from 成绩单Where 姓名='李明'

②、万用字符:select * from 成绩单Where 姓名like '李%'

select * from 成绩单Where 姓名like '%李%'

select * from 成绩单Where 姓名like '%李_'

③、特殊的条件式:

⑴= / > / < / <> / >= / <=

⑵AND(逻辑与) OR(逻辑或) NOT(逻辑非)

⑶Where 字段名称in(值一,值二)

⑷Where 字段名称Is Null / Where 字段名称Is Not Null

3、Select …from …group by 字段

SQL函数:

SELECT sex,count(id) as women from `user` group by 'sex';

函数名描述函数名描述

AVG平均值Count计数

MAX最大值MIN最小值

Sum求和

4、Select …from …Order by 字段列表desc(倒,如果直接写为顺序)

5、Select …from …LIMIT ".$start_rowno.",".($pagesize+1)

第二节SQL语句实例应用

数据库说明:

student(学生表):

stdid int(11) id号

son char(5) 学号

sname char(20) 姓名

ssex tinyint(1) 性别

sage char(3) 年龄

sdept char(20) 所在系

course(课程表):

couid int(11) id号

cno char(5) 课程号

cname char(20) 课程名

cpno char(6) 选修课号

ccredit char(50) 学分

sc(学生选课表):

scid int(11) id号

cno char(5) 课程号

grade float 成绩

sno char(5) 学号

单表查询:

一、选择表中的若干字段:

查询指定列:

1、查询全体学生的学号与姓名;

select son,sname from student

2、查询全体学生的姓名、学号、所在系;

select sname,son,sdept from student

3、查询全体学生的详细记录;

select * from student

查询经过计算的值:

4、查全体学生的姓名及其出生年份

select sname,year(now())-sage as '出生年份' from student

5、查询全体学生的姓名、出生年份和所有系,要求用大(小)写字母表示所有系名

select sname as '姓名','出生与',year(now())-sage as '出生年份',UPPER(sdept) as '系别' from student

select sname as '姓名','出生与',year(now())-sage as '出生年份',lower(sdept) as '系别' from student

二、选择表中的若干记录:

消除取值重复的行:

6、查询选修了课程的学生学号

select distinct sno from sc

查询满足条件的记录:

比较大小:

7、查询计算机全体学生的名单

select sname from student where sdept='cs'

8、查询所有年龄在20岁以下的学生姓名及其年龄

select sname,sage from student where sage<20

9、查询考试成绩小于90分的学生的学号

select distinct sno from sc where grade<90

确定范围:

10、查询年龄在18-20岁之间的学生的姓名、系别和年龄。

select sname,sdept,sage from student where sage between 18 and 20

11、查询年龄不在19-20岁之间的学生的姓名、系别和年龄。

select sname,sdept,sage from student where sage not between 19 and 20

确定集合:

12、查询信息系(is)、数学系(ma)和计算机科学系(cs)学生的姓名和性别。

select sname,ssex from student where sdept in('is','ma','cs')

13、查询不是信息系(is)、数学系(ma)的学生的姓名、系别和年龄。

select sname,ssex from student where sdept not in('is','ma')

字符匹配(like '<匹配串>' %代表任意长度(长度可以为0)的字符串; _代表任意单个字符,汉字得用两个"__"):

14、查询学号为95001的学生的详细情况

select * from student where son like '95001'

15、查询所有姓名李的学生的姓名、学号和性别。

select sname,son,ssex from student where sname like '李%'

16、查询姓名是两个字学生的姓名、学号和性别。

select sname,son,ssex from student where sname like '____'

17、查询所有不姓李的学生姓名。

select sname from student where sname not like '李__'

涉及空值的查询:

18、某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩,查询缺少成绩的学生的学号和相应的课程号。

select sno,cno from sc where grade is null

19、查询所有有成绩的学生学号和课程号。

select sno,cno from sc where grade is not null

多重条件查询(and or):

20、查询计算机系年龄在20岁的学生姓名。

select sname from student where sdept='cs' and sage=20

相关文档
最新文档