
1. MySQL是什么?
MySQL是一個小型的關系型資料庫管理系統,開發者為瑞典MySQL AB 公司,在2008年1月16號被sun公司收購,之后又在2009年4月被Oracle公司收購,現屬于 Oracle 旗下產品,
MySQL 是最流行的關系型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系資料庫管理系統) 應用軟體之一,MySQL被廣泛的應用在Internet上的中小型網站中,MySQL 軟體采用了雙授權政策,分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫,
2. 資料庫的分類
在實際專案開發中,資料庫一共分為兩大類:
2.1 關系型資料庫
關系型資料庫,是指采用了關系模型來組織資料的資料庫,其以行和列的形式存盤資料,以便于用戶理解,關系型資料庫這一系列的行和列被稱為表,一組表組成了資料庫,用戶通過查詢來檢索資料庫中的資料,而查詢是一個用于限定資料庫中某些區域的執行代碼,關系模型可以簡單理解為二維表格模型,而一個關系型資料庫就是由二維表及其之間的關系組成的一個資料組織,
小型資料庫:微軟Access
中型資料庫:
DB2:IBM公司的資料庫產品,收費的,常應用在銀行系統中. 在中國的互聯網公司,要求去IOE
MySQL:開源免費的資料庫,小型的資料庫.已經被Oracle收購了.MySQL5.5版本之后都是由Oracle發布的版本,
SQL Server:MicroSoft 公司收費的中型的資料庫,C#、.net等語言常使用,
大型資料庫:
Oracle:收費的大型資料庫,Oracle公司的產品,Oracle收購SUN公司,收購MYSQL,
2.2 非關系型資料
非關系型資料庫有:Redis、MongoDB
3. mysql命令列使用
1. 連接mysql
格式: mysql -h主機地址 -u用戶名-p用戶密碼
A. 連接到本地MYSQL
首先打開DOS視窗,然后進入目錄mysql\bin,再鍵入命令mysql -u root -p,
回車后提示你輸密碼, MYSQL的提示符是: mysql> ,(默認root用戶沒有密碼)
B. 連接到遠程主機上的MYSQL
假設遠程主機的IP為:218.105.110.116,用戶名為root,密碼為abcd123456,
則鍵入以下命令:mysql -h218.105.110.116 -u root -p abcd123456;(注:u與root之間可以不用加空格,其它也一樣),
2. 啟動mysql服務
net start mysql
3. 停止mysql服務
net stop mysql
4. 查詢埠是否沖突
netstat –na | findstr 8080 查看被監聽的埠 , findstr用于查找后面的埠是否存在,
5. 退出mysql
quit或者exit退出
6. 修改密碼:
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
例如給root修改密碼:
mysqladmin -u root -p ab12 password djg345
4. SQL陳述句
SQL,全稱Structured Query Language,簡稱SQL,中文叫結構化查詢語言,
4.1 SQL的分類
? 資料定義語言:簡稱DDL(Data Definition Language),用來定義資料庫物件:資料庫,表,列等,關鍵字:create,alter,drop等
? 資料操作語言:簡稱DML(Data Manipulation Language),用來對資料庫中表的記錄進行更新,關鍵字:insert,delete,update等
? 資料控制語言:簡稱DCL(Data Control Language),用來定義資料庫的訪問權限和安全級別,及創建用戶;關鍵字:grant等
? 資料查詢語言:簡稱DQL(Data Query Language),用來查詢資料庫中表的記錄,關鍵字:select,from,where等
4.2 SQL陳述句的使用
1. 創建MySQL資料庫:
create database 資料庫名稱;
示例代碼:
① 選中localhost,然后切換到SQL編輯器

② 在SQL編輯器中輸入create database db_20171227;如下圖所示:

2. 洗掉資料庫
基本語法:
洗掉就是不想要了,不想要了就是丟掉,丟掉的單詞:drop
drop database 資料庫名稱;
示例代碼:

特別注意:洗掉資料庫是不可逆的,洗掉之前一定要慎重,
3. 查看資料庫
①查看所有資料庫
查看的單詞:show
查看所有資料庫:show databases;
示例代碼:
②顯示指定的某類資料庫
show databases like ‘db%’; //查詢所有以db開頭的所有資料庫
普及like模糊查詢,有兩個關鍵字需要記住:
_(下劃線):代表任一一個字符,可能代表a也可能代表b...
%(百分號):代表任意的n個字符,可能代表ab也可能代表abcd...
4. 創建表
創建資料表的基本語法:
create table 資料表名稱(
列名稱(英文) 列型別 列約束(not null)
);
示例代碼:

