
愛情不過是一種瘋 --《羅密歐與朱麗葉》
目錄
- 1 -安裝數(shù)據(jù)庫(kù) Mac,windows,linx 各平臺(tái)下
- 2-基本操作,數(shù)據(jù)庫(kù),數(shù)據(jù)表 ;查看,創(chuàng)建,刪除,選擇 常用
- 3-數(shù)據(jù)可視化工具安裝【navicat for mysql】 必須
- 4-mysql數(shù)據(jù)類型 重點(diǎn)
- 5-基本的增刪改查 必須
- 6-WHERE【添加查詢】;UPDATE【更新數(shù)據(jù)】;DELETE 【刪除數(shù)據(jù)】; LIKE【多個(gè)讀取】; UNION【多連接】;UNION【排序】 進(jìn)階
- 7-JOIN 連接 【內(nèi),外,左,右;連接】高效開發(fā)
- 8-去重
- 9- 正則表達(dá)式
- 10 -索引 劃重點(diǎn)
- 11 - 臨時(shí)表
- 12 -導(dǎo)出數(shù)據(jù)
- 13 -導(dǎo)入數(shù)據(jù)
前言:
數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),
每個(gè)數(shù)據(jù)庫(kù)都有一個(gè)或多個(gè)不同的API用于創(chuàng)建,訪問,管理,搜索和復(fù)制所保存的數(shù)據(jù)。
我們也可以將數(shù)據(jù)存儲(chǔ)在文件中,但是在文件中讀寫數(shù)據(jù)速度相對(duì)較慢。
所以,現(xiàn)在我們使用關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)來存儲(chǔ)和管理的大數(shù)據(jù)量。所謂的關(guān)系型數(shù)據(jù)庫(kù),是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫(kù),借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
RDBMS即關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(Relational Database Management System)的特點(diǎn):
- 1.數(shù)據(jù)以表格的形式出現(xiàn)
- 2.每行為各種記錄名稱
- 3.每列為記錄名稱所對(duì)應(yīng)的數(shù)據(jù)域
- 4.許多的行和列組成一張表單
- 5.若干的表單組成database
RDBMS 術(shù)語(yǔ)
在我們開始學(xué)習(xí)MySQL 數(shù)據(jù)庫(kù)前,讓我們先了解下RDBMS的一些術(shù)語(yǔ):
- 數(shù)據(jù)庫(kù): 數(shù)據(jù)庫(kù)是一些關(guān)聯(lián)表的集合。.
- 數(shù)據(jù)表: 表是數(shù)據(jù)的矩陣。在一個(gè)數(shù)據(jù)庫(kù)中的表看起來像一個(gè)簡(jiǎn)單的電子表格。
- 列: 一列(數(shù)據(jù)元素) 包含了相同的數(shù)據(jù), 例如郵政編碼的數(shù)據(jù)。
- 行:一行(=元組,或記錄)是一組相關(guān)的數(shù)據(jù),例如一條用戶訂閱的數(shù)據(jù)。
- 冗余:存儲(chǔ)兩倍數(shù)據(jù),冗余降低了性能,但提高了數(shù)據(jù)的安全性。
- 主鍵:主鍵是唯一的。一個(gè)數(shù)據(jù)表中只能包含一個(gè)主鍵。你可以使用主鍵來查詢數(shù)據(jù)。
- 外鍵:外鍵用于關(guān)聯(lián)兩個(gè)表。
- 復(fù)合鍵:復(fù)合鍵(組合鍵)將多個(gè)列作為一個(gè)索引鍵,一般用于復(fù)合索引。
- 索引:使用索引可快速訪問數(shù)據(jù)庫(kù)表中的特定信息。索引是對(duì)數(shù)據(jù)庫(kù)表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)。類似于書籍的目錄。
- 參照完整性: 參照的完整性要求關(guān)系中不允許引用不存在的實(shí)體。與實(shí)體完整性是關(guān)系模型必須滿足的完整性約束條件,目的是保證數(shù)據(jù)的一致性。
Mysql數(shù)據(jù)庫(kù)
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。
- Mysql是開源的,所以你不需要支付額外的費(fèi)用。
- Mysql支持大型的數(shù)據(jù)庫(kù)。可以處理?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)。
- MySQL使用標(biāo)準(zhǔn)的SQL數(shù)據(jù)語(yǔ)言形式。
- Mysql可以允許于多個(gè)系統(tǒng)上,并且支持多種語(yǔ)言。這些編程語(yǔ)言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
- Mysql對(duì)PHP有很好的支持,PHP是目前最流行的Web開發(fā)語(yǔ)言。
- MySQL支持大型數(shù)據(jù)庫(kù),支持5000萬(wàn)條記錄的數(shù)據(jù)倉(cāng)庫(kù),32位系統(tǒng)表文件最大可支持4GB,64位系統(tǒng)支持最大的表文件為8TB。
- Mysql是可以定制的,采用了GPL協(xié)議,你可以修改源碼來開發(fā)自己的Mysql系統(tǒng)。
一. mysql的安裝
- Mac 下安裝 下載地址
1 .下載完成后。點(diǎn)擊安裝,確認(rèn)。直到安裝完成
2 . 啟動(dòng)mysql,進(jìn)入系統(tǒng)偏好設(shè)置 ,點(diǎn)擊啟動(dòng)mysql
Mac下的偏好設(shè)置
3.命令行運(yùn)行下面兩條:為了方便打開命令行就直接運(yùn)行,而不是要到安裝目錄運(yùn)行。功能類似全局變量。
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin
-
查看密碼,注意,安裝成功后,這里會(huì)彈出一個(gè)通知,給你一個(gè)零時(shí)的密碼。
Mac通知欄
5.重置密碼; 先登錄,輸入通知欄的密碼
localhost:~ hez$ mysql -uroot -p
Enter password:
登陸成功顯示

