SQL基础语法

这篇博客介绍了SQL的基础语法,包括查找、更新、插入和删除数据,以及如何使用WHERE、AND、OR进行条件筛选,ORDER BY进行排序,DISTINCT去除重复项。通过具体的例子展示了如何在Persons表上操作,对读者理解SQL基本操作有很好的帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查找

SELECT 列名称 FROM 表名称

以及

SELECT * FROM 表名称

Persons 表

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing

获取名为 “LastName” 和 “FirstName” 的列的内容

SELECT LastName,FirstName FROM Persons

结果

LastNameFirstName
AdamsJohn
BushGeorge
CarterThomas

从 “Persons” 表中选取所有的列

SELECT * FROM Persons

结果

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing

更新

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

Persons 表

LastNameFirstNameAddressCity
Gates BillXuanwumen10Beijing
WilsonChamps-Elysees

更新某一行中的一个列,为 lastname 是 “Wilson” 的人添加 firstname

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'

结果

LastNameFirstNameAddressCity
Gates BillXuanwumen10Beijing
WilsonFredChamps-Elysees

更新某一行中的若干列,修改地址(address),并添加城市名称(city)

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'

结果

LastNameFirstNameAddressCity
GatesBillXuanwumen 10Beijing
WilsonFredZhongshan 23Nanjing

插入

INSERT INTO 表名称 VALUES (值1, 值2,....)

指定所要插入数据的列

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

Persons 表

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing

插入新的行

INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')

结果

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing
GatesBillXuanwumen 10Beijing

在指定的列中插入数据

INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

结果

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing
GatesBillXuanwumen 10Beijing
WilsonChamps-Elysees

删除

DELETE FROM 表名称 WHERE 列名称 = 值

Persons 表

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing
GatesBillXuanwumen 10Beijing

删除FirstName为”Bill”的行

DELETE FROM Person WHERE FirstName = 'Bill'

结果

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing

删除所有行

DELETE FROM table_name

DELETE * FROM table_name

WHERE

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

下面的运算符可在 WHERE 子句中使用

=等于
<>不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式

注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=

Persons表

LastNameFirstNameAddressCityYear
AdamsJohnOxford StreetLondon1970
BushGeorgeFifth AvenueNew York1975
CarterThomasChangan StreetBeijing1980
GatesBillXuanwumen 10Beijing1985

选取居住在城市 “Beijing” 中的人

SELECT * FROM Persons WHERE City='Beijing'

结果

LastNameFirstNameAddressCityYear
CarterThomasChangan StreetBeijing1980
GatesBillXuanwumen 10Beijing1985

请注意,我们在例子中的条件值周围使用的是单引号。
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

文本

这是正确的:
SELECT * FROM Persons WHERE FirstName='Bush'

这是错误的:
SELECT * FROM Persons WHERE FirstName=Bush

数值

这是正确的:
SELECT * FROM Persons WHERE Year>1965

这是错误的:
SELECT * FROM Persons WHERE Year>'1965'

AND & OR

AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

LastNameFirstNameAddressCity
AdamsJohnOxford StreetLondon
BushGeorgeFifth AvenueNew York
CarterThomasChangan StreetBeijing
CarterWilliamXuanwumen 10Beijing

使用 AND 来显示所有姓为 “Carter” 并且名为 “Thomas” 的人:

SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

结果

LastNameFirstNameAddressCity
CarterThomasChanganStreet Beijing

使用 OR 来显示所有姓为 “Carter” 或者名为 “Thomas” 的人

SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'

结果

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing
CarterWilliamXuanwumen 10Beijing

结合 AND 和 OR 运算符

SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'

结果

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing
CarterWilliamXuanwumen 10Beijing

ORDER BY

ORDER BY 语句用于对结果集进行排序。
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

Orders 表

CompanyOrderNumber
IBM3532
W3School2356
Apple4698
3School6953

以字母顺序显示公司名称

SELECT Company, OrderNumber FROM Orders ORDER BY Company

结果

CompanyOrderNumber
Apple4698
IBM3532
W3School6953
W3School2356

以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber)

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

结果

CompanyOrderNumber
Apple4698
IBM3532
W3School2356
W3School6953

以逆字母顺序显示公司名称

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

结果

CompanyOrderNumber
W3School6953
W3School2356
IBM3532
Apple4698

以逆字母顺序显示公司名称,并以数字顺序显示顺序号

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

结果

CompanyOrderNumber
W3School2356
W3School6953
IBM3532
Apple4698

DISTINCT

SELECT DISTINCT 列名称 FROM 表名称
CompanyOrderNumber
IBM3532
W3School2356
Apple4698
W3School6953

如果要从 “Company” 列中选取所有的值,我们需要使用 SELECT 语句

SELECT Company FROM Orders

结果

Company
IBM
W3School
Apple
W3School

如需从 Company” 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句

SELECT DISTINCT Company FROM Orders

结果

Company
IBM
W3School
Apple

欢迎关注

个人微信公众号:Charming写字的地方

Github:https://github.com/CharmingWhttps://github.com/CharmingW

感谢阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值