mysql cmdev_基本操作

[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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值