修改密碼,退出數(shù)據(jù),再次登陸輸入密碼123 登陸成功表示成功
mysql> set password for root@localhost = password('123');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> exit
Windows下安裝 推薦文檔
我是mac系統(tǒng),所以我從網(wǎng)上找了篇比較好的文章送給你們。linx下安裝 全安裝,全配置,文章
筆記本里還有一篇CentOS 部署koa2,mysql,nginx的文章。我整理后發(fā)布,請(qǐng)稍后。
安裝么,就是有點(diǎn)坑??! ! 之前我安裝阿里的weex,3天時(shí)間才吧安卓的hello,world打印出來
二. 數(shù)據(jù)庫(kù)基本操作
- 登陸 mysql -uroot -p
localhost:~ hez$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.19 MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
- 查看數(shù)據(jù)庫(kù) show databases;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 11221 |
| hez1 |
| mysql |
| nodesql |
| performance_schema |
| samp_db |
+--------------------+
7 rows in set (0.01 sec)
mysql>
- 新建數(shù)據(jù)庫(kù) CREATE DATABASE apps; (apps,數(shù)據(jù)庫(kù)的名稱)
mysql> CREATE DATABASE apps;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 11221 |
| apps |
| hez1 |
| mysql |
| nodesql |
| performance_schema |
| samp_db |
+--------------------+
8 rows in set (0.00 sec)
mysql>
- 刪除數(shù)據(jù)庫(kù) DROP DATABASE apps; (apps數(shù)據(jù)庫(kù)名稱)
mysql> DROP DATABASE apps;
Query OK, 0 rows affected (0.04 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 11221 |
| hez1 |
| mysql |
| nodesql |
| performance_schema |
| samp_db |
+--------------------+
7 rows in set (0.00 sec)
mysql>
- 選擇數(shù)據(jù)庫(kù) ,新建數(shù)據(jù)表 use (數(shù)據(jù)庫(kù)); create table 數(shù)據(jù)表名(數(shù)據(jù)字段)
mysql> use apps
Database changed
mysql> create table music(singer char(100) not null,song char(100),play char(100) not null);
Query OK, 0 rows affected (0.04 sec)
mysql>
數(shù)據(jù)庫(kù)的解碼一定要是utf8,才能支持中文。不難,但是步驟多。我就不寫了,推薦:mysql設(shè)置為utf8格式
- 查看表結(jié)構(gòu) DESCRIBE (表名);
mysql> DESCRIBE music;
+--------+-----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-----------+------+-----+---------+-------+
| singer | char(100) | NO | | NULL | |
| song | char(100) | YES | | NULL | |
| play | char(100) | NO | | NULL | |
+--------+-----------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql>
- 查看表數(shù)據(jù) select * from (表名); (下面講數(shù)據(jù)可視化工具,這幾條數(shù)據(jù)也是我用可視化工具添加的)
mysql> select * from music;
+-----------+--------------------------+------+
| singer | song | play |
+-----------+--------------------------+------+
| 張學(xué)友 | 吻別 | 100 |
| 張學(xué)友 | 她來聽我的演唱會(huì) | 100 |
+-----------+--------------------------+------+
2 rows in set (0.01 sec)
mysql>
三. 安裝navicat for mysql
下在,靜默安裝。直到成功,軟件是有15天的試用時(shí)間的。怎么做,你很清楚。官網(wǎng)地址
連接數(shù)據(jù)庫(kù) 其實(shí)跟多時(shí)候是線上開發(fā)的 。在linx部署koa2服務(wù)的文章里外有詳細(xì)的講解 centOS部署koa服務(wù)

-
連接成功
連接成功后截圖
安裝的時(shí)候會(huì)有點(diǎn)麻煩,激活。破解什么的。命令行可以連接成功,在這里一定會(huì)成功的。注意看端口號(hào),3306。密碼。
- 在實(shí)際的的開發(fā)中,新建表的方法寫在mysql.js中。
- 試用數(shù)據(jù)可視化,開發(fā)時(shí),更便攜我們的工作
- 新手就更適合了。
四.mysql數(shù)據(jù)類型
太啰嗦,又太長(zhǎng),么什么好弄的,下面的鏈接都不錯(cuò),自己看去?。。?/h5>
比較完整,好閱讀的數(shù)據(jù)類型文字(整理也不容易),請(qǐng)打開
菜鳥教程的數(shù)據(jù)類型
js是什么,一切皆為對(duì)象。數(shù)組,字符串,nums,date。mysql常用數(shù)據(jù)類型。 常用,好用,話不多的mysql數(shù)據(jù)類型
- 字符串
- 時(shí)間
- 數(shù)組
- 圖片
- 新手,先上車。再飆車。 滴,滴,請(qǐng)上車!?。?/a>
五.基本的增刪改查
心累,寫文檔真實(shí)好累。MMP
增刪改查,后端的核心技能
- 創(chuàng)建表,create table
create table 表名(
表字段名1,
表字段名2,
表字段名3
)表數(shù)據(jù)類型,語(yǔ)言;
# 栗子
create table music(
singer char(100) not null,
song char(100),
play char(100) not null
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
# 命令行代碼
mysql> create table music( -> singer char(100) not null,
-> song char(100),
-> play char(100) not null
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.08 sec)
mysql>
- 查詢數(shù)據(jù)庫(kù)表 show tables;
mysql> show tables;
+----------------+
| Tables_in_apps |
+----------------+
| music |
| music1 |
+----------------+
2 rows in set (0.01 sec)
mysql>
- 刪除一張表 DROP TABLE
DROP TABLE 表名;
栗子
mysql> DROP TABLE music1;
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+----------------+
| Tables_in_apps |
+----------------+
| music |
+----------------+
1 row in set (0.00 sec)
mysql>
- 添加數(shù)據(jù) INSERT INTO
INSERT INTO 表名
(表字段名)
VALUES
(添加的數(shù)據(jù)值);
#栗子
mysql> INSERT INTO music(singer,song,play) VALUES('張學(xué)友','吻別','200');
Query OK, 1 row affected (0.01 sec)
# 添加一條數(shù)據(jù)
INSERT INTO music(singer,song,play) VALUES('周杰倫','稻香','343');
Query OK, 1 row affected (0.01 sec)
mysql>
- 查詢數(shù)據(jù) SELECT
# 查詢表里全部數(shù)據(jù)
mysql> SELECT * from music;
+-----------+--------------------------+------+
| singer | song | play |
+-----------+--------------------------+------+
| 張學(xué)友 | 她來聽我的演唱會(huì) | 100 |
| 張學(xué)友 | 吻別 | 200 |
| 周杰倫 | 稻香 | 343 |
+-----------+--------------------------+------+
3 rows in set (0.00 sec)
mysql>
#查詢某一表字段名的數(shù)據(jù)
mysql> SELECT song from music;
+--------------------------+
| song |
+--------------------------+
| 她來聽我的演唱會(huì) |
| 吻別 |
| 稻香 |
+--------------------------+
3 rows in set (0.00 sec)
mysql>
#多條件查詢 (使用,分隔開條件)
mysql> SELECT song,singer from music;
+--------------------------+-----------+
| song | singer |
+--------------------------+-----------+
| 她來聽我的演唱會(huì) | 張學(xué)友 |
| 吻別 | 張學(xué)友 |
| 稻香 | 周杰倫 |
+--------------------------+-----------+
3 rows in set (0.00 sec)
mysql>
本章講了 數(shù)據(jù)表的增刪改查
- 創(chuàng)建表,create table
- 刪除一張表 DROP TABLE
- 添加數(shù)據(jù) INSERT INTO
- 查詢數(shù)據(jù) SELECT
六.數(shù)據(jù)的各種騷
他曾為了你的逃離,頹廢痛苦,也為了破鏡重圓,抱著你哭...《情書》
新建一張用戶表
mysql> use apps
Database changed
mysql> create table muser(
-> name char(100) not null,
-> age char(100) not null,
-> love char(100) not null
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.03 sec)
mysql> show tables;
+----------------+
| Tables_in_apps |
+----------------+
| muser |
| music |
+----------------+
2 rows in set (0.00 sec)
mysql>
INSERT INTO muser(name,age,love) VALUES('慧子','23','周杰倫');
#添加2條數(shù)據(jù)
mysql> INSERT INTO muser(name,age,love) VALUES('hez','23','張學(xué)友');
Query OK, 1 row affected (0.02 sec)
mysql>
mysql> INSERT INTO muser(name,age,love) VALUES('慧子','23','李代沫');
Query OK, 1 row affected (0.01 sec)
mysql>
#查詢表里的數(shù)據(jù)
mysql> SELECT * from muser;
+--------+-----+-----------+
| name | age | love |
+--------+-----+-----------+
| hez | 23 | 張學(xué)友 |
| 慧子 | 22 | 李代沫 |
+--------+-----+-----------+
2 rows in set (0.00 sec)
mysql>
- 從表中讀取數(shù)據(jù) WHERE
小技巧:
or和and,or表示兩者取其一,and表示兩者皆是;
SQL SELECT 語(yǔ)句使用 WHERE 子句從數(shù)據(jù)表中讀取數(shù)據(jù)的通用語(yǔ)法:
# 查詢年齡23的用戶
mysql> select * from muser where age='23';
+--------+-----+-----------+
| name | age | love |
+--------+-----+-----------+
| hez | 23 | 張學(xué)友 |
| 小紅 | 23 | 張學(xué)友 |
+--------+-----+-----------+
2 rows in set (0.00 sec)
# 查詢喜歡張學(xué)友的用戶
mysql> select * from muser where love='張學(xué)友';
+--------+-----+-----------+
| name | age | love |
+--------+-----+-----------+
| hez | 23 | 張學(xué)友 |
| 小明 | 22 | 張學(xué)友 |
| 小紅 | 23 | 張學(xué)友 |
+--------+-----+-----------+
3 rows in set (0.00 sec)
mysql>
多表,多條件讀取數(shù)據(jù)
select 表字段名1,表字段名2,表字段名3,表字段名4 from 表名1,表名1 where 條件1 and 條件2;
(select) 讀取 用戶姓名,年齡,喜歡,音樂表歌曲
(from)從用戶表,音樂表
(where)并且年齡大于18,喜歡張學(xué)友的數(shù)據(jù);
#栗子
mysql> select name,age,love,song from muser,music where age>18 and love='張學(xué)友';
+--------+-----+-----------+--------------------------+
| name | age | love | song |
+--------+-----+-----------+--------------------------+
| hez | 23 | 張學(xué)友 | 她來聽我的演唱會(huì) |
| 小明 | 22 | 張學(xué)友 | 她來聽我的演唱會(huì) |
| 小紅 | 23 | 張學(xué)友 | 她來聽我的演唱會(huì) |
| hez | 23 | 張學(xué)友 | 吻別 |
| 小明 | 22 | 張學(xué)友 | 吻別 |
| 小紅 | 23 | 張學(xué)友 | 吻別 |
| hez | 23 | 張學(xué)友 | 稻香 |
| 小明 | 22 | 張學(xué)友 | 稻香 |
| 小紅 | 23 | 張學(xué)友 | 稻香 |
+--------+-----+-----------+--------------------------+
9 rows in set (0.00 sec)
- 修改數(shù)據(jù) UPDATE
以下是通用語(yǔ)法:
update 數(shù)據(jù)表 set 字段名1= (修改的內(nèi)容),字段名1= (修改的內(nèi)容)where 修改的條件
把慧子喜歡的歌手,修改為李代沫
# 栗子
mysql> update muser set love ='李代沫' where name = '慧子';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql>
把小明的年齡改為19,喜歡的歌手改為gai;
#栗子
mysql> update muser set age='19',love='gia' where name = '小明';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from muser;
+--------+-----+-----------+
| name | age | love |
+--------+-----+-----------+
| hez | 23 | 張學(xué)友 |
| 慧子 | 22 | 李代沫 |
| 小明 | 19 | gia |
| 小紅 | 23 | 張學(xué)友 |
| 小強(qiáng) | 22 | 周杰倫 |
+--------+-----+-----------+
5 rows in set (0.00 sec)
mysql>
- DELETE 刪除一條數(shù)據(jù)
以下是通用語(yǔ)法:
delete from 數(shù)據(jù)表名 where 條件;
刪除小明這條數(shù)據(jù)
#栗子
mysql> delete from muser where name ='小紅';
Query OK, 1 row affected (0.01 sec)
mysql> select * from muser;
+--------+-----+-----------+
| name | age | love |
+--------+-----+-----------+
| hez | 23 | 張學(xué)友 |
| 慧子 | 22 | 李代沫 |
| 小明 | 19 | gia |
| 小強(qiáng) | 22 | 周杰倫 |
+--------+-----+-----------+
4 rows in set (0.00 sec)
mysql>
- UNION接兩個(gè)以上的 SELECT 語(yǔ)句的結(jié)果組合到一個(gè)結(jié)果集合中
通用語(yǔ)法:
select 表字段1 from 數(shù)據(jù)表1
union
select 表字段1 from 數(shù)據(jù)表2
order by 表字段1;
描述:
用以連接多個(gè)select語(yǔ)句,
表字段必須是相同的
union 數(shù)據(jù)不重復(fù)
union ALL 數(shù)據(jù)重復(fù)
select singer from muser
union
select singer from music
order by singer;
#栗子
重復(fù)的數(shù)據(jù)
mysql> select singer from muser
-> union all
-> select singer from music
-> order by singer;
+-----------+
| singer |
+-----------+
| gai |
| 周杰倫 |
| 周杰倫 |
| 張學(xué)友 |
| 張學(xué)友 |
| 張學(xué)友 |
| 李代沫 |
+-----------+
7 rows in set (0.01 sec)
不重復(fù)數(shù)據(jù)
mysql> select singer from muser
-> union
-> select singer from music
-> order by singer;
+-----------+
| singer |
+-----------+
| gai |
| 周杰倫 |
| 張學(xué)友 |
| 李代沫 |
+-----------+
4 rows in set (0.00 sec)
mysql>
- ORDER BY排序
通用語(yǔ)法:
select * from muser order by age asc;
描述:
muser: 數(shù)據(jù)表
order by: 排序
age: 排序條件
asc:升序
desc: 降序
#栗子
年齡(數(shù)值)升序
mysql> select * from muser order by age asc;
+--------+-----+-----------+-----------+
| name | age | love | singer |
+--------+-----+-----------+-----------+
| 小明 | 19 | gia | gai |
| 慧子 | 22 | 李代沫 | 李代沫 |
| 小強(qiáng) | 22 | 周杰倫 | 周杰倫 |
| hez | 23 | 張學(xué)友 | 張學(xué)友 |
+--------+-----+-----------+-----------+
4 rows in set (0.00 sec)
mysql>
年齡(數(shù)值)降序
mysql> select * from muser order by age desc;
+--------+-----+-----------+-----------+
| name | age | love | singer |
+--------+-----+-----------+-----------+
| hez | 23 | 張學(xué)友 | 張學(xué)友 |
| 慧子 | 22 | 李代沫 | 李代沫 |
| 小強(qiáng) | 22 | 周杰倫 | 周杰倫 |
| 小明 | 19 | gia | gai |
+--------+-----+-----------+-----------+
4 rows in set (0.00 sec)
mysql>
- GROUP BY分組數(shù)據(jù)
語(yǔ)句根據(jù)一個(gè)或多個(gè)列對(duì)結(jié)果集進(jìn)行分組。
在分組的列上我們可以使用 COUNT, SUM, AVG,等函數(shù)。
通用語(yǔ)法:
select singer, count(*) from music group by singer;
描述*
count(*): 新的分組(臨時(shí))
music: 數(shù)據(jù)表
group by: 分組語(yǔ)法
singer: 計(jì)算分組的數(shù)據(jù)表字段(歌手)
查看音樂表,獲得每個(gè)歌手都歌曲數(shù)量
#栗子
mysql> select singer, count(*) from music group by singer;
+-----------+----------+
| singer | count(*) |
+-----------+----------+
| 周杰倫 | 1 |
| 張學(xué)友 | 4 |
+-----------+----------+
2 rows in set (0.00 sec)
mysql>
查看用戶表,獲取每個(gè)歌手背喜歡的次數(shù)
mysql> select love, count(*) from muser group by love;
+-----------+----------+
| love | count(*) |
+-----------+----------+
| 周杰倫 | 2 |
| 張學(xué)友 | 3 |
| 李代沫 | 1 |
+-----------+----------+
3 rows in set (0.00 sec)
mysql>
這部分內(nèi)容有點(diǎn)多,懵逼了。等我理一下
1.讀取數(shù)據(jù);當(dāng)張表,多個(gè)條件中,多張表,多個(gè)條件的讀取。
2.修改數(shù)據(jù); 修改一個(gè)字段名,多個(gè)字段名 & 修改條件。
3.刪除數(shù)據(jù); 刪除數(shù)據(jù)&刪除條件
4.集合數(shù)據(jù); 集合兩張或多張表的數(shù)據(jù)到一個(gè)集合中,數(shù)據(jù)可選擇重5.復(fù)或不重復(fù)
6.數(shù)據(jù)排序;升序降序
7.數(shù)據(jù)分組;根據(jù)一個(gè)表字段,或多個(gè)表字段的結(jié)構(gòu)進(jìn)行分組
7. JOIN連接 【內(nèi),左,右】
多表數(shù)據(jù)聯(lián)動(dòng)。上下滑動(dòng)累,來這看看省力的....
- INNER JOIN(內(nèi)連接,或等值連接):獲取兩個(gè)表中字段匹配關(guān)系的記錄
- LEFT JOIN(左連接):獲取左表所有記錄,即使右表沒有對(duì)應(yīng)匹配的記錄
- RIGHT JOIN(右連接): 與 LEFT JOIN 相反,用于獲取右表所有記錄,即使左表沒有對(duì)應(yīng)匹配的記錄
- INNER JOIN 內(nèi)連接
通用語(yǔ)法:
select a.name, a.love,b.singer from muser a inner join music b on a.love = b.singer;
描述:
a .name, b .name ;返回?cái)?shù)據(jù)字段名
muser a,music b;a,b數(shù)據(jù)表名稱的替代符號(hào)
nner join;內(nèi)連接
on; 篩選條件
功能:
獲取兩個(gè)表中字段匹配關(guān)系的記錄。

