SQL相關(guān)總結(jié)

DDL(數(shù)據(jù)定義語言)語句:

? ? ? ? ? ? ? ? ### create database? -- 創(chuàng)建新數(shù)據(jù)庫

? ? ? ? ? ? ? ? ### alter database -- 修改數(shù)據(jù)庫

? ? ? ? ? ? ? ? ### create table -- 創(chuàng)建新表

? ? ? ? ? ? ? ? ### alter table -- 變更數(shù)據(jù)庫表

? ? ? ? ? ? ? ? ### create index -- 創(chuàng)建索引

? ? ? ? ? ? ? ? ### drop index -- 刪除索引

DML(數(shù)據(jù)操作語言)部分

? ? ? ? ? ? ? ?### select - update - delete - insert into

? ? ? ? ? ? ? ?注意:SQL對大小寫不敏感泼舱!

SQL特殊用法:

? ? ? ? ? ? ?例1:從Persons表中選取居住的城市已‘A’或‘L’或'N'開頭的人

? ? ? ? ? ????????????? select? * from Persons Where city Like '[ALN]'

? ? ? ? ? ? 例2: Inner join,在表中存在至少一個匹配時,inner join關(guān)鍵字返回行迫横。

? ? ? ? ? ? ? ? ? ? 注意:Inner join 與 join是相同的助赞。

? ? ? ? ? ? 例3:left join,關(guān)鍵字會從左表那里返回所有的行昵宇,即使在右表中沒有匹配的行矗愧。同理right join.

? ? ? ? ? ? 例4:full join,結(jié)合的左梯醒,右外連接的結(jié)果宽堆。連接表將包含的所有記錄來自兩個表,并使用null作為兩側(cè)確實匹配結(jié)果

? ????????????????ELECT table1.column1,table2.column2...FROM table1 FULL JOIN table2 ON table1.common_field=table2.common_field;?

? ? ? ? ? ? ? ? 如果你的數(shù)據(jù)不支持Full join茸习,如mysql不支持 full join ,那么可以使用union all子句畜隶。?

? ??????????????SQL>select id,name,amount,date from customers left join orders on customers.id = orders.customer_id?

? ? ? ? ? ? ? ? ? ? ? ? union all

? ??????????????????????select id,name,amount,date from customers left join orders on customers.id = orders.customer_id?

? ? ? ? ? ? 例5、Union号胚,操作符用于合并兩個或多個select語句的結(jié)果集籽慢,請注意,union內(nèi)部的select語句必須擁有相同數(shù)量的列猫胁,列

? ? ? ? ? ? ? ? ? ? 也必須擁有相似的數(shù)據(jù)類型箱亿。同時,每條select語句中的列的順序必須相同弃秆。

? ? ? ? ? ? ? ? ? ? 注釋:默認(rèn)地,union操作符選取不同的值极景,如果允許重復(fù)的值察净,請使用Union all,另外盼樟,Union結(jié)果集中的列名總是等于

? ? ? ? ? ? ? ? ? ? union 中第一個select 語句中的列名氢卡。

? ? ? ? ? ? 例6、Select into語句從一個表中選取數(shù)據(jù)晨缴,然后把數(shù)據(jù)插入另一個表中

? ? ? ? ? ? ? ? ? ? select * into new_table_name [ IN externaldatabase] from old_tablename

? ? ? ? ? ? ? ? ? ? select column_name(s) into new_table_name [IN externaldatabase] from old_tablename

? ? ? ? ? ? 例7译秦、Default,約束用于向列中插入默認(rèn)值

? ? ? ? ? ? ? ? ? ? 如果沒有規(guī)定其他的值,那么會將默認(rèn)值添加到所有的新記錄

? ? ? ? ? ? ? ? ? ? create table persons

????????????????????(

? ? ? ? ? ? ? ? ? ? ? ? Id_P int NOT NULL击碗,

? ? ? ? ? ? ? ? ? ? ? ? LastName varchar(255) NOT NULL,

? ? ? ? ? ? ? ? ? ? ? ? FirstName varchar(255)筑悴,

? ? ? ? ? ? ? ? ? ? ? ? Address varchar(255),

? ? ? ? ? ? ? ? ? ? ? ? City varchar(255) Default 'Sandnes'

????????????????????)? ??

? ? ? ? ? ? SQL Nulls

? ? ? ? ? ? ? ? ? ? 查詢的時候稍途,如數(shù)據(jù)表中列帶有Null值的記錄阁吝,必須使用 IS NULL操作符。

