淺談SQL--常用SQL語句

日常開發(fā)中留量,避免不了要跟數據庫打交道吼具。也就避免不了要使用SQL語句對數據進行“增刪改查”操作。那么現在就讓我們來走進SQL語言的世界巨柒。

sql.png

首先就讓我們來了解下究竟什么是SQL樱拴?

SQL(Structured Query Language)結構化查詢語言,是一種數據庫查詢和程序設計語言洋满,用于存取數據以及查詢晶乔、更新和管理關系數據庫系統(tǒng);同時也是數據庫腳本文件的擴展名牺勾。
結構化查詢語言是高級的非過程化編程語言正罢,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法驻民,也不需要用戶了解具體的數據存放方式翻具,所以具有完全不同底層結構的不同數據庫系統(tǒng), 可以使用相同的結構化查詢語言作為數據輸入與管理的接口。結構化查詢語言語句可以嵌套回还,這使它具有極大的靈活性和強大的功能裆泳。

版本

各種不同的數據庫對SQL語言的支持與標準存在著細微的不同,這是因為柠硕,有的產品的開發(fā)先于標準的公布工禾,另外,各產品開發(fā)商為了達到特殊的性能或新的特性蝗柔,需要對標準進行擴展闻葵。迄今為止已有100多種遍布在從微機到大型機上的數據庫產品SQL,其中包括DB2癣丧、SQL/DS槽畔、ORACLE、INGRES胁编、SYBASE厢钧、SQLSERVER鳞尔、DBASEⅣ、PARADOX坏快、MICROSOFTACCESS等铅檩。

語句結構

結構化查詢語言包含6個部分:
一:數據查詢語言(DQL:Data Query Language)

也稱為“數據檢索語句”憎夷,用以從表中獲得數據莽鸿,確定數據怎樣在應用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動詞拾给,其他DQL常用的保留字有WHERE祥得,ORDER BY,GROUP BY和HAVING蒋得。這些DQL保留字常與其他類型的SQL語句一起使用级及。

二:數據操作語言(DML:Data Manipulation Language)

它的語句包括動詞INSERT,UPDATE和DELETE额衙。它們分別用于添加饮焦,修改和刪除表中的行。也稱為動作查詢語言窍侧。

三:事務處理語言(TPL:Things Processing Language)

它的語句能確保被DML語句影響的表的所有行及時得以更新县踢。TPL語句包括BEGIN TRANSACTION,COMMIT和ROLLBACK伟件。

四:數據控制語言(DCL:Data Control Language)

它的語句通過GRANT或REVOKE獲得許可硼啤,確定單個用戶和用戶組對數據庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對表單個列的訪問斧账。

五:數據定義語言(DDL:Data Definition Language)

其語句包括動詞CREATE和DROP谴返。在數據庫中創(chuàng)建新表或刪除表(CREATE TABLE 或 DROP TABLE);為表加入索引等咧织。DDL包括許多與人數據庫目錄中獲得數據有關的保留字嗓袱。它也是動作查詢的一部分。

六:指針控制語言(CCL)

它的語句习绢,像DECLARE CURSOR渠抹,FETCH INTO和UPDATE WHERE CURRENT用于對一個或多個表單獨行的操作。

今天就簡單的為大家介紹幾種最基本的SQL語句毯炮。

創(chuàng)建數據表

1.創(chuàng)建數據表格式

格式: create table 表名 (字段名1 字段類型1, 字段名2 字段類型2, …) ;

示例: create table t_student (id integer, name text, age inetger, score real) ;
2.SQLite數據類型

為了保持良好的編程規(guī)范逼肯、方便程序員之間的交流,編寫建表語句的時候最好加上每個字段的具體類型
建表時聲明類型或者不聲明類型都可以桃煎,也就意味著創(chuàng)表語句可以這么寫:
就算聲明為integer類型篮幢,還是能存儲字符串文本(主鍵除外)

create table t_student(name, age);
3.創(chuàng)建表推薦寫法

創(chuàng)建表格時, 最好加個表格是否已經存在的判斷, 這個防止語句多次執(zhí)行時發(fā)生錯誤.
格式: create table if not exists 表名 (字段名1 字段類型1, 字段名2 字段類型2, …) ;
if not exists: 判斷表不存在時才創(chuàng)建表.

4.創(chuàng)建表,設置主鍵(主鍵自動遞增)

SQL不區(qū)分大小寫,編寫SQL規(guī)范,最好關鍵字都使用大寫.表名最好加上t_前綴.
PRIMARY KEY: 約束為主鍵.
AUTOINCREMENT: 自動遞增.
創(chuàng)建表SQL語句:

CREATE TABLE IF NOT EXISTS t_student (id integer PRIMARY KEY AUTOINCREMENT, name text, age integer, score integer);

刪除表

1.刪除表的格式
格式: DROP TABLE IF EXISTS 表名;
2.刪除表示例
刪除表SQL語句: DROP TABLE IF EXISTS t_student;

修改表(重命名表)和添加字段

1.重命名數據表的格式
格式: ALTER TABLE 舊表名 RENAME TO 新表名;
2.重命名表示例
重命名表SQL語句: ALTER TABLE t_student RENAME TO t_person;

數據表添加字段

1.數據表添加字段的格式
格式: ALTER TABLE 表名 ADD COLUMN 字段名 數據類型 限定符
2.數據表添加字段示例
數據表添加字段SQL語句: ALTER TABLE t_student ADD COLUMN address text;

DML數據庫操作操作(增刪改)

插入數據(insert)

1.插入數據格式注意: 數據庫中的字符串內容應該用單引號 ’ 括住;
格式:insert into 表名 (字段1, 字段2, …) values (‘字段1的值’, ‘字段2的值’, …) ;
2.插入數據示例
示例:INSERT INTO t_student (name, age) VALUES ('James', 18);

