2020-07-28 mysql -mariadb

類型:關(guān)系型數(shù)據(jù)庫(kù)
聯(lián)系類型
數(shù)據(jù)的操作:
數(shù)據(jù)提群烨摇:在數(shù)據(jù)集合中提取感興趣的內(nèi)容湖苞。SELECT
數(shù)據(jù)更新:變更數(shù)據(jù)庫(kù)中的數(shù)據(jù)。INSERT打颤、DELETE、UPDATE
聯(lián)系的類型
一對(duì)一聯(lián)系(1:1)
一對(duì)多聯(lián)系(1:n)
多對(duì)多聯(lián)系(m:n)

1.[數(shù)據(jù)庫(kù)]中的多對(duì)多關(guān)聯(lián)關(guān)系一般需采用中間表的方式處理漓滔,將多對(duì)多轉(zhuǎn)化為兩個(gè)一對(duì)多编饺。

2.通過(guò)表的關(guān)系,來(lái)幫助我們?cè)鯓咏ū硐炻浚◣讖埍怼?/p>

一對(duì)一
一張表的一條記錄一定只能與另外一張表的一條記錄進(jìn)行對(duì)應(yīng)透且,反之亦然。

學(xué)生表:姓名豁鲤,性別秽誊,年齡,身高琳骡,體重锅论,籍貫,家庭住址日熬,緊急聯(lián)系人
其中姓名棍厌、性別、年齡竖席、身高耘纱,體重屬于常用數(shù)據(jù),但是籍貫毕荐、住址和聯(lián)系人為不常用數(shù)據(jù)
如果每次查詢都是查詢所有數(shù)據(jù)束析,不常用的數(shù)據(jù)就會(huì)影響效率,實(shí)際又不用
常用信息表:ID(P)憎亚,姓名员寇,性別,年齡第美,身高蝶锋,體重
不常用信息表:ID(P),籍貫什往,家庭住址扳缕,緊急聯(lián)系人

解決方案:將常用的和不常用的信息分享存儲(chǔ),分成兩張表
不常用信息表和常用信息表别威,保證不常用信息表與常用信息表能夠?qū)?yīng)上:找一個(gè)具有唯一性的
字段來(lái)共同連接兩張表躯舔。
一個(gè)常用表中的一條記錄永遠(yuǎn)只能在一張不常用表中匹配一條記錄,反之亦然省古。</pre>

一對(duì)多
一張表中有一條記錄可以對(duì)應(yīng)另外一張表中的多條記錄粥庄;但是反過(guò)來(lái),另外一張表的一條記錄
只能對(duì)應(yīng)第一張表的一條記錄豺妓,這種關(guān)系就是一對(duì)多或多對(duì)一
母親與孩子的關(guān)系:母親惜互,孩子兩個(gè)實(shí)體
母親表:ID(P),名字,年齡科侈,性別
孩子表:ID(P),名字载佳,年齡,性別
以上關(guān)系:一個(gè)媽媽可以在孩子表中找到多條記錄(也可能是一條)臀栈,但是一個(gè)孩子只能找到一個(gè)媽媽
是一種典型的一對(duì)多的關(guān)系蔫慧。
但是以上設(shè)計(jì):解決了實(shí)體的設(shè)計(jì)表問(wèn)題,但是沒(méi)有解決關(guān)系問(wèn)題权薯,孩子找不到母親姑躲,母親也找不到孩子

解決方案:在某一張表中增加一個(gè)字段,能夠找到另外一張表中的記錄:在孩子表中增加一個(gè)字段
指向母親表盟蚣,因?yàn)楹⒆颖淼挠涗浿荒芷ヅ涞揭粭l母親表的記錄黍析。
母親表:ID(P),名字,年齡屎开,性別
孩子表:ID(P),名字阐枣,年齡,性別,母親表ID(母親表主鍵)</pre>