? ? ? ? ? ? ? ? ? ? 不帶有Null值的記錄械拍,必須使用 IS NOT NULL操作符

? ? ? ? ? ? SQL ISNULL()

? ? ? ? ? ? ? ? ? ? Oracle使用NVL()函數(shù)將表中的Null值轉(zhuǎn)化為0

? ? ? ? ? ? SQL functions

? ? ? ? ? ? 函數(shù)的基本類型是:Aggregate函數(shù):Aggregate函數(shù)的操作面向一系列的值突勇,并返回一個單一的值

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Scalar函數(shù):Scalar函數(shù)的操作面向某個單一的值,并返回基于輸入值的一個單一的值坷虑。

? ? ? ? ? ? ? ? ?1甲馋、 SQL avg(),AVG函數(shù)返回數(shù)值類的平均值,Null值不包括在計算中

? ? ? ? ? ? ? ? ? ? ? ? ?Select avg(column_name) from table_name

? ? ? ? ? ? ? ? ? ?2迄损、Count(column_name)函數(shù)返回指定指定列的值的數(shù)目(Null不計入)

? ? ? ? ? ? ? ? ? ? ? ? 1定躏、Select Count(column_name)? from table_name? ? (f返回指定列的數(shù)目,null不計入)

? ? ? ? ? ? ? ? ? ? ? ? 2芹敌、Select Count(*) from table_name(返回表中的記錄數(shù))

????????????????????????3痊远、Select Count(Distinct column_name) from table_name(函數(shù)返回指定列的不同值的數(shù)目)

? ? ? ? ? ? ? ? ? ?3、first() 函數(shù)返回指定的字段中第一個記錄的值氏捞,提示:可使用ORDER BY語句對記錄進(jìn)行排序

? ? ? ? ? ? ? ? ? ? ? ? Select first(column_name) from table_name

? ? ? ? ? ? ? ? ? ? 4拗引、last() 函數(shù)返回指定的字段中最后一個記錄的值,可使用order by語句對記錄進(jìn)行排序

? ? ? ? ? ? ? ? ? ? ? ? Select last(column_name)? from table_name

? ? ? ? ? ? ? ? ? ? 5幌衣、max函數(shù)返回一列中的最大值。null值不包括在計算中

? ? ? ? ? ? ? ? ? ? ? ? Select max(column_name) from table_name

? ? ? ? ? ? ? ? ? ? 6壤玫、min 函數(shù)返回一列中的最小值豁护。null值不包括在計算中

? ? ? ? ? ? ? ? ? ? ? ? Select min(column_name) from table_name

? ? ? ? ? ? ? ? ? ? 7、sum()? 函數(shù)返回數(shù)值列的總數(shù)(總額)

? ? ? ? ? ? ? ? ? ? ? ? Select SUM(column_name) from table_name

? ? ? ? ? ? ? ? ? ? 8欲间、group by 合計函數(shù)(比如SUM)常常需要添加group by 語句

? ? ? ? ? ? ? ? ? ? ? ? group by 語句用于結(jié)合合計函數(shù)楚里,根據(jù)一個或多個列對結(jié)果績進(jìn)行分組

? ? ? ? ? ? ? ? ? ? 9、Having 在SQL中增加Having子句原因是猎贴,Where關(guān)鍵字無法與合計函數(shù)一起使用

? ? ? ? ? ? ? ? ? ? ? ? Select column_name,aggregate_function(column_name) From table_name where column_name operator value

? ? ? ? ? ? ? ? ? ? ? ? group by column_name Having aggregate_function(column_name) operator value????

? ? ? ? ? ? ? ? ? ? ? ? Select customer,SUM(OrderPrice) From Orders group by Customer Having SUM(OrderPrice) < 2000

? ? ? ? ? ? ? ? ? ? 10班缎、ucase () 函數(shù)把字段的值轉(zhuǎn)換為大寫

? ? ? ? ? ? ? ? ? ? ? ? Select Ucase(colummn_name) from table_name

? ? ? ? ? ? ? ? ? ? 11蝴光、lcase()函數(shù)把字段的值轉(zhuǎn)換為小寫

? ? ? ? ? ? ? ? ? ? ? ? ? ? Select LCASE(column_name) From table_name

? ? ? ? ? ? ? ? ? ? 12、mid() 函數(shù)用于從文本字段中提取字符(MySQL达址,Sql Server不可用)

? ? ? ? ? ? ? ? ? ? ? ? ? ? Select MID(column_name,start[,length]) From table_name

? ? ? ? ? ? ? ? ? ? ? ? ? ? column_name 必須蔑祟。要提取字符的字段

