sql

2021/8/9 19:06:18

本文主要是介绍sql,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

查询和更新指令构成了 SQL 的 DML 部分:

  • SELECT - 从数据库表中获取数据
  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

SELECT 列名称 FROM 表名称
SELECT LastName,FirstName FROM Persons

"Persons" 表:

IdLastNameFirstNameAddressCity
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

结果:

LastNameFirstName
Adams John
Bush George
Carter Thomas
 

SELECT * FROM Persons

提示:星号(*)是选取所有列的快捷方式。


结果:


IdLastNameFirstNameAddressCity
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
 DISTINCT 用于返回唯一不同的值。
SELECT DISTINCT 列名称 FROM 表名称

SELECT Company FROM Orders

"Orders"表:


CompanyOrderNumber
IBM 3532
W3School 2356
Apple 4698
W3School 6953

结果:


Company
IBM
W3School
Apple
W3School

SELECT DISTINCT Company FROM Orders 

结果:


Company
IBM
W3School
Apple
WHERE 子句用于规定选择的标准。
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

操作符描述
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
如果只希望选取居住在城市 "Beijing" 中的人,我们需要向 SELECT 语句添加 WHERE 子句
ELECT * FROM Persons WHERE City='Beijing'

"Persons" 表


LastNameFirstNameAddressCityYear
Adams John Oxford Street London 1970
Bush George Fifth Avenue New York 1975
Carter Thomas Changan Street Beijing 1980
Gates Bill Xuanwumen 10 Beijing 1985

结果:


LastNameFirstNameAddressCityYear
Carter Thomas Changan Street Beijing 1980
Gates Bill Xuanwumen 10 Beijing 1985

AND 和 OR 运算符


AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。


如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。


如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

原始的表 (用在例子中的):

LastNameFirstNameAddressCity
Adams John Oxford Street London
Bush George Fifth Avenue New York
Carter Thomas Changan Street Beijing
Carter William Xuanwumen 10 Beijing

AND 运算符实例


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


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

结果:


LastNameFirstNameAddressCity
Carter Thomas Changan Street Beijing

OR 运算符实例


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


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

结果:


LastNameFirstNameAddressCity
Carter Thomas Changan Street Beijing
Carter William Xuanwumen 10 Beijing

结合 AND 和 OR 运算符


我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):


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

结果:


LastNameFirstNameAddressCity
Carter Thomas Changan Street Beijing
Carter William Xuanwumen 10 Beijing
 

ORDER BY 语句


ORDER BY 语句用于根据指定的列对结果集进行排序。


ORDER BY 语句默认按照升序对记录进行排序。


如果您希望按照降序对记录进行排序,可以使用 DESC 关键字

原始的表 (用在例子中的):

Orders 表:

CompanyOrderNumber
IBM 3532
W3School 2356
Apple 4698
W3School 6953

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


SELECT Company, OrderNumber FROM Orders ORDER BY Company

结果:


CompanyOrderNumber
Apple 4698
IBM 3532
W3School 6953
W3School 2356


实例 2

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

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

结果:

CompanyOrderNumber
Apple 4698
IBM 3532
W3School 2356
W3School 6953


实例 3

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

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

结果:

CompanyOrderNumber
W3School 6953
W3School 2356
IBM 3532
Apple 4698


实例 4

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

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

结果:

CompanyOrderNumber
W3School 2356
W3School 6953
IBM 3532
Apple 4698

注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。

INSERT INTO 语句用于向表格中插入新的行。
INSERT INTO 表名称 VALUES (值1, 值2,....)

我们也可以指定所要插入数据的列:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
Update 语句用于修改表中的数据。
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

DELETE 语句


DELETE 语句用于删除表中的行。


语法


DELETE FROM 表名称 WHERE 列名称 = 值

 
 



这篇关于sql的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程