多對(duì)多
一對(duì)表中(A)的一條記錄能夠?qū)?yīng)另外一張表(B)中的多條記錄蔼两;同時(shí)B表中的一條記錄
也能對(duì)應(yīng)A表中的多條記錄

老師和學(xué)生
老師表 T_ID(P),姓名甩鳄,性別
學(xué)生表 S_ID(P),姓名,性別
以上設(shè)計(jì)方案:實(shí)現(xiàn)了實(shí)體的設(shè)計(jì)额划,但是沒(méi)有維護(hù)實(shí)體的關(guān)系
一個(gè)老師教過(guò)多個(gè)學(xué)生妙啃,一個(gè)學(xué)生也被多個(gè)老師教過(guò)

解決方案:增加一張中間關(guān)系表
老師與學(xué)生的關(guān)系表:ID(P),T_ID,S_ID
老師表與中間表形成一對(duì)多的關(guān)系,而中間表是多表俊戳;維護(hù)了能夠唯一找到一表的關(guān)系揖赴;
同樣的學(xué)生表與中間表也是一個(gè)一對(duì)多的關(guān)系;
學(xué)生找老師:找出學(xué)生ID--->中間表尋找匹配記錄(多條)--->老師表匹配(一條)
老師找學(xué)生:找出老師ID--->中間表尋找匹配記錄(多條)--->學(xué)生表匹配(一條)</pre>
yum -y install mariadb mariadb-server yum安裝
提高安全性
mysql_secure_installation
設(shè)置數(shù)據(jù)庫(kù)管理員root口令
禁止root遠(yuǎn)程登錄
刪除anonymous用戶帳號(hào)
刪除test數(shù)據(jù)庫(kù)

mariadb版本 5.5.65-MariaDB MariaDB Server
 create database yangt character set utf8mb4; 建庫(kù)時(shí)指定字符類型 ,避免出現(xiàn)亂碼
MariaDB [(none)]>  create database yang;   默認(rèn)建庫(kù)
查看支持所有字符集:SHOW CHARACTER SET
MariaDB [(none)]> show create database yang;    
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| yang     | CREATE DATABASE `yang` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
MariaDB [(none)]> create database yangt character set utf8mb4; 指定字符編碼類型
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> show create database yangt;
+----------+-------------------------------------------------------------------+
| Database | Create Database                                                   |
+----------+-------------------------------------------------------------------+
| yangt    | CREATE DATABASE `yangt` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)
MariaDB [(none)]> show databases; 查看所有庫(kù)
+--------------------+
| Database           |
+--------------------+


| information_schema |
| hellodb            |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> use hellodb   進(jìn)入庫(kù)
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [hellodb]> show tables;   查看庫(kù)中所有表
+-------------------+
| Tables_in_hellodb |
+-------------------+
| classes           |
| coc               |
| courses           |
| scores            |
| students          |
| teachers          |
| toc               |
+-------------------+
7 rows in set (0.00 sec)