? ? ? ? ? ? ? ? ? ? ? ? ? ? start 必須。規(guī)定開始位置(起始值是1)

? ? ? ? ? ? ? ? ? ? ? ? ? ? length可選沉唠。要返回的字符數(shù)疆虚。如果省略,則Mid()函數(shù)返回剩余文本满葛。

? ? ? ? ? ? ? ? ? ? ? ? ? ? Select MID(city,1,3)? as SmallCity From Persons

? ? ? ? ? ? ? ? ? ? 13径簿、len() 函數(shù)返回文本字段中值的長度(mysql→Length()、Sql Server →len())

? ? ? ? ? ? ? ? ? ? ? ? ? ? Select LEN(column_name) From table_name?

? ? ? ? ? ? ? ? ? ? ? 14嘀韧、round() 函數(shù)用于把數(shù)值字段舍如為指定的小數(shù)位數(shù)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Select? Round(column_name,decimals) From table_name 參數(shù) 描述

? ? ? ? ? ? ? ? ? ? ? ? ? ? -column_name 必須篇亭。要舍入的字段

? ? ? ? ? ? ? ? ? ? ? ? ? ? -decimals 必須。規(guī)定要返回的小數(shù)位數(shù)

? ? ? ? ? ? ? ? ? ? ? ? 15锄贷、now() 函數(shù)返回當(dāng)前的日期和時間(mysql→now(),Sql server→getdate())

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Select now() from table_name?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Select getdate() from table_name

? ? ? ? ? ? ? ? ? ? ? ? 16译蒂、format() 函數(shù)用于對字段的顯示進(jìn)行格式化

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Select? Format(column_name,format) From table_name

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? column_name 必須,要格式化的字段

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? format,必須肃叶,規(guī)定格式蹂随。

? ??????????????????????????????SELECT FORMAT(getdate(),'yyyy-MM-dd HH:mm:ss') From table_name(→Sql Server)

? ??????????????????????????????SELECT DATE_FORMAT(Now(),'%Y-%m-%d %H:%i:%S') FROM table_name(→Mysql)

? ??????????????????????????????

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市因惭,隨后出現(xiàn)的幾起案子岳锁,更是在濱河造成了極大的恐慌,老刑警劉巖蹦魔,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件激率,死亡現(xiàn)場離奇詭異,居然都是意外死亡勿决,警方通過查閱死者的電腦和手機(jī)乒躺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來低缩,“玉大人嘉冒,你說我怎么就攤上這事∨胤保” “怎么了讳推?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長玩般。 經(jīng)常有香客問我银觅,道長,這世上最難降的妖魔是什么坏为? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任究驴,我火速辦了婚禮镊绪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘洒忧。我一直安慰自己蝴韭,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布跑慕。 她就那樣靜靜地躺著万皿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪核行。 梳的紋絲不亂的頭發(fā)上牢硅,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天,我揣著相機(jī)與錄音芝雪,去河邊找鬼减余。 笑死,一個胖子當(dāng)著我的面吹牛惩系,可吹牛的內(nèi)容都是我干的位岔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼堡牡,長吁一口氣:“原來是場噩夢啊……” “哼抒抬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起晤柄,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤擦剑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后芥颈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惠勒,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年爬坑,在試婚紗的時候發(fā)現(xiàn)自己被綠了纠屋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡盾计,死狀恐怖售担,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情署辉,我是刑警寧澤族铆,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站涨薪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏炫乓。R本人自食惡果不足惜刚夺,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一献丑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侠姑,春花似錦创橄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至安吁,卻和暖如春醉蚁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鬼店。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工网棍, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妇智。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓滥玷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親巍棱。 傳聞我的和親對象是個殘疾皇子惑畴,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容

  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,448評論 0 13
  • 關(guān)系型數(shù)據(jù)庫和SQL SQL語言的三個部分DML:Data Manipulation Language,數(shù)據(jù)操縱語...
    Awey閱讀 1,941評論 0 13
  • ORACLE自學(xué)教程 --create tabletestone ( id number, --序號usernam...
    落葉寂聊閱讀 1,072評論 0 0
  • 50個常用的sql語句Student(S#,Sname,Sage,Ssex) 學(xué)生表Course(C#,Cname...
    哈哈海閱讀 1,227評論 0 7
  • 我想劃破厚重的繭航徙,跨越多層圍欄的河床如贷,心中滿是對未來的張望。 各種挫折阻擋我的前進(jìn)步伐捉偏,可我并不會因此放棄飛翔倒得。 ...
    淺晗墨閱讀 136評論 1 4