獲取用戶名,喜歡,歌曲加入判斷條件用戶喜歡的歌手,和曲庫(kù)里有的歌手
#栗子
mysql> select a.name, a.love,b.singer from muser a inner join music b on a.love = b.singer;
+--------+-----------+-----------+
| name | love | singer |
+--------+-----------+-----------+
| hez | 張學(xué)友 | 張學(xué)友 |
| hez | 張學(xué)友 | 張學(xué)友 |
| hez | 張學(xué)友 | 張學(xué)友 |
| hez | 張學(xué)友 | 張學(xué)友 |
| 小明 | 張學(xué)友 | 張學(xué)友 |
| 小明 | 張學(xué)友 | 張學(xué)友 |
| 小明 | 張學(xué)友 | 張學(xué)友 |
| 小明 | 張學(xué)友 | 張學(xué)友 |
| 小強(qiáng) | 周杰倫 | 周杰倫 |
| 小灰 | 張學(xué)友 | 張學(xué)友 |
| 小灰 | 張學(xué)友 | 張學(xué)友 |
| 小灰 | 張學(xué)友 | 張學(xué)友 |
| 小灰 | 張學(xué)友 | 張學(xué)友 |
| 阿狗 | 周杰倫 | 周杰倫 |
+--------+-----------+-----------+
14 rows in set (0.00 sec)
mysql>
- LEFT JOIN 左連接
通用語(yǔ)法:
select a.name, a.love,b.singer from muser a left join music b on a.love =b.singer;
描述:
a .name,a.love, b .singer ;返回?cái)?shù)據(jù)字段名
muser a,music b;a,b數(shù)據(jù)表名稱的替代符號(hào)
left join;左連接
on; 篩選條件
功能
該語(yǔ)句會(huì)讀取左邊的數(shù)據(jù)表 muser 的所有選取的字段數(shù)據(jù),即便在右側(cè)表 music中 沒有對(duì)應(yīng)的 singer 字段值 沒有為null。

