SQL語言學(xué)習(xí)(一)

本系列內(nèi)容為http://www.w3cschool.cn/sql 教程的自學(xué)筆記

  • SQL,指結(jié)構(gòu)化查詢語言赦肋,全稱是 Structured Query Language。

RDBMS

RDBMS 指關(guān)系型數(shù)據(jù)庫管理系統(tǒng)励稳,全稱 Relational Database Management System佃乘。

RDBMS 是 SQL 的基礎(chǔ),同樣也是所有現(xiàn)代數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)驹尼,比如 MS SQL Server趣避、IBM DB2、Oracle扶欣、MySQL 以及 Microsoft Access鹅巍。

RDBMS 中的數(shù)據(jù)存儲在被稱為表的數(shù)據(jù)庫對象中千扶。

表是相關(guān)的數(shù)據(jù)項(xiàng)的集合,它由列和行組成骆捧。

您需要在數(shù)據(jù)庫上執(zhí)行的大部分工作都由 SQL 語句完成澎羞。

下面的 SQL 語句從 "Customers" 表中選取所有記錄:

SELECT * FROM Customers;

  • SQL 對大小寫不敏感:SELECT 與 select 是相同的。

一些最重要的 SQL 命令

  • SELECT - 從數(shù)據(jù)庫中提取數(shù)據(jù)
  • UPDATE - 更新數(shù)據(jù)庫中的數(shù)據(jù)
  • DELETE - 從數(shù)據(jù)庫中刪除數(shù)據(jù)
  • INSERT INTO - 向數(shù)據(jù)庫中插入新數(shù)據(jù)
  • CREATE DATABASE - 創(chuàng)建新數(shù)據(jù)庫
  • ALTER DATABASE - 修改數(shù)據(jù)庫
  • CREATE TABLE - 創(chuàng)建新表
  • ALTER TABLE - 變更(改變)數(shù)據(jù)庫表
  • DROP TABLE - 刪除表
  • CREATE INDEX - 創(chuàng)建索引(搜索鍵)
  • DROP INDEX - 刪除索引
數(shù)據(jù)類型 描述
CHARACTER(n) 字符/字符串敛苇。固定長度 n妆绞。
VARCHAR(n) 或CHARACTER VARYING(n) 字符/字符串》闩剩可變長度括饶。最大長度 n。
BINARY(n) 二進(jìn)制串来涨。固定長度 n图焰。
BOOLEAN 存儲 TRUE 或 FALSE 值
VARBINARY(n) 或BINARY VARYING(n) 二進(jìn)制串”钠可變長度技羔。最大長度 n。
INTEGER(p) 整數(shù)值(沒有小數(shù)點(diǎn))卧抗。精度 p藤滥。
SMALLINT 整數(shù)值(沒有小數(shù)點(diǎn))。精度 5社裆。
INTEGER 整數(shù)值(沒有小數(shù)點(diǎn))拙绊。精度 10。
BIGINT 整數(shù)值(沒有小數(shù)點(diǎn))泳秀。精度 19标沪。
DECIMAL(p,s) 精確數(shù)值,精度 p晶默,小數(shù)點(diǎn)后位數(shù) s谨娜。例如:decimal(5,2) 是一個小數(shù)點(diǎn)前有 3 位數(shù)小數(shù)點(diǎn)后有 2 位數(shù)的數(shù)字。
NUMERIC(p,s) 精確數(shù)值磺陡,精度 p,小數(shù)點(diǎn)后位數(shù) s漠畜。(與 DECIMAL 相同)
FLOAT(p) 近似數(shù)值币他,尾數(shù)精度 p。一個采用以 10 為基數(shù)的指數(shù)計(jì)數(shù)法的浮點(diǎn)數(shù)憔狞。該類型的 size 參數(shù)由一個指定最小精度的單一數(shù)字組成蝴悉。
REAL 近似數(shù)值,尾數(shù)精度 7瘾敢。
FLOAT 近似數(shù)值拍冠,尾數(shù)精度 16尿这。
DOUBLE PRECISION 近似數(shù)值,尾數(shù)精度 16庆杜。
DATE 存儲年射众、月、日的值晃财。
TIME 存儲小時叨橱、分、秒的值断盛。
TIMESTAMP 存儲年罗洗、月、日钢猛、小時伙菜、分、秒的值命迈。
INTERVAL 由一些整數(shù)字段組成仇让,代表一段時間,取決于區(qū)間的類型躺翻。
ARRAY 元素的固定長度的有序集合
MULTISET 元素的可變長度的無序集合
XML 存儲 XML 數(shù)據(jù)

SQL 數(shù)據(jù)類型快速參考手冊

然而丧叽,不同的數(shù)據(jù)庫對數(shù)據(jù)類型定義提供不同的選擇。

下面的表格顯示了各種不同的數(shù)據(jù)庫平臺上一些數(shù)據(jù)類型的通用名稱:

數(shù)據(jù)類型 Access SQLServer Oracle MySQL PostgreSQL
boolean Yes/No Bit Byte N/A Boolean
integer Number (integer) Int Number IntInteger IntInteger
float Number (single) FloatReal Number Float Numeric
currency Currency Money N/A N/A Money
string (fixed) N/A Char Char Char Char
string (variable) Text (<256)Memo (65k+) Varchar VarcharVarchar2 Varchar Varchar
binary object OLE Object Memo Binary (fixed up to 8K)Varbinary (<8K)Image (<2GB) LongRaw BlobText BinaryVarbinary

