如果只希望选住在 "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'