SQL語(yǔ)句第二篇,不說(shuō)廢話直接開(kāi)始吧。
?
首先創(chuàng)建一張表如下,創(chuàng)建表的方法在上篇介紹過(guò)了,這里就不再贅述。
?
添加新數(shù)據(jù):
INSERT INTO < 表名 > ( < 列名列表 > ) VALUES ( < 值列表 > )?
如:
INSERT INTO t_student (student_id,student_name,student_age,student_sex) VALUES ( 1 , ' 大毛 ' , 18 , ' 男 ' );
其中列名可以省略,省略之后要求插入的值必須與列一一對(duì)應(yīng):
INSERT INTO t_student VALUES ( 2 , ' 王二 ' , 20 , ' 男 ' );
多行數(shù)據(jù)添加:
INSERT INTO t_student VALUES ( 3 , ' 張三 ' , 22 , ' 男 ' ), ( 4 , ' 李四 ' , 17 , ' 女 ' ), ( 5 , ' 王五 ' , 23 , ' 男 ' );
?
更改數(shù)據(jù):
UPDATE 表名 SET 列1 = 新值1,列2 = 新值2 WHERE 過(guò)濾條件
假如要修改李四的年齡為21歲
UPDATE t_student SET student_age = 21 WHERE student_name = ' 李四 ' ;
注:修改多個(gè)列的值時(shí)用逗號(hào)隔開(kāi)。要想設(shè)置某一列的值為空,只需讓<列名>=NULL 即可。WHERE表示過(guò)濾條件。
?
刪除數(shù)據(jù)(行): ?
DELETE FROM 表名 WHERE 過(guò)濾條件
現(xiàn)要?jiǎng)h除20到22歲的學(xué)生信息:
DELETE FROM t_student WHERE student_age BETWEEN 20 AND 22 ;
WHERE的判斷條件之后會(huì)更詳細(xì)的介紹。
刪除除了DELETE還有一種方法 TRUNCATE,寫(xiě)法:
TRUNCATE TABLE 表名
二者區(qū)別在于:
?
查詢操作
分類(lèi):
SELECT 列1,列2 FROM 表名
多個(gè)列中間用逗號(hào)隔開(kāi),如果選擇所有列可以用*號(hào)簡(jiǎn)寫(xiě)。
還是此表:
現(xiàn)在只想要查看姓名和年齡列:
SELECT student_name,student_age FROM t_student;
注意這里不是把其他列刪除了,而是只顯示我們想看見(jiàn)的部分。
SELECT CONCAT(student_name, ' —— ' ,student_age) ' 組合值 ' FROM t_student;
CONCAT,可以將列與列之間用想要的符號(hào)連接起來(lái):
?
排除重復(fù)——DISTINCT
現(xiàn)給原表加入一班級(jí)列:
按照之前方法查詢班級(jí)列得到:
但是我們只想查看具體有哪些班級(jí),這里就需要用到去重,也就是 DISTINCT 。
SELECT DISTINCT student_class FROM t_student;
?
返回限定行數(shù)的查詢——LIMIT
LIMIT后面參數(shù)為1或2個(gè):
LIMIT N 表示從第一行開(kāi)始返回N行結(jié)果,LIMIT i,N 表示從第i+1行開(kāi)始返回N行結(jié)果。
例:
SELECT * FROM t_student LIMIT 3 ;
SELECT * FROM t_student LIMIT 2 , 3 ;
*注:LIMIT很重要,它是之后做數(shù)據(jù)表格分頁(yè)的關(guān)鍵。
?
選擇操作——WHERE:
分為單條件選擇與多條件選擇
單條件選擇標(biāo)準(zhǔn)結(jié)構(gòu):
SELECT 列1, 列2 FROM 表名 WHERE 列3 = 值?
關(guān)系運(yùn)算符包括:> ?>= ?< ?<= ?= ?!=
多條件選擇標(biāo)準(zhǔn)結(jié)構(gòu):
SELECT 列A, 列B FROM 表 WHERE 條件1 ( AND 或者OR) 條件2
其中AND表示并且,OR表示或者。
?
選擇范圍——BETWEEN
如:
SELECT * FROM t_student WHERE student_age BETWEEN 20 AND 23 ;
BETWEEN后的值為從下限到上限。
?
定義集合——IN或NOT IN
現(xiàn)在想查看年齡為17、20、23的學(xué)生信息: ?
SELECT * FROM t_student WHERE student_age IN ( 17 , 20 , 23 );
反之NOT IN就是選擇不包括在集合里的學(xué)生信息。
?
模糊查詢——LIKE
為了更好的解釋模糊查詢,這里重新建張表:
這里姓王的兄弟們躺槍...別介意。
首先先說(shuō)下占位符與通配符:
占位符 "_",表示任何單個(gè)字符。
通配符 "%",表示包含零或多個(gè)字符。
下面就來(lái)用模糊查詢逐一選中我們想要的行。
名字只有兩個(gè)字的:
SELECT * FROM t_student WHERE student_name LIKE ' __ ' ;
這里可能看不清,引號(hào)里實(shí)際是兩個(gè)占位符。
所有姓王的:
SELECT * FROM t_student WHERE student_name LIKE ' 王% ' ;
最后一個(gè)字 是“王”的:
SELECT * FROM t_student WHERE student_name LIKE ' %王 ' ;
只要是名字中有“王”字的:
SELECT * FROM t_student WHERE student_name LIKE ' %王% ' ;
這下模糊查詢就很明白了吧,當(dāng)然還有其他組合,大家可以自己嘗試。
?
處理空值數(shù)據(jù):
判斷條件不能用列名=NULL,而是要用IS NULL或IS NOT NULL。
標(biāo)準(zhǔn)寫(xiě)法:
SELECT * FROM t_student WHERE 性別 IS NULL
?
排序操作——ORDER BY:
使用ORDER BY時(shí),列名上指定ASC或DESC。ASC表示正序,DESC表示倒序。如果不指定則默認(rèn)為正序。
按年齡排:
SELECT * FROM t_student ORDER BY student_age ASC ;
SELECT * FROM t_student ORDER BY student_age DESC ;
?
最后一定要注意!
基本查詢SQL的執(zhí)行順序:
1.執(zhí)行FROM 2.WHERE條件過(guò)濾 3.SELECT投影 4.ORDER BY排序
?
SQL的第二篇就到這里了,博主寫(xiě)的快吐了!感覺(jué)學(xué)的時(shí)候沒(méi)這么多啊,希望各位認(rèn)同的朋友頂一下,也好讓我有動(dòng)力寫(xiě)完。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
