sql 常用经典实例

来源:互联网 发布:linux性能监控 知乎 编辑:程序博客网 时间:2024/06/05 18:43
sql备注select * from 成绩单 Where 姓名 like '%李%'


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


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


注:

选取居住在以 "N" 开始的城市里的人:
SELECT * FROM Persons
WHERE City LIKE 'N%'


选取居住在以 "g" 结尾的城市里的人:
SELECT * FROM Persons
WHERE City LIKE '%g'


选取居住在包含 "lon" 的城市里的人:
SELECT * FROM Persons
WHERE City NOT LIKE '%lon%'

like , not like select sname,year(now())-sage as '出生年份' from student查全体学生的姓名及其出生年份

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


注:  not between

确定范围:


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

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

或者

select sname,ssex from student where sdept='is' or sdept='ma' or sdept='cs'

注: not in

确定集合:


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

where grade is null

where grade is not null

null select * from student order by sdept,sage desc排序select sno from sc group by sno having count(*)>2

查询选修了3门以上课程的学生学号


having

  注:where 子句与 having 短语的区别在于作用对象不同,

where 子句作用于基本表或视图,从中选择满足条件的记录,

having短语作用于组,从中选择满足条件的组。



SELECT DISTINCT Company FROM Orders去掉重复
文本值:
这是正确的:
SELECT * FROM Persons WHERE FirstName='Bush'


这是错误的:
SELECT * FROM Persons WHERE FirstName=Bush
数值:
这是正确的:
SELECT * FROM Persons WHERE Year>1965


这是错误的:
SELECT * FROM Persons WHERE Year>'1965' 所有姓为 "Carter" 或者名为 "Thomas" 的人:
SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'ORSELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

 desc

asc

SELECT *
FROM Persons
LIMIT 5限制个数


并集(union,Union all)


这个很简单,是把两个结果集水平合并起来。例如


SELECT * FROM A


UNION


SELECT * FROM B


差异(Except)


就是两个集中不重复的部分。例如


SELECT * FROM A


EXCEPT


SELECT * FROM B
交集(intersect)


就是两个集中共同的部分。例如


SELECT * FROM A


INTERSECT


SELECT * FROM BSQL中intersect、union、minus和except 运算符

except 只能用于SQLserver,MYSQL 支持EXCEPT语句


来自:

http://www.cnblogs.com/jxcia_Lai/archive/2010/09/16/1827797.html

  
0 0