MySQL高級(jí)操作指令匯總
一.克隆表
法一
mysql> create table info1 like info;
復(fù)制格式,通過LIKE方法,復(fù)制info表結(jié)構(gòu)生成info1表
但是不備份內(nèi)容
mysql> insert into info1 select * from info;
法二
mysql> create table info2(select * from info);
可以將表的內(nèi)容都克隆到新表中,但是表格式可能會(huì)丟失。
二.清空表
法一 delete
mysql> delete from ouou1;
DELETE清空表后,返回的結(jié)果內(nèi)有刪除的記錄條目;
只清空表的內(nèi)容,不刪除表
法二 truncate
mysql> truncate table info1;
TRUNCATE清空表后,沒有返回被刪除的條目: TRUNCATE 工作時(shí)是將表結(jié)構(gòu)按原樣重新建立
法三 drop
mysql> drop table info1;
總結(jié)
delete from info1;
屬于DML
可回滾(可恢復(fù))
可帶where
表結(jié)構(gòu)在,表內(nèi)容要看where執(zhí)行的情況
冊(cè)刪除速度慢,需要逐行刪除
truncate table info1;
屬于DDL
不可回滾
不可帶where
表內(nèi)容刪除
刪除速度快
drop table info1;
屬于DDL
不可回滾(無法恢復(fù))
不可帶where
表內(nèi)容和結(jié)構(gòu)刪除
刪除速度快
刪除速度 drop> truncate > delete
安全性 delete 最好
三.創(chuàng)建臨時(shí)表
mysql> create temporary table info1 (id int(4) not null primary key,name varchar(20),age int(4));
沒有真正寫入磁盤中,只是存在內(nèi)存中,當(dāng)退出數(shù)據(jù)庫(kù)之后再查看臨時(shí)表就沒有記錄了。
臨時(shí)表無法創(chuàng)建外鍵
四.外鍵約束
設(shè)置外鍵
mysql> alter table stu add foreign key (proid) references pro (pid);
將主表的主鍵和外表的外鍵聯(lián)系起來。這兩個(gè)的這兩個(gè)字段必須設(shè)置為相同的數(shù)據(jù)類型,字符長(zhǎng)度和約束。
模擬錯(cuò)誤
此時(shí)就會(huì)有外鍵錯(cuò)誤
五.用戶管理
1.查看用戶信息
用戶信息一般存放在mysql數(shù)據(jù)庫(kù)的user表中
(root@localhost) [mysql]> select User,Host,authentication_string from user;
2.新建用戶create user
CREATE USER ‘用戶名’@‘來源地址’ IDENTIFIED BY 密碼’;
‘用戶名’:指定將創(chuàng)建的用戶名.
‘來源地址’:指定新創(chuàng)建的用戶可在哪些主機(jī)上登錄,可使用IP地址、網(wǎng)段、主機(jī)名的形式,本地用戶可用localhost,允許任意主機(jī)登錄。可用通配符%
‘密碼’:若使用明文密碼,直接輸入’密碼’,插入到數(shù)據(jù)庫(kù)時(shí)由Mysql自動(dòng)加密;
若使用加密密碼,需要先使用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’;
普通用戶沒有操作權(quán)限,無法增刪改查數(shù)據(jù)庫(kù)
3.重命名rename
(root@localhost) [mysql]> rename user ‘yyy’@’%’ to ‘yyy1’@’%’;
4.刪除用戶
(root@localhost) [mysql]> drop user ‘tan1’@’%’;
5.修改密碼
1.修改當(dāng)前用戶的密碼
(tan@localhost) [(none)]> set password = password(‘Lbb@2021’);
2.修改其他用戶的密碼
(root@localhost) [mysql]> set password for ‘tan’@‘localhost’ = password(‘123456’);
六.數(shù)據(jù)庫(kù)用戶授權(quán)
1.授予權(quán)限grant
專門用來設(shè)置數(shù)據(jù)庫(kù)用戶的訪問權(quán)限。當(dāng)指定的用戶名不存在時(shí),GRANT語句將會(huì)創(chuàng)建新的用戶;當(dāng)指定的用戶名存在時(shí),GRANT 語句用于修改用戶信息。
GRANT 權(quán)限列表 ON 數(shù)據(jù)庫(kù)名.表名 TO ‘用戶名’@‘來源地址’ [IDENTIFIED BY ‘密碼’];
權(quán)限列表:用于列出授權(quán)使用的各種數(shù)據(jù)庫(kù)操作,以逗號(hào)進(jìn)行分隔,如“select,insert,update”。使用“all”表示所有權(quán)限,可授權(quán)執(zhí)行任何操作。
數(shù)據(jù)庫(kù)名.表名:用于指定授權(quán)操作的數(shù)據(jù)庫(kù)和表的名稱,其中可以使用通配符“”。例如,使用“kgc.”表示授權(quán)操作的對(duì)象為 kgc數(shù)據(jù)庫(kù)中的所有表。
‘用戶名@來源地址’:用于指定用戶名稱和允許訪問的客戶機(jī)地址,即誰能連接、能從哪里連接。來源地址可以是域名、IP 地址,還可以使用“%”通配符,表示某個(gè)區(qū)域或網(wǎng)段內(nèi)的所有地址。
IDENTIFIED BY:用于設(shè)置用戶連接數(shù)據(jù)庫(kù)時(shí)所使用的密碼字符串。在新建用戶時(shí),若省略“IDENTIFIED BY”部分, 則用戶的密碼將為空。
(root@localhost) [mysql]> grant select on tan.stu to ‘tan’@‘localhost’ identified by ‘Tcy@2021’;
在tan用戶中 ,但是在授權(quán)了select查詢的操作,其他增刪改不能使用。
對(duì)于增刪改這些操作ouou是沒有權(quán)限的,所以會(huì)被拒絕。
2.查看權(quán)限
(root@localhost) [mysql]> show grants for ‘tan’@‘localhost’;
3.撤銷權(quán)限
(root@localhost) [mysql]> revoke select on tan.stu from ‘tan’@‘localhost’;
4.刷新權(quán)限
flush privileges
到此這篇關(guān)于MySQL高級(jí)操作指令匯總的文章就介紹到這了,更多相關(guān)MySQL 高級(jí)操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL用戶和數(shù)據(jù)權(quán)限管理詳解
這篇文章主要為大家詳細(xì)介紹了MySQL數(shù)據(jù)庫(kù)管理中的用戶和數(shù)據(jù)權(quán)限管理,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)MySQL有一定幫助,需要的可以參考一下2022-08-08如何在SQL Server中實(shí)現(xiàn) Limit m,n 的功能
本篇文章是對(duì)在SQL Server中實(shí)現(xiàn) Limit m,n功能的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06mysql數(shù)據(jù)遷移之data目錄復(fù)制方法
這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)遷移之data目錄復(fù)制方法的相關(guān)資料,MySQL的data文件是存儲(chǔ)數(shù)據(jù)庫(kù)的核心文件,它包含了所有的表、索引、視圖和其它相關(guān)的數(shù)據(jù),通過復(fù)制這些文件,我們可以將一個(gè)MySQL數(shù)據(jù)庫(kù)遷移到另一個(gè)地方,需要的朋友可以參考下2023-08-08

MySQL啟動(dòng)時(shí)InnoDB引擎被禁用了的解決方法

快速實(shí)現(xiàn)MySQL的部署以及一機(jī)多實(shí)例部署

Windows下MySQL日志基本的查看以及導(dǎo)入導(dǎo)出用法教程

Mysql join聯(lián)表及id自增實(shí)例解析