MySQL入門(一)

1.  MySQL是什麼?

MySQL是一個小型的關係型數據庫管理系統,開發者爲瑞典MySQL AB 公司,2008116號被sun公司收購,以後又在20094月被Oracle公司收購,現屬於 Oracle 旗下產品。mysql

MySQL 是最流行的關係型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件之一。MySQL被普遍的應用在Internet上的中小型網站中。MySQL 軟件採用了雙受權政策,分爲社區版和商業版,因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼這一特色,通常中小型網站的開發都選擇 MySQL 做爲網站數據庫。sql

2.  數據庫的分類

在實際項目開發中,數據庫一共分爲兩大類:數據庫

2.1     關係型數據庫 

關係型數據庫,是指採用了關係模型來組織數據的數據庫,其以的形式存儲數據,以便於用戶理解,關係型數據庫這一系列的行和列被稱爲表,一組表組成了數據庫。用戶經過查詢來檢索數據庫中的數據,而查詢是一個用於限定數據庫中某些區域的執行代碼。關係模型能夠簡單理解爲二維表格模型,而一個關係型數據庫就是由二維表及其之間的關係組成的一個數據組織。安全

小型數據庫:微軟Access服務器

中型數據庫:編輯器

DB2IBM公司的數據庫產品,收費的。常應用在銀行系統中.       在中國的互聯網公司,要求去IOE 網站

MySQL開源免費的數據庫,小型的數據庫.已經被Oracle收購了.MySQL5.5版本以後都是由Oracle發佈的版本。ui

SQL ServerMicroSoft 公司收費的中型的數據庫。C#.net等語言常使用。spa

大型數據庫:.net

Oracle收費的大型數據庫,Oracle公司的產品。Oracle收購SUN公司,收購MYSQL

2.2     非關係型數據

非關係型數據庫有:RedisMongoDB

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;(注:uroot之間能夠不用加空格,其它也同樣)。

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),用來定義數據庫對象:數據庫,表,列等。關鍵字:createalterdrop

Ø  數據操做語言:簡稱DML(Data Manipulation Language),用來對數據庫中表的記錄進行更新。關鍵字:insertdeleteupdate

Ø  數據控制語言:簡稱DCL(Data Control Language),用來定義數據庫的訪問權限和安全級別,及建立用戶;關鍵字:grant

Ø  數據查詢語言:簡稱DQL(Data Query Language),用來查詢數據庫中表的記錄。關鍵字:selectfromwhere

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 byorder bylimitjoinunion等;

可是對應的外部查詢必須是如下語句之一:selectinsertupdatedelete

位置:

select 中、from 後、where .

group by order by 中無實用意義。

7.  MySQL事務處理

MySQL 事務主要用於處理操做量大,複雜度高的數據。

Ø  MySQL 中只有使用了 Innodb 數據庫引擎的數據庫或表才支持事務。

Ø  事務處理能夠用來維護數據庫的完整性,保證成批的 SQL 語句要麼所有執行,要麼所有不執行。

Ø  事務用來管理DML操做,好比 insert,update,delete 語句

通常來講,事務是必須知足4個條件(ACID):

Ø  Atomicity(原子性)

構成事務的的全部操做必須是一個邏輯單元,要麼所有執行,要麼所有不執行。

Ø  Consistency(穩定性)

數據庫在事務執行先後狀態都必須是穩定的。

Ø  Isolation(隔離性)

事務之間不會相互影響。

Ø  Durability(可靠性)

事務執行成功後必須所有寫入磁盤。

相關文章
相關標籤/搜索