union 縱向合并多表查詢 
字段數(shù)一樣  字段次序數(shù)據(jù)類型相匹配;例
MariaDB [hellodb]> select stuid,name,age,gender from students union select * from teachers;
+-------+---------------+-----+--------+
| stuid | name          | age | gender |
+-------+---------------+-----+--------+
|     1 | Shi Zhongyu   |  22 | M      |
|     2 | Shi Potian    |  22 | M      |
|     3 | Xie Yanke     |  53 | M      |
|     4 | Ding Dian     |  32 | M      |
|     5 | Yu Yutong     |  26 | M      |
|     6 | Shi Qing      |  46 | M      |
|     7 | Xi Ren        |  19 | F      |
|     8 | Lin Daiyu     |  17 | F      |
|     9 | Ren Yingying  |  20 | F      |
|    10 | Yue Lingshan  |  19 | F      |
|    11 | Yuan Chengzhi |  23 | M      |
|    12 | Wen Qingqing  |  19 | F      |
|    13 | Tian Boguang  |  33 | M      |
|    14 | Lu Wushuang   |  17 | F      |
|    15 | Duan Yu       |  19 | M      |
|    16 | Xu Zhu        |  21 | M      |
|    17 | Lin Chong     |  25 | M      |
|    18 | Hua Rong      |  23 | M      |
|    19 | Xue Baochai   |  18 | F      |
|    20 | Diao Chan     |  19 | F      |
|    21 | Huang Yueying |  22 | F      |
|    22 | Xiao Qiao     |  20 | F      |
|    23 | Ma Chao       |  23 | M      |
|    24 | Xu Xian       |  27 | M      |
|    25 | Sun Dasheng   | 100 | M      |
|     1 | Song Jiang    |  45 | M      |
|     2 | Zhang Sanfeng |  94 | M      |
|     3 | Miejue Shitai |  77 | F      |
|     4 | Lin Chaoying  |  93 | F      |
內(nèi)連接:
等值連接:讓表之間的字段以“等值”建立連接關(guān)系抑胎;
不等值連接
自然連接:去掉重復(fù)列的等值連接
自連接
左外連接:
FROM tb1 LEFT JOIN tb2 ON tb1.col=tb2.col
右外連接
FROM tb1 RIGHT JOIN tb2 ON tb1.col=tb2.col
image.png
創(chuàng)建視圖
MariaDB [hellodb]> create view view_oldstudents as select * from students where age >30; 
視圖無(wú)法添加和刪除 基于原表生成
MariaDB [hellodb]> drop view view_oldstudents;   刪除

權(quán)限:

create user test@'192.168.50.%' identified by '12321';   此網(wǎng)段可用test遠(yuǎn)程訪問(wèn)數(shù)據(jù)庫(kù)
禁用反向解析
[root@localhost etc]# vim my.cnf

[mysqld]
skip_name_resolve     禁用反向解析
skip_grant_tables     登錄密碼忽略檢測(cè)
skip-networking           僅本地登錄

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
刪除用戶
MariaDB [mysql]> select user,host,password from user;
+------+--------------+-------------------------------------------+
| user | host         | password                                  |
+------+--------------+-------------------------------------------+
| root | localhost    | *A547BD3AD0B17ADE3A90D1A14559C13B22E0946A |
| root | 127.0.0.1    | *A547BD3AD0B17ADE3A90D1A14559C13B22E0946A |
| root | ::1          | *A547BD3AD0B17ADE3A90D1A14559C13B22E0946A |
| test | 192.168.50.% | *045C8A3B828B8D7674941C5D03E5961BAB546F9A |
+------+--------------+-------------------------------------------+
4 rows in set (0.00 sec)

MariaDB [mysql]> drop user 'test'@'192.168.50.%';
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> select user,host,password from user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *A547BD3AD0B17ADE3A90D1A14559C13B22E0946A |
| root | 127.0.0.1 | *A547BD3AD0B17ADE3A90D1A14559C13B22E0946A |
| root | ::1       | *A547BD3AD0B17ADE3A90D1A14559C13B22E0946A |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

