SQL基礎(chǔ)語句

基礎(chǔ)查詢

/*
語法:
select 查詢列表 from 表名
特點(diǎn):
1.查詢列表可以是:表中的字段樟遣、常量值淑翼、表達(dá)式塔粒、函數(shù)
2.查詢的結(jié)果是虛擬的表格
*/
-- 注意查詢之前含懊,要打開指定的庫身冬,use myemployees;
USE myemployees;

1.查詢表中的單個(gè)字段

SELECT last_name FROM employees;

2.查詢表中的多個(gè)字段

SELECT last_name,salary,email FROM employees;

3.查詢表中的所有字段

SELECT*FROM employees;
-- 順序和表中的字段一樣

4.查詢常量值

SELECT 100;
SELECT 'JOIN';

5.查詢表達(dá)式

SELECT 100*99;

6.查詢函數(shù)

SELECT VERSION();-- 8.0.11

起別名

/*
好處:
1.便于理解
2.如果要查詢的字段有重名的情況,使用別名可以區(qū)分開
*/

方式一 使用as

SELECT 100*77 AS 結(jié)果 haha;
SELECT last_name AS 姓,first_name AS 名 FROM employees;

方式二 使用空格

SELECT 100*77 結(jié)果 haha;
SELECT last_name 姓,first_name 名 FROM employees;

案例:查詢salary,顯示結(jié)果為out put

-- SELECT salary AS OUT put FROM employees;會(huì)報(bào)錯(cuò)
-- 因?yàn)閛ut是關(guān)鍵詞岔乔,所以酥筝,如果別名里面有關(guān)鍵詞的,請加雙引號雏门,或者單引號嘿歌。
SELECT salary AS "OUT put" FROM employees;

去重 DISTINCT

查詢員工表中涉及到的所有部門編號

SELECT DISTINCT department_id FROM employees;

+號的作用

/*
1.+號只有一個(gè)功能:運(yùn)算符。
select 100+90剿配; 這個(gè)做加法
2.SELECT NULL+10; --只要一方為NULL搅幅,則結(jié)果肯定是NULL。
*/

案例:查詢員工名和姓連接成一個(gè)字段呼胚,并顯示為姓名

-- 錯(cuò)誤?:SELECT last_name+first_name AS 姓名 FROM employees;
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;

顯示結(jié)構(gòu) DESC

題:顯示departments的結(jié)構(gòu)茄唐,并查詢其中的全部數(shù)據(jù)

DESC departments;
SELECT * FROM departments;

顯示employees中的全部job_id,不能重復(fù)

SELECT DISTINCT job_id FROM employees;

顯示出表employees的全部列蝇更,各個(gè)列直接用逗號連接沪编,列頭顯示OUT_PUT

-- commission_pct有些值是NULL
-- 因?yàn)镹ULL和誰拼接都是NULL
-- 所以下面的結(jié)果可能為NULL
SELECT CONCAT(employee_id,',',first_name,',',last_name,",",commission_pct) AS "OUT_PUT" FROM employees;

SELECT IFNULL 判斷是否為空

SELECT IFNULL(commission_pct,0) AS 獎(jiǎng)金率,commission_pct FROM employees;

-- 上面題的做法:
SELECT CONCAT(employee_id,',',first_name,',',last_name,",",IFNULL(commission_pct,0)) AS "OUT_PUT" FROM employees;

條件查詢

/*
語法:
select 查詢列表 from 表名 where 篩選條件;
查詢列表可以是:表中的字段、常量值年扩、表達(dá)式蚁廓、函數(shù)

分類:
一。按條件表達(dá)式篩選
條件運(yùn)算符:> < = !=或者<> >= <=
二厨幻。按邏輯表達(dá)式篩選
邏輯運(yùn)算符:z
作用:連接條件表達(dá)式
&& || ! 或者 and or not
三相嵌。模糊查詢
like
BETWEEN AND
in
is null 或者 is not null
*/

按條件表達(dá)式篩選

案例一 查詢工資>12000的員工信息

SELECT * FROM employees WHERE salary>12000;

案例二 查詢部門編號不等于90的員工編號和部門編號

SELECT employee_id,department_id FROM employees WHERE department_id<>90;

按邏輯表達(dá)式篩選

案例一 查詢工資z在10000到20000之間的員工名腿时、工資、獎(jiǎng)金

SELECT last_name,salary,commission_pct
FROM employees
WHERE salary>=10000 AND salary<=20000;

案例二 查詢部門編號不在90到110之間饭宾∨悖或者工資高于15000的員工信息

SELECT * FROM employees WHERE department_id<90 or department_id >110 or salary>15000;
-- 或者寫成
SELECT * FROM employees WHERE NOt(department_id>=90 AND department_id <=110) or salary>15000;

模糊查詢

like

/*like 特點(diǎn):
一般和通配符搭配使用,
通配符
% :任意多個(gè)字符看铆,包含0個(gè)字符
_ :占一個(gè)字符
*/

案例一:查詢員工名中包含字符a的員工信息

-- %代表通配符
SELECT * FROM employees WHERE last_name LIKE '%a%';

