MySQL

1.術語
數據庫:一些關聯表的集合;
表:數據的矩陣;
行:一組相關的數據;
列:一組相同類型的數據;
冗余:存儲兩倍數據(降低了性能,提高了數據安全性);
主鍵:唯一(一個數據表最多有一個主鍵,值具有唯一性);
外鍵:用于關聯兩個表;
復合鍵:復合鍵(組合鍵)將多個列作為一個索引鍵,一般用于復合索引;
索引:使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構。類似于書籍的目錄;
參照完整性:
實體完整性:
MySQL數據庫:MySQL是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。

2.語句
創建數據庫:CREATE DATABASE test0420

刪除數據庫:DROP DATABASE test0420

創建表:
CREATE TABLE w_tbl(
w_id INT NOT NULL AUTO_INCREMENT, //自增
w_title VARCHAR(100) NOT NULL,//非空
w_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY ( w_id ) //聲明主鍵
)ENGINE=InnoDB DEFAULT CHARSET=utf8; //設置引擎和編碼

刪除表:DROP TABLE w_tbl

插入:INSERT INTO z_tbl (z_id, z_name, z_desc) VALUES (1,'wxe','cute')

查詢:
SELECT * FROM table_name
[WHERE Clause] // 查詢條件 AND、OR、以及邏輯運算符等
[OFFSET M ] //開始查詢的數據偏移量,默認情況下偏移量為0
[LIMIT N] // 設定返回的記錄數

更新:UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

刪除:DELETE FROM table_name [WHERE Clause]

LIKE子句:%表示任意字符

UNION操作符:
SELECT f1, f2, ... fn FROM tables1 [WHERE conditions1]
UNION [ALL | DISTINCT] //默認是DISTINCT去重,ALL不去重
SELECT e1, e2, ... en FROM tables2 [WHERE conditions2];

ORDER BY排序: [ASC [DESC]] 默認是ASC升序,DESC為降序

GROUP BY分組:
1)語法:
SELECT column_name, function(column_name) //可以是COUNT, SUM, AVG等函數
FROM table_name
WHERE column_name operator value
GROUP BY column_name // 按照某一列進行分組
WITH ROLLUP; //在以該列分組上在進行統計(COUNT, SUM, AVG等操作)
2)示例:


數據表.png

按name分組,統計每個用戶的記錄數:
SELECT name,COUNT(*) as user_count FROM employee_tbl GROUP BY name;


結果1.png

按name分組,統計每個用戶的登錄數:
SELECT name,SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
結果2.png

其中記錄 NULL 表示所有人的登錄次數。
可以使用 coalesce 來設置一個可以取代 NUll 的名稱,coalesce 語法:
select coalesce(a,b,c);
參數說明:如果a==null,則選擇b;如果b==null,則選擇c;如果a!=null,則選擇a;如果a b c 都為null ,則返回為null(沒意義)。
SELECT COALESCE(name,'總數') as user_name,SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
結果3.png

Join連接
1)INNER JOIN ON(內連接,等值連接,默認的JOIN方式):獲取兩個表中字段匹配關系的記錄;

1.png

例:select a.id, a.name,b.describe from t_one a inner join t_two b on a.name = b.name;
等同于:select a.id, a.name,b.describe from t_one a, t_two b where a.name = b.name;
2)LEFT JOIN ON(左連接):獲取左表所有記錄,即使右表沒有對應匹配的記錄;

2.png

3)RIGHT JOIN ON(右連接):反之2);

3.png

MySQL事務
1)在 MySQL 中只有使用了 Innodb 數據庫引擎的數據庫或表才支持事務。
2)事務處理可以用來維護數據庫的完整性,保證成批的 SQL 語句要么全部執行,要么全部不執行。
3)事務用來管理 insert,update,delete 語句。
事務是必須滿足4個條件(ACID): Atomicity(原子性)、Consistency(穩定性)、Isolation(隔離性)、Durability(可靠性)
例子:
MYSQL 事務處理主要有兩種方法:
1、用 BEGIN, ROLLBACK, COMMIT來實現
BEGIN 開始一個事務
ROLLBACK 事務回滾
COMMIT 事務確認
2、直接用 SET 來改變 MySQL 的自動提交模式:
SET AUTOCOMMIT=0 禁止自動提交
SET AUTOCOMMIT=1 開啟自動提交

ALTER 修改數據庫表名或者字段
1)刪除表字段:alter table t_one drop title;
2)添加表字段:
alter table t_one add title varchar; 添加vcarchar類型的title字段到尾部
alter table t_one add title varchar first; 添加varchar類型的title字段到首位
alter table t_one add title varchar after name;添加varchar類型的title字段到name字段后邊;
3)修改字段類型或名稱:
alter table t_one modify name CHAR(10);修改那么字段的類型
4)修改表明:
ALTER TABLE t_one RENAME TO t_two;

INDEX索引
索引分為單列索引和組合索引;
索引其實已是一張表,里面包含了主鍵與索引字段,并指向實體表的記錄;
優缺點:
雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行INSERT、UPDATE和DELETE。因為更新表時,MySQL不僅要保存數據,還要保存一下索引文件;
建立索引會占用磁盤空間的索引文件。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,001評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,786評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,986評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,204評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,964評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,354評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,410評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,554評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,106評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,918評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,093評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,648評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,342評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,755評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,009評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,839評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,107評論 2 375

推薦閱讀更多精彩內容

  • 什么是數據庫? 數據庫是存儲數據的集合的單獨的應用程序。每個數據庫具有一個或多個不同的API,用于創建,訪問,管理...
    chen_000閱讀 4,050評論 0 19
  • 1、MySQL啟動和關閉(安裝及配置請參照百度經驗,這里不再記錄。MySQL默認端口號:3306;默認數據類型格式...
    強壯de西蘭花閱讀 673評論 0 1
  • 1、說明:創建數據庫CREATE DATABASE database-name2、說明:刪除數據庫drop dat...
    codeSirCao閱讀 439評論 0 2
  • 喜歡臺灣的文藝片,因為對臺灣這座島嶼的向往,還有它所流露出的清新感覺。有時想到它干凈的海岸線,還有那長長的公路,...
    盛世回首閱讀 209評論 0 0
  • 故事簡介|唐,開元十四年,夜,宵禁。一陣風吹過街道,然后隨著風的,一盞盞燈籠從一個個小巷子亮起,飄過…… 燈籠在朱...
    遛遛心情的溜媽閱讀 1,394評論 3 13