這篇文章給大家分享的是有關MySQL必備基礎知識有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)建站主營太康網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app軟件定制開發(fā),太康h5成都小程序開發(fā)搭建,太康網(wǎng)站營銷推廣歡迎太康等地區(qū)企業(yè)咨詢
一、SQL的概念
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關系數(shù)據(jù)庫系統(tǒng)。
二、SQL分類
(1)數(shù)據(jù)定義語言(Data Definition Language) DDL
用來定義數(shù)據(jù)庫對象:數(shù)據(jù)庫,表,列……
(2)數(shù)據(jù)操作語言(Data Manipulation Language) DML
用來對數(shù)據(jù)庫中表的記錄進行更新。
(3)數(shù)據(jù)查詢語言(Data Query Language) DQL
用來查詢數(shù)據(jù)庫中表的記錄。
(4)數(shù)據(jù)控制語言(Data Control Language) DCL
(一)DDL
1.創(chuàng)建數(shù)據(jù)庫 create database 數(shù)據(jù)庫名; create database 數(shù)據(jù)庫名 character set 字符集; //字符集一般為uft-8,第二個語句是創(chuàng)建數(shù)據(jù)的同時并設置了字符集。2.查看數(shù)據(jù)庫 use 數(shù)據(jù)庫名; //切換數(shù)據(jù)庫 show databases; //查看MySQL中都有哪些數(shù)據(jù)庫 select database(); //查看當前正在使用的數(shù)據(jù)庫 show create database 數(shù)據(jù)庫名; //查看一個數(shù)據(jù)庫的定義信息3.修改數(shù)據(jù)庫字符集 alter database 數(shù)據(jù)庫名 character set 字符集;4.刪除數(shù)據(jù)庫 drop database 數(shù)據(jù)庫名;5.創(chuàng)建表 CREATE TABLE 表名( 字段名稱1 字段類型(長度), 字段名稱2 字段類型(長度) //注意:最后一個字段名稱末尾不加, ); /*常用的數(shù)據(jù)類型 int 整型 double 浮點型 varchar 字符串 data 日期類型,yyyy-MM-dd 年-月-日 注意: char也表示字符串,但是跟varchar是有區(qū)別的 char和varchar區(qū)別: char類型是固定長度的,varchar是根據(jù)輸入字符分配合適的空間,一般情況下用varchar */6.查看表 show tables; //查看當前數(shù)據(jù)庫所有的表 desc 表名; //查看表的結構7.修改表 rename table 舊表名 to 新表名; // 修改表名 alter table 表名 character set 字符集; //修改字符集 alert table 表名 add 字段名稱 字段類型; //向表中添加字段 alter table 表名 drop 字段名; //刪除字段8.刪除表 drop 表名 if exists 表名; //刪除該表
(二)DML
1.插入數(shù)據(jù) insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...);2.更改數(shù)據(jù) update 表名 set 列名 = 值 [where 字段名 = 值];3.刪除數(shù)據(jù) delete from 表名 [where 字段名 = 值];
(三)DQL
1.簡單查詢 select 列名 from 表名; //列名可以用*號代替表示查詢所有字段2.條件查詢 select 列名 from 表名 where 條件表達式; // %表示任意多個字符串, _表示匹配一個字符,
3.排序 SELECT 字段名 FROM 表名 [WHERE 字段 = 值] ORDER BY 字段名 [ASC / DESC]; // ASC 表示升序排序(默認),DESC表示降序排序4.聚合函數(shù) /*常用聚合函數(shù) * count(字段) 統(tǒng)計指定列不為NULL的記錄行數(shù) * sum(字段) 計算指定列的數(shù)值和 * max(字段) 計算指定列的最大值 * min(字段) 計算指定列的最小值 * avg(字段) 計算指定列的平均值 */ SELECT 聚合函數(shù)(字段名) FROM 表名;5.分組 SELECT 分組字段/聚合函數(shù) FROM 表名 GROUP BY 分組字段 [HAVING 條件];6.limit關鍵字 SELECT 字段1,字段2... FROM 表名 LIMIT offset , length; // offset 起始行數(shù), 從0開始記數(shù), 如果省略 則默認為 0. // length 返回的行數(shù)
(四)DCL
1.創(chuàng)建用戶 CREATE USER '用戶名'@'主機名' IDENTIFIED BY '密碼';2.給用戶授權 GRANT 權限 1, 權限 2... ON 數(shù)據(jù)庫名.表名 TO '用戶名'@'主機名';3.查看權限 SHOW GRANTS FOR '用戶名'@'主機名';4.刪除用戶 DROP USER '用戶名'@'主機名';5.查詢用戶 SELECT * FROM USER;
三、 SQL約束
1. 主鍵約束 // 不可重復 唯一 非空 字段名 字段類型 primary key; // 主鍵的自動增長 AUTO_INCREMENT 表示自動增長(字段類型必須是整數(shù)類型) // 默認主鍵起始值是1,改變起始值 //-- 創(chuàng)建主鍵自增的表,自定義自增其實值字段名 字段類型 DEFAULT 默認值 // CREATE TABLE 表名( // eid INT PRIMARY KEY AUTO_INCREMENT, // …… // )AUTO_INCREMENT=100; // DELETE和TRUNCATE對自增長的影響(前者對自增沒有影響,后者從1開始自增)2. 非空約束 字段名 字段類型 not null,3. 唯一約束 字段名 字段類型 unique,4. 默認值 字段名 字段類型 DEFAULT 默認值
四、事務控制
1.什么是事務 事務是一個整體,由一條或者多條SQL 語句組成,這些SQL語句要么都執(zhí)行成功,要么都執(zhí)行失敗, 只要一條SQL出現(xiàn)異常,整個操作就會回滾,整個業(yè)務執(zhí)行失敗。2. 手動提交事務 ① 開啟事務 start transaction; ② 提交事務 commit; ③ 回滾事務 rollback;3. 自動提交事務(MySQL默認) // 取消自動提交 SET @@autocommit=off; // 查看自動狀態(tài), on是自動,off是手動提交 SHOW VARIABLES LIKE 'autocommit';4. **事務的四大特性**(重點) 原子性,一致性,隔離性,持久性。5. 事務隔離級別 //查看隔離級別 select @@tx_isolation; //5.7版本 // 設置隔離級別 set global transaction isolation level 級別名稱; // read uncommitted 讀未提交 // read committed 讀已提交 // repeatable read 可重復讀 // serializable 串行化
五、多表
(一)概述
1. 在實際開發(fā)中,單表是滿足不了業(yè)務需求的,同一個字段中很可能出現(xiàn)大量的 冗余字段,這就需要我們引入了多表。 2. 如果表1的某個字段與表2的主鍵對應,那么表1的這個字段就稱為表1的外鍵, 擁有外鍵的表是從表,與外鍵對應的主鍵所在的表成為主表。 4. 外鍵約束:外鍵約束可以讓兩張表之間產(chǎn)生一定的對應關系,從而形成了約束。 5. 外鍵指的是與在從表中與主表的主鍵對應的字段。 6. 添加外鍵約束的語法格式 [CONSTRAINT] [外鍵約束名稱] FOREIGN KEY(外鍵字段名) REFERENCES 主表名(主鍵字段名); alter table 從表 add [CONSTRAINT] [外鍵約束名稱] FOREIGN KEY(外鍵字段名) REFERENCES 主表名(主鍵字段名); // 中括號里面的東西都是可以省略的 7. 刪除外鍵約束的語法格式 alter table 從表 drop foreign key 外鍵約束名稱; 8.外鍵約束的注意事項: ① 從表的外鍵類型必須與主表的主鍵類型一致。 ② 添加數(shù)據(jù)時,應該先添加主表的數(shù)據(jù),然后再添加從表的數(shù)據(jù) ③ 刪除數(shù)據(jù)的時候,要先刪除從表中的數(shù)據(jù),再刪除主表中的數(shù)據(jù)。 9.級聯(lián)刪除 刪除數(shù)據(jù)的時候,要先刪除從表中的數(shù)據(jù),再刪除主表中的數(shù)據(jù),設置級聯(lián)刪除 變可以直接刪除主表中的數(shù)據(jù),同時從表中的數(shù)據(jù)也會跟著消失。 on delete cascade; //添加外鍵約束的時候后面跟著這句
(二)多表間關系
一對多: 在多的表上建立外鍵
多對多: 建立第三個表,最起碼有兩個字段(兩個表的主鍵)
一對一: 任意一個表上建立外鍵
(三) 多表查詢
1.內連接查詢 SELECT 字段名 FROM 左表, 右表 WHERE 連接條件; SELECT 字段名 FROM 左表 [inner] JOIN 右表 ON 連接條件;2.外連接查詢 SELECT 字段名 FROM 坐標 LEFT [outer] JOIN 右表 ON 連接條件; SELECT 字段名 FROM 坐標 RIGHT [outer] JOIN 右表 ON 連接條件;// 內連接: inner join , 只獲取兩張表中 交集部分的數(shù)據(jù).// 左外連接: left join , 以左表為基準 ,查詢左表的所有數(shù)據(jù), 以及與右表有交集的部分// 右外連接: right join , 以右表為基準,查詢右表的所有的數(shù)據(jù),以及與左表有交集的部分3.子查詢 SELECT 查詢字段 FROM 表 WHERE 字段=(子查詢); SELECT 查詢字段 FROM (子查詢)表別名 WHERE 條件; SELECT 查詢字段 FROM 表 WHERE 字段 IN (子查詢); // 子查詢如果查出的是一個字段(單列), 那就在where后面作為條件使用. // 子查詢如果查詢出的是多個字段(多列), 就當做一張表使用(要起別名).
六、數(shù)據(jù)庫三范式
數(shù)據(jù)庫設計的一種規(guī)則
目的: 創(chuàng)建 冗余較小,結構合理的數(shù)據(jù)庫。
第一范式(1NF) 滿足最低要求的范式——列具有原子性,列要做到不可拆分性
第二范式(2NF) 在滿足第一范式的基礎之上進一步滿足更多的規(guī)范—— 一張表只能描述一件事情
第三范式(3NF) 以此類推………………
七、MySQL索引
索引的作用:為了提高索引的效率
**常見索引的分類:**主鍵索引(primary key);
唯一索引(unique);普通索引(index);
(一)主鍵索引
1.創(chuàng)建的時候添加主鍵索引 CREATE TABLE 表名( 字段名 類型 PRIMARY KEY , //主鍵索引是唯一索引 );2.在已有表的基礎上添加主鍵索引 ALTER TABLE 表名 ADD PRIMARY KEY(列名);
(二)唯一索引
1. 創(chuàng)建的時候添加唯一索引 CREATE TABLE 表名( UNIQUE [索引名稱] (列名) );2. 在已有表的基礎上添加唯一索引 CREATE UNIQUE INDEX 索引名 on 表名(列名); ALTER TABLE 表名 ADD UNIQUE (列名);
(三)普通索引
create index 索引名 on 表名(列名[長度]); ALTER TABLE 表名 ADD INDEX 索引名(列名);
(四)刪除索引
ALTER TABLE table_name DROP INDEX index_name;
八、MySQL視圖
// 視圖是一個表中根據(jù)不同需求提取出來的一個實際上不存在的表 create view 視圖名 [column_list] as select語句; // 通過視圖進行查詢時將視圖看成是一張表即可
感謝各位的閱讀!關于“MySQL必備基礎知識有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
網(wǎng)站名稱:MySQL必備基礎知識有哪些
分享路徑:http://jinyejixie.com/article26/ijjcjg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、網(wǎng)站營銷、軟件開發(fā)、動態(tài)網(wǎng)站、云服務器、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)