案例二:查詢員工名中第三個(gè)字符為n徽鼎,第五個(gè)字符為l的員工名和工資

SELECT last_name,salary FROM employees WHERE last_name LIKE '__n_l%';

案例三:查詢員工名中第二個(gè)字符為_的員工名

-- \轉(zhuǎn)義字符
SELECT last_name FROM employees WHERE last_name LIKE '_%';
-- 或者 告訴系統(tǒng)轉(zhuǎn)義成_ SELECT last_name FROM employees WHERE last_name LIKE '_
%' ESCAPE '$';

BETWEEN AND

/*
1.使用between and 可以提高語句簡潔度
2.包好臨界值
3.前小后大,不能顛倒順序
*/

案例1:查詢員工編號在100到120之間的員工信息

SELECT * FROM employees WHERE employee_id>=100 AND employee_id<=120;
-- 或者
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120;

in

/*
含義:判斷某字段的值是否屬于in列表中的某一項(xiàng)
特點(diǎn):
1.in 比 or 簡潔
2.in列表的值類型必須是相同的或者兼容的
3.in列表的值不能使用通配符
*/

案例:查詢員工的工種編號是IT_PROG弹惦、AD_PRES否淤、AD_VP的一個(gè)員工名和工種編號

SELECT last_name,job_id FROM employees WHERE job_id='IT_PROG' or job_id='AD_PRES' or job_id='AD_VP';
-- 或者
SELECT last_name,job_id FROM employees WHERE job_id IN('IT_PROG' , 'AD_PRES' ,'AD_VP');

is null、is not null

/*
=或者<>不能用于判斷null值棠隐,所以只能用 is null和 is not null
*/

案例一:查詢沒有獎(jiǎng)金的員工名和獎(jiǎng)金率

SELECT last_name,commission_pct FROM employees WHERE commission_pct is null;

案例二:查詢有獎(jiǎng)金的員工名和獎(jiǎng)金率

SELECT last_name,commission_pct FROM employees WHERE commission_pct is not null;

安全等于 <=>

-- 安全等于作用:判斷是否等于石抡,包括null,如果等于返回true宵荒≈祝可讀性較低
-- is null :僅僅判斷null值,可讀性較高报咳。

案例一:查詢沒有獎(jiǎng)金的員工名和獎(jiǎng)金率

-- 直接寫=是不行的
SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> null;

案例一:查詢工資為12000的員工信息

SELECT * FROM employees WHERE salary <=> 12000;

案例二:查詢員工號為176的員工的姓名和部門號和年薪

-- 注意這個(gè)IFNULL
SELECT last_name,department_id,salary12(1+IFNULL(commission_pct,0))
as 年薪
FROM employees
WHERE employee_id=176;

小測試

查詢沒有獎(jiǎng)金侠讯,且工資小于18000的salary,last_name

SELECT salary,last_name FROM employees WHERE commission_pct IS NULL AND salary<18000;

查詢employees表中暑刃,job_id不為‘IT’或者 工資為12000的員工的信息

SELECT * FROM employees WHERE job_id<>'IT' OR salary=12000;

查看部門表結(jié)構(gòu)

DESC departments;

產(chǎn)科部門表中涉及到哪些位置編號

SELECT DISTINCT location_id FROM departments;

請問:SELECT * FROM employees; 和 SELECT * FROM employees WHERE commission_pct like '%%' and last_name like '%%';結(jié)果是否一樣厢漩?并說明原因

SELECT * FROM employees WHERE commission_pct like '%%' and last_name like '%%';-- commission_pct有字段有null,and之后就是null了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末岩臣,一起剝皮案震驚了整個(gè)濱河市溜嗜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌架谎,老刑警劉巖炸宵,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谷扣,居然都是意外死亡土全,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門会涎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來裹匙,“玉大人,你說我怎么就攤上這事末秃「乓常” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵练慕,是天一觀的道長惰匙。 經(jīng)常有香客問我技掏,道長,這世上最難降的妖魔是什么项鬼? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任零截,我火速辦了婚禮,結(jié)果婚禮上秃臣,老公的妹妹穿的比我還像新娘。我一直安慰自己哪工,他們只是感情好奥此,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著雁比,像睡著了一般稚虎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上偎捎,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天蠢终,我揣著相機(jī)與錄音,去河邊找鬼茴她。 笑死寻拂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的丈牢。 我是一名探鬼主播祭钉,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼己沛!你這毒婦竟也來了慌核?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤申尼,失蹤者是張志新(化名)和其女友劉穎垮卓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體师幕,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粟按,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了们衙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钾怔。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蒙挑,靈堂內(nèi)的尸體忽然破棺而出宗侦,到底是詐尸還是另有隱情,我是刑警寧澤忆蚀,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布矾利,位于F島的核電站姑裂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏男旗。R本人自食惡果不足惜舶斧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望察皇。 院中可真熱鬧茴厉,春花似錦、人聲如沸什荣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稻爬。三九已至嗜闻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間桅锄,已是汗流浹背琉雳。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留友瘤,地道東北人翠肘。 一個(gè)月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像商佑,于是被迫代替她去往敵國和親锯茄。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354