5. 洗掉資料表
丟掉:drop
表:table
洗掉資料表:drop table 資料表名稱;
6. 修改資料表(資料表的名稱)
重命名:rename
rename table 原來的名字 to 新名稱;
7. 查看資料表
①查看所有的資料表或某類的資料
show tables like ‘_或%’;
②查看資料表的結構
desc 資料表名稱;
8. 插入記錄:insert
語法:
insert into 表 (列名1,列名2,列名3..) values (值1,值2,值3..); -- 向表中插入某些列
insert into 表 values (值1,值2,值3..); --向表中插入所有列
insert into 表 (列名1,列名2,列名3..) values select (列名1,列名2,列名3..) from 表
insert into 表 values select * from 表
9. 更新資料表中的記錄
基本語法:
更新:update
update 資料表名稱 set 欄位(列) = 更新后的值,欄位(列) = 更新后的值 where 條件;
10. 從資料表中查詢資料
①查詢所有資料
查詢:select
select * from 資料表名稱;
或
select 欄位(某一列) from 資料表名稱;
②根據條件查詢資料(多了一個where)
11. 從資料表中洗掉資料(重點)
基本語法:
洗掉:delete
delete from 資料表名稱 where 條件;
delete from 資料表名稱;
truncate 資料表名稱;
兩者的功能都是洗掉所有資料,但是truncate洗掉的資料,其主鍵(primary key)會重新編號,而delete from洗掉后的資料,會繼續上一次編號,
4.3 CMD中文亂碼
修改my.ini檔案,然后重啟mysql服務器

5. 多表之間的關系
表與表之間的關系,說的就是表與表之間資料的關系,
5.1 一對一關系
在實際作業中,一對一在開發中應用不多,因為一對一完全可以創建成一張表
案例:一個丈夫只能有一個妻子
5.2 一對多關系
案例:一個分類對應多個商品

總結:有外鍵的就是多的一方,
1. 注意事項:
一對多關系和一對一關系的創建很類似,唯一區別就是外鍵不唯一,
2. 一對多關系創建:
添加外鍵列
添加外鍵約束
3. 注意事項:
? 需要中間表去完成多對多關系的創建
? 多對多關系其實就是兩個一對多關系的組合
5.3 多對多關系創建:
? 創建中間表,并在其中創建多對多關系中兩張表的外鍵列
? 在中間表中添加外鍵約束
? 在中間表中添加聯合主鍵約束
6. 多表關聯查詢
6.1 交叉連接
交叉連接的關鍵字:CROSS JOIN
1. 隱式交叉連接
SELECT * FROM A, B
2. 顯式交叉連接
SELECT * FROM A CROSS JOIN B
6.2 內連接
內連接的關鍵字:INNER JOIN
內連接也叫等值連接,行內接使用比較運算子根據每個表共有的列的值匹配兩個表中的行,
1. 隱式內連接
SELECT * FROM A,B WHERE A.id = B.id
2. 顯式內連接
SELECT * FROM A INNER JOIN B ON A.id = B.id
6.3 外連接
外聯接可以是左向外聯接、右向外聯接或完整外部聯接,也就是說外連接又分為:左外連接、右外連接、全外連接
外連接需要有主表或者保留表的概念,
在 FROM子句中指定外聯接時,可以由下列幾組關鍵字中的一組指定:
1. 左外連接:LEFT JOIN 或者 LEFT OUTER JOIN
SELECT * FROM A LEFT JOIN B ON A.id = B.id
2. 右外連接::RIGHT JOIN 或者 RIGHT OUTER JOIN
SELECT * FROM A RIGHT JOIN B ON A.id = B.id
3. 全外連接(MySQL不支持):FULL JOIN 或 FULL OUTER JOIN
SELECT * FROM A FULL JOIN B ON A.id = B.id
外連接總結:
l 通過業務需求,分析主從表
l 如果使用LEFT JOIN,則主表在它左邊
l 如果使用RIGHT JOIN,則主表在它右邊
查詢結果以主表為主,從表記錄匹配不到,則補null
6.4 分頁查詢
MySQL的分頁關鍵字是:LIMIT
格式:
SELECT * FROM table LIMIT [offset,] rows
6.5 子查詢
定義:
子查詢允許把一個查詢嵌套在另一個查詢當中,
子查詢,又叫內部查詢,相對于內部查詢,包含內部查詢的就稱為外部查詢,
子查詢可以包含普通select可以包括的任何子句,比如:distinct、 group by、order by、limit、join和union等;
但是對應的外部查詢必須是以下陳述句之一:select、insert、update、delete,
位置:
select 中、from 后、where 中.
group by 和order by 中無實用意義,
7. MySQL事務處理
MySQL 事務主要用于處理操作量大,復雜度高的資料,
? 在 MySQL 中只有使用了 Innodb 資料庫引擎的資料庫或表才支持事務,
? 事務處理可以用來維護資料庫的完整性,保證成批的 SQL 陳述句要么全部執行,要么全部不執行,
? 事務用來管理DML操作,比如 insert,update,delete 陳述句
一般來說,事務是必須滿足4個條件(ACID):
? Atomicity(原子性)
構成事務的的所有操作必須是一個邏輯單元,要么全部執行,要么全部不執行,
? Consistency(穩定性)
資料庫在事務執行前后狀態都必須是穩定的,
? Isolation(隔離性)
事務之間不會相互影響,
? Durability(可靠性)
事務執行成功后必須全部寫入磁盤,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/90872.html
標籤:MySQL
上一篇:[Error Code: 933, SQL State: 42000]
下一篇:mysql 復制表結構
