SQL - 练习

源自于W3school

看例子使用会更容易理解
SQL 语句对大小写不敏感,不过大多数是用大写

select(查询)

1、select 列名称 from 表名称(多个列名称,用逗号隔开)
2、select * from 表名称

eg.
1、列出表格(Persons)所有数据
	SELECT * FROM Persons
2、列出表格(Persons)中列表名为(City)的数据
	SELECT City FROM Persons



distinct( 返回唯一不同的值)

select distinct 列名称 from 表名称(如果列表名有多个相同的列名称,只显示第一个列名称的内容)

eg.
1、选取表格(Persons)中列表名(City)的唯一不同的值
	SELECT DISTINCT City FROM Person



where(条件选择)

select 列名称 from 表名称 where 列 运算符 值

eg.
1、选取表格(Persons,列表(City)中住北京的人
	SELECT * FROM Persons WHERE City='北京'
2、选取表格(Persons,列表(Age)中年龄超过50岁的人
	SELECT * FROM Persons WHERE Age>50
(注:条件值使用单引号括起,也可以双引号;如果是数值,就不需要括起)



and/or(运算符)

在 where子语句中把两个或多个条件结合起来
1、如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
2、如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

1、选取表格(Persons,列表(City)中住北京和年龄(Age)超过50岁的人
	SELECT * FROM Persons WHERE City='北京' AND Age>50

2、选取表格(Persons,列表(City)中住北京或年龄(Age)超过50岁的人
	SELECT * FROM Persons WHERE City='北京' OR Age>50

3、选取表格(Persons,列表(City)中住北京或年龄(Age)超过50岁的男性(Sex)
	SELECT * FROM Persons (WHERE City='北京' OR Age>50) AND Sex='男'



like(搜索列中的指定模式)

用在 where中搜索列中的指定模式

select * from 表名称 where 列名称 like 指定模式

eg
1、表(Persons)中,选取年龄(Age)以'2'开头的人(意思是,寻找2岁或20~29岁的人)
	SELECT * FROM Persons WHERE Age LIKE '2%'
2、表(Persons)中,选取年龄(Age)以'2'结尾的人
	SELECT * FROM Persons WHERE Age LIKE '%2'
3、表(Persons)中,选取名字(Name)包含“明”的人(例如可以找到:小明、明哥、光明、明明、明天,这些包含‘明’字)
	SELECT * FROM Persons WHERE Name LIKE '%明%'
4、例子3中改一下,名字中找不包含“明”的人
	SELECT * FROM Persons WHERE Name NOT LIKE '%明%'



order by(排序)

1、用于根据指定的列对结果集进行排序。
2、默认按照升序对记录进行排序。
3、字母倒序(DESC) 数字倒序(ASC)

1、选取表格(Persons,以字母顺序显示城市列表(City)
	SELECT City,Age,Sex,Name FROM Person ORDER BY City
2、选取表格(Persons,以字母顺序显示城市列表(City),并以数字顺序显示年龄(Age)(后半段意思是,列出来的城市数据有重复数据时,再以年龄大小,从小到大排序)
	SELECT City,Age,Sex,Name FROM Person ORDEY BY City,Age
3、例子1中倒序
	SELECT City,Age,Sex,Name FROM Person ORDER BY City DESC
4、例子2中都倒叙
	SELECT City,Age,Sex,Name FROM Person ORDEY BY City DESC,Age ASC



insert into(插入)

insert into 表名称 values (1,2,...)
指定插入数据的列:insert into 表名称(1,2,...) values (1,2,...)

1、在表格(Persons)中插入一条数据为:小明(Name)男(Sex20Age)上海(City)
	INSERT INTO Persons VALUES ('小明','男',20,'上海')
2、在表格(Persons)中指定插入一条数据为:小红(Name18Age)
	INSERT INTO Persons (Name,Age) VALUES ('小红',18)



update(修改/更新)

update 表名称 set 列名称 = 新值 where 列名称 = 某值

1、在表格(Persons)中,名字为小红的性别(Sex)更新为女
	UPDATE Person SET Sex = '女' WHERE Name = '小红'
2、在表格(Persons)中,名字为小红的性别(Sex)修改为男,添加城市在广州(City)
	UPDATE Person SET Sex = '女',City = '广州' WHERE name = '小红'



delete(删除)

delete from 表名称 where 列名称 =1、在表格(Persons)中,删除姓名(Name)为小红的数据
	DELETE FROM Person WHERE Name = '小红'
2、删除表格(Persons)中所有数据
	写法一:DELETE FROM Persons
	写法二:DELETE * FROM Persons



top(规定要返回的记录的数目)

select top 数字/百分比 * from 表名称

eg
1、表(Persons)中,返回头两条数据
	SELECT TOP 2 * FROM Persons
2、表(Persons)中,返回50%的记录
	SELECT TOP 50 PERCENT * FROM Persons



通配符

1、% :代表零个或多个字符
2、_ :仅替代一个字符
3、[charlist] :字符列中的任何单一字符
4、[^charlist] 、[!charlist]:不在字符列中的任何单一字符

eg.
1、% 在表(Persons),选年龄(Age)以2开头的人(可以找20、200 ...)
	SELECT * FROM Persons WHERE Age LIKE '2%'
2、_  在表(Persons),选取姓名(Name)的第一个字为‘明’的人
	SELECT * FROM Persons WHERE Name LIKE '_明'
3、_  在表(Persons),选年龄(Age)以2开头的人,然后一个任意字符(可以找20 ...,200不行)
	SELECT * FROM Persons WHERE Age LIKE '2_'
4、[charlist] 在表(Persons),选地址(Address)以“广”“上”“深”开头的人
	SELECT * FROM Persons WHERE Address LIKE '[广上深]%'
5、例4的范例,不以“广”“上”“深”开头的人
	SELECT * FROM Persons WHERE Address LIKE '[!广上深]%'



in(在where中规定多个值)

select * from 表名 where 列名 in (值1,值2,....)

1、在表(Persons),选取地址(Address)为“广州”“上海”“深圳”的人
	SELECT * FROM Persons WHERE Address IN ('广州','上海','深圳')



between…and…

用于 where,作用是是选取介于两个值之间的数据范围(值可以是数值、文本或者日期)对于包不包括其值,有些数据库可能有差异

select * from 表名 where 列名 between 值1 and 值2

1、在表(Persons),选区年龄(Age)介于20(包括)到40(不包括)之间的人
	SELECT * FROM Persons WHERE Age BETWEEN 20 AND 40
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值