wSchool

如果只希望选住在 "Beijing" 的人,则向 SELECT 语句添加 WHERE 子句:

SELECT * FROM PersonsWHERE City='Beijing'

*星号表示选取所有列,persons是表,city是列,=是运算符,Beijing是字符则需用单引号,如是数值则不需要任何东西

AND and 和 OR or运算符用于一个以上的条件,它们发挥对记录进行过滤的作业。

AND 和 OR 用在 WHERE 子句中,它们负责把两个或多个条件结合起来。

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

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

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

SELECT * FROM Persons WHERE FirstName='Thomas'ANDLastName='Carter'#此语句*星号表示选取所有列,persons是表,firstname是列,=是运算符,Thomas是列firstname里的元素,and是运算符,lastname是列,carter是列lastname里的元素。select语句的顺序是:select列名from表名where子句

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

SELECT * FROM Persons WHERE(FirstName='Thomas'ORFirstName='William')ANDLastName='Carter'#圆括号里是or运算符,即或,两个条件中的一个成立就可,后面是and运算符,两个条件都必须成立

ORDER BY 语句对结果集进行排序。

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

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

如需降序,则 DESC (descend)。如需升序,则ASC(ascend)。

以字母顺序对company列进行排序:

SELECT Company, OrderNumber FROM OrdersORDER BY Company#company是列名,ordernumber是列名,orders是表,此语句依据company列按字母顺序进行排序。注意列名与列名之间用逗号分隔

以逆字母顺序对company列进行排序:

SELECT Company, OrderNumber FROM OrdersORDER BY Company DESC#注意desc降序关键字

以字母顺序对Company列进行排序,并以数字顺序对OrderNumber列进行排序:

SELECT Company, OrderNumber FROM OrdersORDER BY Company, OrderNumber

以逆字母顺序对company列进行排序,并以数字顺序对ordernumber列进行排序:

SELECT Company, OrderNumber FROM OrdersORDER BY Company DESC, OrderNumber ASC#注意降序desc和升序asc关键字

INSERT INTO 语句用于向表格中插入新的行。注意插入的是行,行,行,重要的字写三遍。

插入新行

INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')#此语句执行插入新行的命令。insert into 是语法,persons是表,values是语法,cates,bill,xuanwuen10,beijing这些都是新行里的元素(值)。

在指定的列中插入值

INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')#insert into是语法,persons是表,圆括号里是指定的列,values是语法,圆括号里用单引号环绕的是字符型对应列的新值。

Update 语句用于修改表中的数据。

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'#此语句执行修改Wilson行(在lastname列),firstname列之值命令。update是语法,person是表,set是语法,firstname是列,Fred是修改后的新值,where是语法。set语法引出新值,where语法负责定位行。

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'

WHERE LastName = 'Wilson'#此语句执行修改Wilson行(在lastname列),address列和city列之值命令。update是语法,person是表,set是语法,address是列,zhongshan23是修改后的新值,city是列,nanjing是修改后的新值,where是语法。

DELETE 语句用于删除表中的行。是行,是行,是行,重要的事说三遍。

DELETE FROM Person WHERE LastName = 'Wilson'#此语句执行删除Wilson行之命令。delete from是语法,person是表,where是语法,lastname是列,其实lastname列已经被指定为行名了,那么lastname列里的值Wilson顺理成章就是行名了,Wilson行。

可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:

DELETE FROM table_name

或者:

DELETE * FROM table_name

top子句用于选取观测

从 "Persons" 表中选取前两行。

则 SELECT 语句:

SELECTTOP 2* FROM Persons#select top是语法,2是前两行,*星号是语法,from是语法,persons是表

从 "Persons" 表中选取 50% 的观测。

则SELECT 语句:

SELECTTOP 50 PERCENT* FROM Persons#select top是语法,50 percent是50%,*星号是语法,from是语法,persons是表

like操作符用于标识列中元素的特征

从 "Persons" 表中选取city列中以N开头的元素,like操作符标识出这种特征:

则SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE 'N%'#select * from是语法,persons是表,where是语法,city是列,like是语法,'N%'是city列中以N开头的元素。%是通配符

从 "Persons" 表中选取city列中以g结尾的元素:

则SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE '%g'#select * from是语法,persons是表,where是语法,city是列,like是语法,'%g'是city列中以g结尾的元素,like标识出这种特征。注意通配符%的位置。

从 "Persons" 表中选取city列包含lon字样的元素:

则SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE '%lon%'#select * from是语法,persons是表,where是语法,city是列,like是语法,'%lon%'是city列中包含lon字样的元素,%是通配符

从 "Persons" 表中选取city列中不包含lon字样的元素:

则SELECT 语句:

SELECT * FROM Persons

WHERE City NOT LIKE '%lon%'#not  like操作符标识出city列中不包含lon字样的元素

通配符

SQL 通配符必须与 LIKE 运算符一起使用。


从 "Persons" 表中选取city列以Ne开头的元素:

则SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE 'Ne%'#通配符%替代只是一个字符,既然是以Ne开头的元素,那么,通配符%肯定在其后面了呀

从 "Persons" 表中选取firstname列第一个字符之后是 "eorge" 的元素:

则 SELECT 语句:

SELECT * FROM Persons

WHERE FirstName LIKE '_eorge'#通配符_仅替代一个字符,firstname列第一个字符之后是 "eorge",那么,通配符_肯定在eorge前面了

从 "Persons" 表中选取city列中以 "A" 或 "L" 或 "N" 开头的元素:

则 SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE '[ALN]%'#通配符[  ]里面的字符之间是或的逻辑关系,通配符%替代至少一个字符。

从 "Persons" 表中选取city列不以"A" 或 "L" 或 "N" 开头的元素:

则 SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE '[!ALN]%'#通配符[  ]里面的字符之间是或的逻辑关系,逻辑运算符!是非,否定逻辑,通配符%替代至少一个字符

in操作符用于提取列中多个元素

SELECT * FROM Persons

WHERE LastName IN ('Adams','Carter')#select * from是语法,persons是表,where是语法,lastname是列,in是操作符,圆括号里的是值来自列lastname,即Adams,carter是列lastname里元素。

BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。
这些值可以是数值、文本或者日期。

以字母顺序ABCDE…对列lastname排序后,用between操作符选取从"Adams"(包括)到"Carter"(不包括)之间的元素,则语句:

SELECT * FROM PersonsWHERE LastNameBETWEEN'Adams'AND'Carter'#select * from是语法,persons是表,where是语法,lastname是列,between是操作符,Adams是列lastname里的元素,and是操作符,carter是列lastname里的元素。

以字母顺序ABCDE…对列lastname排序后,用between操作符选取从"Adams"(包括)到"Carter"(不包括)范围之外的元素,即从"Carter"(包括)开始的元素,则语句:

SELECT * FROM PersonsWHERE LastNameNOTBETWEEN 'Adams' AND 'Carter'

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容