[TOC]
# MySQL 创建数据库
~~~
CREATE DATABASE 数据库名;
~~~
*****
# MySQL 删除数据库
## drop 命令删除数据库
~~~
drop database ;
~~~
*****
# MySQL 创建数据表
~~~
CREATE TABLE table_name (column_name column_type);
~~~
~~~
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
~~~
*****
# MySQL 删除数据表
~~~
DROP TABLE table_name ;
~~~
*****
# MySQL 插入数据
~~~
INSERT INTO runoob_tbl
(runoob_title, runoob_author, submission_date)
VALUES
("学习 PHP", "菜鸟教程", NOW());
~~~
*****
# MySQL 查询数据
```
select * from runoob_tbl;
```
*****
# MySQL WHERE 子句
```
SELECT * from runoob_tbl WHERE runoob_author='菜鸟教程';
```
*****
# MySQL UPDATE 查询
需要修改或更新 MySQL 中的数据
```
UPDATE runoob_tbl SET runoob_title='学习 C++' WHERE runoob_id=3;
```
*****
# MySQL DELETE 语句
```
DELETE FROM runoob_tbl WHERE runoob_id=3;
```
*****
# MySQL LIKE 子句
```
SELECT * from runoob_tbl WHERE runoob_author LIKE '%COM';
```
*****
# MySQL UNION 操作符
从 "Websites" 和 "apps" 表中选取所有**不同的**country(只有不同的值):
```
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
```
使用 UNION ALL 从 "Websites" 和 "apps" 表中选取**所有的**country(也有重复的值):
```
SELECT country FROM Websites
UNION ALL
SELECT country FROM apps
ORDER BY country;
```
*****
# MySQL 排序
```
SELECT * from runoob_tbl ORDER BY submission_date ASC/DESC;
```
*****
# MySQL GROUP BY 语句
~~~
SELECT name, COUNT(*) FROM employee_tbl GROUP BY name;
~~~
*****
# Mysql 连接的使用
## INNER JOIN
```
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
```
## LEFT JOIN
```
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
```
## RIGHT JOIN
##UNION
關鍵字把這兩個查詢合併起來的話,就只會得到一個查詢結果
![](https://box.kancloud.cn/9f9d3dd53aa67d89706945b4519bae20_1154x492.png)
*****
# MySQL NULL 值处理
* **IS NULL:**当列的值是 NULL,此运算符返回 true。
* **IS NOT NULL:**当列的值不为 NULL, 运算符返回 true。
```
SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
```
*****
# MySQL ALTER命令
需要修改数据表名或者修改数据表字段时
~~~
ALTER TABLE testalter_tbl DROP i;
~~~
使用 ADD 子句来向数据表中添加列
~~~
ALTER TABLE testalter_tbl ADD i INT;
~~~
## 修改字段类型及名称
把字段 c 的类型从 CHAR(1) 改为 CHAR(10)
~~~
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
~~~
*****
# MySQL 处理重复数据
## 防止表中出现重复数据
**PRIMARY KEY(主键)**或者**UNIQUE(唯一)**索引来保证数据的唯一性。
```
~~~
CREATE TABLE person_tbl
(
first_name CHAR(20) NOT NULL,
last_name CHAR(20) NOT NULL,
sex CHAR(10),
PRIMARY KEY (last_name, first_name)
);
~~~
```
## if
SELECT IF(x, y, z)
IF()返回一個數字或字符串值。
如果x是TRUE(x不為0且x不為NULL),那麼IF()返回y,否則它返回z。
*****
## case
SELECT CASE column
WHEN a THEN b
WHEN c THEN d
ELSE e
END
若column等於a,則返回b
若column等於c,則返回d
否則返回e
另外,a與c可為運算式,例如a<10,只要是a小於10都返回b
## IN
使用在一組成員資料的比對條件設定:
![](https://box.kancloud.cn/40f80a602b51aa0e7a2adbbccc5b6c86_1396x210.png)
##Null
is is not
![](https://box.kancloud.cn/8be31dc6540131b9e93f75e278805c38_906x336.png)
## 排除重複紀錄
![](https://box.kancloud.cn/4ea81b47e42f2f3bc4e8321dbccf9571_1150x196.png)
![](https://box.kancloud.cn/cc47d3c0d1ace2434f0322c93a65c309_1178x574.png)
# 計算兩個日期之間的天數
![](https://box.kancloud.cn/2d709cbc53745079641e67a10377fd7e_1750x286.png)
# 字串函式
* LOWER(字串):將\[字串\]轉換為小寫
* UPPER(字串):將\[字串\]轉換為大寫
* LPAD(字串1, 長度, 字串2):如果\[字串1\]的長度小於指定的\[長度\],就在\[字串1\]左邊使用\[字串2\]補滿
* RPAD(字串1, 長度, 字串2):如果\[字串1\]的長度小於指定的\[長度\],就在\[字串1\]右邊使用\[字串2\]補滿
* LTRIM(字串):移除\[字串\]左邊的空白
* RTRIM(字串):移除\[字串\]右邊的空白
* TRIM(字串):移除\[字串\]左、右的空白
* REPEAT(字串, 個數):重複\[字串\]指定的\[個數\]
* REPLACE(字串1, 字串2, 字串3):將\[字串1\]中的\[字串2\]替換為\[字串3\]
* CONCAT(參數 \[,…\]):傳回所有參數連接起來的字串
* CONCAT\_WS(分隔字串, 參數 \[,…\]):傳回所有參數連接起來的字串,參數之間插入指定的\[分隔字串\]
# 隨機查詢
RAND()
![](https://box.kancloud.cn/55e9ec98beb8e4f674e4ef464689c553_1156x468.png)
# 日期時間函式
* CURDATE():取得目前日期,相同功能:CURRENT\_DATE、CURRENT\_DATE()
* CURTIME():取得目前時間,相同功能:CURRENT\_TIME、CURRENT\_TIME()
* ADDDATE(日期, 天數):傳回\[日期\]在指定\[天數\] 以後的日期
# 群組函式
* MAX(運算式):最大值
* MIN(運算式):最小值
* SUM(運算式):合計
* AVG(運算式):平均
* COUNT(\[DISTINCT\]\*|運算式):使用「DISTINCT」時,重複的資料不會計算;使用\[\*\]時,計算表格紀錄的數量:使用\[運算式\]時,計算的數量不會包含「NULL」值
![](https://box.kancloud.cn/93f8955e68d5a949cae7ec2c7f4a235d_1114x520.png)
# GROUP\_CONCAT函式
一些字串資料「串接」起來
# 取得表格資訊
## DESCRIBE指令
DESC cmdev.dept
![DESC cmdev.dept](https://box.kancloud.cn/cb9c3421725635f91202fe0a4d4840d8_1172x372.png)