以用戶表為左表,歌曲表為右表。查詢用戶喜歡的歌手,歌曲庫(kù)里也有的數(shù)據(jù)
#栗子
mysql> select a.name, a.love,b.singer from muser a left join music b on a.love =b.singer;
+--------+-----------+-----------+
| name | love | singer |
+--------+-----------+-----------+
| hez | 張學(xué)友 | 張學(xué)友 |
| 小明 | 張學(xué)友 | 張學(xué)友 |
| 小灰 | 張學(xué)友 | 張學(xué)友 |
| hez | 張學(xué)友 | 張學(xué)友 |
| 小明 | 張學(xué)友 | 張學(xué)友 |
| 小灰 | 張學(xué)友 | 張學(xué)友 |
| 小強(qiáng) | 周杰倫 | 周杰倫 |
| 阿狗 | 周杰倫 | 周杰倫 |
| hez | 張學(xué)友 | 張學(xué)友 |
| 小明 | 張學(xué)友 | 張學(xué)友 |
| 小灰 | 張學(xué)友 | 張學(xué)友 |
| hez | 張學(xué)友 | 張學(xué)友 |
| 小明 | 張學(xué)友 | 張學(xué)友 |
| 小灰 | 張學(xué)友 | 張學(xué)友 |
| 慧子 | 李代沫 | NULL |
+--------+-----------+-----------+
15 rows in set (0.01 sec)
mysql>
- RIGHT JOIN 右連接
通用語(yǔ)法
select a.love,b.singer,b.song from muser a right join music b on a.love =b.singer;
描述
a .a.love, b .singer,b .song ;返回?cái)?shù)據(jù)字段名 muser a,music b; a,b數(shù)據(jù)表名稱的替代符號(hào)
right join;左連接
on; 篩選條件
功能:
該語(yǔ)句會(huì)讀取右邊的數(shù)據(jù)表 music 的所有選取的字段數(shù)據(jù),即便在左側(cè)表 muser 中沒有對(duì)應(yīng)的 love 字段值。