更新數據(update)

1.更新數據格式
格式:update 表名 set 字段1 = 字段1的值, 字段2 = 字段2的值 where 條件;
2.更新數據示例注意: WHERE 條件是=號,不是==號.
 示例:UPDATE t_student SET age = 19 WHERE name = 'James';

刪除數據(delete)

1.刪除數據格式
格式:delete from 表名 where 條件;
2.更新數據示例
示例:DELETE FROM t_student WHERE name = 'James';

DQL數據庫查詢語句(查詢)

1.查詢數據格式
格式1:select * from 表名;

*表示:通配符,表示所有字段.格式2:select 字段1, 字段2, … from 表名;
格式3:select 字段1, 字段2, … from 表名 where 條件;

2.查詢數據示例
示例1:SELECT * FROM t_student;
示例2:SELECT name, age FROM t_student;
示例3:SELECT name, age FROM t_student where name = 'James';

查詢相關語句

統(tǒng)計查詢

1.count(X):計算記錄個數
計算所有記錄個數:SELECT count(*) FROM t_student;
計算age有值的記錄個數(Null不計算在內):SELECT count(age) FROM t_student;
2.avg(X):計算某個字段的平均值。
3.sum(X):計算某個字段的總和为迈。
4.max(X):計算某個字段的最大值三椿。
5.min(X):計算某個字段的最小值缺菌。

排序查詢

1.升序ASC

格式:SELECT 字段1(或*) FROM 表名 ORDER BY 要排序的字段名 ASC;

示例:SELECT * FROM t_student ORDER BY age ASC;
2.降序

格式:SELECT 字段1(或*) FROM 表名 ORDER BY 要排序的字段名 DESC;

示例:SELECT * FROM t_student ORDER BY age DESC;
3.多個字段排序

格式:SELECT * FROM 表名 ORDER BY 字段名1 排序類型, 字段名2 排序類型;

示例:SELECT * FROM t_student ORDER BY age ASC, score DESC;

limit分頁查詢

1.limit分頁查詢

格式:select * from 表名 limit 數值1, 數值2 ;

 示例:SELECT * FROM t_student LIMIT 4, 8;//跳過最前面4條語句,然后取8條記錄.
2.查詢第n頁的數據假設一頁顯示5條數據.
示例:SELECT * FROM t_student LIMIT 5*(n-1), 5;
3.特殊案例
示例:select * from t_student limit 7;
相當于:select * from t_student limit 0, 7;

多表查詢

1.多表查詢數據

格式:select 字段1, 字段2, … from 表名1, 表名2;

別名

應用場景: 當兩個表的字段同名時,可以使用別名來區(qū)分不同表同名字段.

1.數據表別名

格式:select 別名1.字段1 as 字段別名1, 別名2.字段2 as 字段別名2, … from 表名1 as 別名1, 表名2 as 別名2 ;

可以給表或者字段單獨起別名, as 可以省略.

表連接查詢

格式: select 字段1, 字段2, … from 表名1, 表名2 where 表名1.id = 表名2.id;

SQL特點

1.一體化:SQL集數據定義DDL搜锰、數據操縱DML和數據控制DCL于一體伴郁,可以完成數據庫中的全部工作。
2.使用方式靈活:它具有兩種使用方式蛋叼,即可以直接以命令方式交互使用焊傅;也可以嵌入使用,嵌入到C狈涮、C++狐胎、FORTRAN、COBOL歌馍、JAVA等主語言中使用握巢。
3.非過程化:只提操作要求,不必描述操作步驟松却,也不需要導航暴浦。使用時只需要告訴計算機“做什么”,而不需要告訴它“怎么做”晓锻。
4.語言簡潔歌焦,語法簡單,好學好用:在ANSI標準中带射,只包含了94個英文單詞同规,核心功能只用6個動詞,語法接近英語口語窟社。

sql.jpg

以上就是一些常用的SQL語句券勺,歡迎大家補充一起學習。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末灿里,一起剝皮案震驚了整個濱河市关炼,隨后出現的幾起案子,更是在濱河造成了極大的恐慌匣吊,老刑警劉巖儒拂,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異色鸳,居然都是意外死亡社痛,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門命雀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蒜哀,“玉大人,你說我怎么就攤上這事吏砂∧於” “怎么了乘客?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長淀歇。 經常有香客問我易核,道長,這世上最難降的妖魔是什么浪默? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任牡直,我火速辦了婚禮,結果婚禮上浴鸿,老公的妹妹穿的比我還像新娘井氢。我一直安慰自己,他們只是感情好岳链,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著劲件,像睡著了一般掸哑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上零远,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天苗分,我揣著相機與錄音,去河邊找鬼牵辣。 笑死摔癣,一個胖子當著我的面吹牛,可吹牛的內容都是我干的纬向。 我是一名探鬼主播择浊,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼逾条!你這毒婦竟也來了琢岩?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤师脂,失蹤者是張志新(化名)和其女友劉穎担孔,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體吃警,經...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡糕篇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了酌心。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拌消。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谒府,靈堂內的尸體忽然破棺而出拼坎,到底是詐尸還是另有隱情浮毯,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布泰鸡,位于F島的核電站债蓝,受9級特大地震影響,放射性物質發(fā)生泄漏盛龄。R本人自食惡果不足惜饰迹,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望余舶。 院中可真熱鬧啊鸭,春花似錦、人聲如沸匿值。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挟憔。三九已至钟些,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绊谭,已是汗流浹背政恍。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留达传,地道東北人篙耗。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像宪赶,于是被迫代替她去往敵國和親宗弯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內容