來自 W3CSchool 的 SQL 快速參考


SQL 語句 語法
AND / OR SELECT column_name(s)FROM table_nameWHERE conditionAND|OR condition
ALTER TABLE ALTER TABLE table_name ADD column_name datatypeorALTER TABLE table_name DROP COLUMN column_name
AS (alias) SELECT column_name AS column_aliasFROM table_nameorSELECT column_nameFROM table_name AS table_alias
BETWEEN SELECT column_name(s)FROM table_nameWHERE column_nameBETWEEN value1 AND value2
CREATE DATABASE CREATE DATABASE database_name
CREATE TABLE CREATE TABLE table_name(column_name1 data_type,column_name2 data_type,column_name2 data_type,...)
CREATE INDEX CREATE INDEX index_nameON table_name (column_name)orCREATE UNIQUE INDEX index_nameON table_name (column_name)
CREATE VIEW CREATE VIEW view_name ASSELECT column_name(s)FROM table_nameWHERE condition
DELETE DELETE FROM table_nameWHERE some_column=some_valueorDELETE FROM table_name (**Note: Deletes the entire table!!)DELETE * FROM table_name (Note: **Deletes the entire table!!)
DROP DATABASE DROP DATABASE database_name
DROP INDEX DROP INDEX table_name.index_name (SQL Server)DROP INDEX index_name ON table_name (MS Access)DROP INDEX index_name (DB2/Oracle)ALTER TABLE table_nameDROP INDEX index_name (MySQL)
DROP TABLE DROP TABLE table_name
GROUP BY SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_name
HAVING SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_nameHAVING aggregate_function(column_name) operator value
IN SELECT column_name(s)FROM table_nameWHERE column_nameIN (value1,value2,..)
INSERT INTO INSERT INTO table_nameVALUES (value1, value2, value3,....)orINSERT INTO table_name(column1, column2, column3,...)VALUES (value1, value2, value3,....)
INNER JOIN SELECT column_name(s)FROM table_name1INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
LEFT JOIN SELECT column_name(s)FROM table_name1LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
RIGHT JOIN SELECT column_name(s)FROM table_name1RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
FULL JOIN SELECT column_name(s)FROM table_name1FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name
LIKE SELECT column_name(s)FROM table_nameWHERE column_nameLIKE pattern
ORDER BY SELECT column_name(s)FROM table_nameORDER BY column_name [ASC|DESC]
SELECT SELECT column_name(s)FROM table_name
SELECT * SELECT *FROM table_name
SELECT DISTINCT SELECT DISTINCT column_name(s)FROM table_name
SELECT INTO SELECT INTO new_table_name [IN externaldatabase]FROM old_table_nameor*SELECT column_name(s)INTO new_table_name [IN externaldatabase]FROM old_table_name
SELECT TOP SELECT TOP number|percent column_name(s)FROM table_name
TRUNCATE TABLE TRUNCATE TABLE table_name
UNION SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2
UNION ALL SELECT column_name(s) FROM table_name1UNION ALLSELECT column_name(s) FROM table_name2
UPDATE UPDATE table_nameSET column1=value, column2=value,...WHERE some_column=some_value
WHERE SELECT column_name(s)FROM table_nameWHERE column_name operator value
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末公你,一起剝皮案震驚了整個濱河市踊淳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌陕靠,老刑警劉巖迂尝,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剪芥,居然都是意外死亡垄开,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門税肪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溉躲,“玉大人,你說我怎么就攤上這事益兄《褪幔” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵净捅,是天一觀的道長疑枯。 經(jīng)常有香客問我,道長蛔六,這世上最難降的妖魔是什么荆永? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任废亭,我火速辦了婚禮,結(jié)果婚禮上具钥,老公的妹妹穿的比我還像新娘豆村。我一直安慰自己,他們只是感情好氓拼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布你画。 她就那樣靜靜地躺著,像睡著了一般桃漾。 火紅的嫁衣襯著肌膚如雪坏匪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天撬统,我揣著相機(jī)與錄音适滓,去河邊找鬼。 笑死恋追,一個胖子當(dāng)著我的面吹牛凭迹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播苦囱,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嗅绸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了撕彤?” 一聲冷哼從身側(cè)響起鱼鸠,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羹铅,沒想到半個月后蚀狰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡职员,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年麻蹋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焊切。...
    茶點(diǎn)故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡扮授,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蛛蒙,到底是詐尸還是另有隱情糙箍,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布牵祟,位于F島的核電站,受9級特大地震影響抖格,放射性物質(zhì)發(fā)生泄漏诺苹。R本人自食惡果不足惜咕晋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望收奔。 院中可真熱鬧掌呜,春花似錦、人聲如沸坪哄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翩肌。三九已至模暗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間念祭,已是汗流浹背兑宇。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粱坤,地道東北人隶糕。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像站玄,于是被迫代替她去往敵國和親枚驻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評論 2 354

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