MySQL高級操作指令匯總
一.克隆表
法一
mysql> create table info1 like info;
復制格式,通過LIKE方法,復制info表結構生成info1表
但是不備份內容

mysql> insert into info1 select * from info;

法二
mysql> create table info2(select * from info);
可以將表的內容都克隆到新表中,但是表格式可能會丟失。

二.清空表
法一 delete
mysql> delete from ouou1;
DELETE清空表后,返回的結果內有刪除的記錄條目;
只清空表的內容,不刪除表


法二 truncate
mysql> truncate table info1;
TRUNCATE清空表后,沒有返回被刪除的條目: TRUNCATE 工作時是將表結構按原樣重新建立

法三 drop
mysql> drop table info1;

總結
delete from info1;
屬于DML
可回滾(可恢復)
可帶where
表結構在,表內容要看where執(zhí)行的情況
冊刪除速度慢,需要逐行刪除
truncate table info1;
屬于DDL
不可回滾
不可帶where
表內容刪除
刪除速度快
drop table info1;
屬于DDL
不可回滾(無法恢復)
不可帶where
表內容和結構刪除
刪除速度快
刪除速度 drop> truncate > delete
安全性 delete 最好
三.創(chuàng)建臨時表
mysql> create temporary table info1 (id int(4) not null primary key,name varchar(20),age int(4));
沒有真正寫入磁盤中,只是存在內存中,當退出數(shù)據(jù)庫之后再查看臨時表就沒有記錄了。


臨時表無法創(chuàng)建外鍵
四.外鍵約束
設置外鍵
mysql> alter table stu add foreign key (proid) references pro (pid);
將主表的主鍵和外表的外鍵聯(lián)系起來。這兩個的這兩個字段必須設置為相同的數(shù)據(jù)類型,字符長度和約束。



模擬錯誤
此時就會有外鍵錯誤

五.用戶管理
1.查看用戶信息
用戶信息一般存放在mysql數(shù)據(jù)庫的user表中


(root@localhost) [mysql]> select User,Host,authentication_string from user;

2.新建用戶create user
CREATE USER ‘用戶名’@‘來源地址’ IDENTIFIED BY 密碼’;
‘用戶名’:指定將創(chuàng)建的用戶名.
‘來源地址’:指定新創(chuàng)建的用戶可在哪些主機上登錄,可使用IP地址、網(wǎng)段、主機名的形式,本地用戶可用localhost,允許任意主機登錄??捎猛ㄅ浞?
‘密碼’:若使用明文密碼,直接輸入’密碼’,插入到數(shù)據(jù)庫時由Mysql自動加密;
若使用加密密碼,需要先使用SELECT PASSWORD(‘密碼’);獲取密文,再在語句中PASSWORD ‘密文’;
若省略“IDENTIFIED BY"部分,則用戶的密碼將為空(不建議使用)
密碼為明文
(root@localhost) [mysql]> create user ‘tan’@‘localhost’ identified by ‘Tcy@2021’;

密碼為密文

(root@localhost) [mysql]> create user ‘tan’@’%’ identified by ‘6DCA0D3E3AC09527DF9052DF166C90D3100043D1’;

普通用戶沒有操作權限,無法增刪改查數(shù)據(jù)庫

3.重命名rename
(root@localhost) [mysql]> rename user ‘yyy’@’%’ to ‘yyy1’@’%’;



4.刪除用戶
(root@localhost) [mysql]> drop user ‘tan1’@’%’;

5.修改密碼
1.修改當前用戶的密碼
(tan@localhost) [(none)]> set password = password(‘Lbb@2021’);


2.修改其他用戶的密碼
(root@localhost) [mysql]> set password for ‘tan’@‘localhost’ = password(‘123456’);

六.數(shù)據(jù)庫用戶授權
1.授予權限grant
專門用來設置數(shù)據(jù)庫用戶的訪問權限。當指定的用戶名不存在時,GRANT語句將會創(chuàng)建新的用戶;當指定的用戶名存在時,GRANT 語句用于修改用戶信息。
GRANT 權限列表 ON 數(shù)據(jù)庫名.表名 TO ‘用戶名’@‘來源地址’ [IDENTIFIED BY ‘密碼’];
權限列表:用于列出授權使用的各種數(shù)據(jù)庫操作,以逗號進行分隔,如“select,insert,update”。使用“all”表示所有權限,可授權執(zhí)行任何操作。
數(shù)據(jù)庫名.表名:用于指定授權操作的數(shù)據(jù)庫和表的名稱,其中可以使用通配符“”。例如,使用“kgc.”表示授權操作的對象為 kgc數(shù)據(jù)庫中的所有表。
‘用戶名@來源地址’:用于指定用戶名稱和允許訪問的客戶機地址,即誰能連接、能從哪里連接。來源地址可以是域名、IP 地址,還可以使用“%”通配符,表示某個區(qū)域或網(wǎng)段內的所有地址。
IDENTIFIED BY:用于設置用戶連接數(shù)據(jù)庫時所使用的密碼字符串。在新建用戶時,若省略“IDENTIFIED BY”部分, 則用戶的密碼將為空。
(root@localhost) [mysql]> grant select on tan.stu to ‘tan’@‘localhost’ identified by ‘Tcy@2021’;

在tan用戶中 ,但是在授權了select查詢的操作,其他增刪改不能使用。

對于增刪改這些操作ouou是沒有權限的,所以會被拒絕。

2.查看權限
(root@localhost) [mysql]> show grants for ‘tan’@‘localhost’;

3.撤銷權限
(root@localhost) [mysql]> revoke select on tan.stu from ‘tan’@‘localhost’;

4.刷新權限
flush privileges
到此這篇關于MySQL高級操作指令匯總的文章就介紹到這了,更多相關MySQL 高級操作內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL從一個表中查出數(shù)據(jù)并插入到另一個表的詳細處理方案
這篇文章主要給大家介紹了關于MySQL從一個表中查出數(shù)據(jù)并插入到另一個表的詳細處理方案,文中通過圖文介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考借鑒價值,需要的朋友可以參考下2023-12-12
MySQL實現(xiàn)差集(Minus)和交集(Intersect)測試報告
MySQL沒有實現(xiàn)Minus和Intersect功能,就像它也沒有實現(xiàn)cube的功能一樣。2014-06-06
解決xmapp啟動mysql出現(xiàn)Error: MySQL shutdown unexpec
這篇文章主要介紹了解決xmapp啟動mysql出現(xiàn)Error: MySQL shutdown unexpectedly.問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
MySQL 數(shù)據(jù)庫定時備份的幾種方式(全面)
在操作數(shù)據(jù)過程中,可能會導致數(shù)據(jù)錯誤,甚至數(shù)據(jù)庫奔潰,而有效的定時備份能很好地保護數(shù)據(jù)庫。本篇文章主要講述了幾種方法進行 MySQL 定時備份數(shù)據(jù)庫。2021-09-09