mysql> grant all on retl.* to test@'192.168.50.%'; 為test用戶賦予retl庫(kù)的所有權(quán)限燥滑。
權(quán)限 權(quán)限級(jí)別 權(quán)限說(shuō)明
create 數(shù)據(jù)庫(kù)、表或索引 創(chuàng)建數(shù)據(jù)庫(kù)阿逃、表或索引權(quán)限
drop 數(shù)據(jù)庫(kù)或表 刪除數(shù)據(jù)庫(kù)或表權(quán)限
grant option 數(shù)據(jù)庫(kù)突倍、表或保存的程序 賦予權(quán)限選項(xiàng)
references 數(shù)據(jù)庫(kù)或表 外鍵權(quán)限
alter 更改表,比如添加字段盆昙、索引羽历、修改字段等
delete 刪除數(shù)據(jù)權(quán)限
index 索引權(quán)限
insert 插入權(quán)限
select 查詢權(quán)限
update 更新權(quán)限
create view 視圖 創(chuàng)建視圖權(quán)限
show view 視圖 查看視圖權(quán)限
alter routine 存儲(chǔ)過(guò)程 更改存儲(chǔ)過(guò)程權(quán)限
create routine 存儲(chǔ)過(guò)程 創(chuàng)建存儲(chǔ)過(guò)程權(quán)限
execute 存儲(chǔ)過(guò)程 執(zhí)行存儲(chǔ)過(guò)程權(quán)限
file 服務(wù)器主機(jī)上的文件訪問(wèn) 文件訪問(wèn)權(quán)限
create temporary tables 服務(wù)器管理 創(chuàng)建臨時(shí)表權(quán)限
lock tables 服務(wù)器管理 鎖表權(quán)限
create user 服務(wù)器管理 創(chuàng)建用戶權(quán)限
proccess 服務(wù)器管理 查看進(jìn)程權(quán)限
reload 服務(wù)器管理 執(zhí)行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的權(quán)限
replication client 服務(wù)器管理 復(fù)制權(quán)限
replication slave 服務(wù)器管理 復(fù)制權(quán)限
show databases 服務(wù)器管理 查看數(shù)據(jù)庫(kù)權(quán)限
shutdown 服務(wù)器管理 關(guān)閉數(shù)據(jù)庫(kù)權(quán)限
super 服務(wù)器管理 執(zhí)行kill線程權(quán)限
mysql> revoke delete on retl.* from test@'192.168.50.%';   去除刪除權(quán)限
Query OK, 0 rows affected (0.02 sec)
mysql> show grants for test@'192.168.50.%';    查看用戶擁有的權(quán)限
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for test@192.168.50.%                                                                                                                                                                                                    |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'192.168.50.%'                                                                                                                                                                                     |
| GRANT SELECT, INSERT, UPDATE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `retl`.* TO 'test'@'192.168.50.%' |
| GRANT ALL PRIVILEGES ON `mysql`.`db_erp_new` TO 'test'@'192.168.50.%'                                                                                                                                                           |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

優(yōu)化

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市淡喜,隨后出現(xiàn)的幾起案子秕磷,更是在濱河造成了極大的恐慌,老刑警劉巖炼团,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姑丑,死亡現(xiàn)場(chǎng)離奇詭異篮条,居然都是意外死亡震鹉,警方通過(guò)查閱死者的電腦和手機(jī)覆醇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锌俱,“玉大人晤郑,你說(shuō)我怎么就攤上這事∶澈辏” “怎么了造寝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)吭练。 經(jīng)常有香客問(wèn)我诫龙,道長(zhǎng),這世上最難降的妖魔是什么鲫咽? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任签赃,我火速辦了婚禮谷异,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锦聊。我一直安慰自己晰绎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布括丁。 她就那樣靜靜地躺著,像睡著了一般伶选。 火紅的嫁衣襯著肌膚如雪史飞。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天仰税,我揣著相機(jī)與錄音构资,去河邊找鬼。 笑死陨簇,一個(gè)胖子當(dāng)著我的面吹牛吐绵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播河绽,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼己单,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了耙饰?” 一聲冷哼從身側(cè)響起纹笼,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎苟跪,沒(méi)想到半個(gè)月后廷痘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡件已,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年笋额,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篷扩。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡兄猩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鉴未,到底是詐尸還是另有隱情厦滤,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布歼狼,位于F島的核電站掏导,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏羽峰。R本人自食惡果不足惜趟咆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一添瓷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧值纱,春花似錦鳞贷、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至疆偿,卻和暖如春咱筛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杆故。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工迅箩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人处铛。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓饲趋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親撤蟆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子奕塑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361