如果只希望選住在 "Beijing" 的人,則向 SELECT 語句添加 WHERE 子句:
SELECT * FROM PersonsWHERE City='Beijing'
*星號表示選取所有列爆价,persons是表垦巴,city是列,=是運算符允坚,Beijing是字符則需用單引號魂那,如是數值則不需要任何東西
AND and 和 OR or運算符用于一個以上的條件,它們發(fā)揮對記錄進行過濾的作業(yè)稠项。
AND 和 OR 用在 WHERE 子句中涯雅,它們負責把兩個或多個條件結合起來。
如果第一個條件和第二個條件都成立展运,則 AND 運算符顯示一條記錄活逆。
如果第一個條件和第二個條件中只要有一個成立,則 OR 運算符顯示一條記錄拗胜。
eg:使用 AND 來顯示所有姓為 "Carter" 且名為 "Thomas" 的人:
SELECT * FROM Persons WHERE FirstName='Thomas'ANDLastName='Carter'#此語句*星號表示選取所有列蔗候,persons是表,firstname是列埂软,=是運算符锈遥,Thomas是列firstname里的元素,and是運算符,lastname是列所灸,carter是列l(wèi)astname里的元素丽惶。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')#此語句執(zhí)行插入新行的命令运嗜。insert into 是語法壶辜,persons是表,values是語法担租,cates,bill,xuanwuen10,beijing這些都是新行里的元素(值)砸民。
在指定的列中插入值
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')#insert into是語法,persons是表奋救,圓括號里是指定的列岭参,values是語法,圓括號里用單引號環(huán)繞的是字符型對應列的新值尝艘。
Update 語句用于修改表中的數據演侯。
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'#此語句執(zhí)行修改Wilson行(在lastname列),firstname列之值命令背亥。update是語法秒际,person是表悬赏,set是語法,firstname是列程癌,Fred是修改后的新值舷嗡,where是語法。set語法引出新值嵌莉,where語法負責定位行。
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'#此語句執(zhí)行修改Wilson行(在lastname列)捻脖,address列和city列之值命令锐峭。update是語法,person是表可婶,set是語法沿癞,address是列,zhongshan23是修改后的新值矛渴,city是列椎扬,nanjing是修改后的新值,where是語法具温。
DELETE 語句用于刪除表中的行蚕涤。是行,是行铣猩,是行揖铜,重要的事說三遍。
DELETE FROM Person WHERE LastName = 'Wilson'#此語句執(zhí)行刪除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是操作符癣疟,圓括號里的是值來自列l(wèi)astname,即Adams潮酒,carter是列l(wèi)astname里元素睛挚。
BETWEEN 操作符在 WHERE 子句中使用,作用是選取介于兩個值之間的數據范圍急黎。
這些值可以是數值扎狱、文本或者日期。
以字母順序ABCDE…對列l(wèi)astname排序后叁熔,用between操作符選取從"Adams"(包括)到"Carter"(不包括)之間的元素委乌,則語句:
SELECT * FROM PersonsWHERE LastNameBETWEEN'Adams'AND'Carter'#select * from是語法,persons是表荣回,where是語法,lastname是列戈咳,between是操作符心软,Adams是列l(wèi)astname里的元素,and是操作符著蛙,carter是列l(wèi)astname里的元素删铃。
以字母順序ABCDE…對列l(wèi)astname排序后,用between操作符選取從"Adams"(包括)到"Carter"(不包括)范圍之外的元素踏堡,即從"Carter"(包括)開始的元素猎唁,則語句:
SELECT * FROM PersonsWHERE LastNameNOTBETWEEN 'Adams' AND 'Carter'