mysql> select a.love,b.singer,b.song from muser a right join music b on a.love =b.singer;
+-----------+-----------+--------------------------+
| love | singer | song |
+-----------+-----------+--------------------------+
| 張學(xué)友 | 張學(xué)友 | 她來聽我的演唱會(huì) |
| 張學(xué)友 | 張學(xué)友 | 吻別 |
| 張學(xué)友 | 張學(xué)友 | 情書 |
| 張學(xué)友 | 張學(xué)友 | 李香蘭 |
| 張學(xué)友 | 張學(xué)友 | 她來聽我的演唱會(huì) |
| 張學(xué)友 | 張學(xué)友 | 吻別 |
| 張學(xué)友 | 張學(xué)友 | 情書 |
| 張學(xué)友 | 張學(xué)友 | 李香蘭 |
| 周杰倫 | 周杰倫 | 稻香 |
| 張學(xué)友 | 張學(xué)友 | 她來聽我的演唱會(huì) |
| 張學(xué)友 | 張學(xué)友 | 吻別 |
| 張學(xué)友 | 張學(xué)友 | 情書 |
| 張學(xué)友 | 張學(xué)友 | 李香蘭 |
| 周杰倫 | 周杰倫 | 稻香 |
| NULL | gia | 火鍋底料 |
+-----------+-----------+--------------------------+
15 rows in set (0.00 sec)
mysql>
看到這里,你應(yīng)該發(fā)現(xiàn)兩個(gè)問題
1 join是干什么用的
2 這些數(shù)據(jù)多是重復(fù)的,實(shí)際開發(fā)的時(shí)候怎么用呢
別急,join在實(shí)際開發(fā)中很長(zhǎng)見,也是必須的。數(shù)據(jù)重復(fù),去重下下章我們講。
8.去重
9.正則表達(dá)式
講真,我沒有怎么研究過...你感興趣就去看看吧 菜鳥教程,正則表達(dá)式


