久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL數據庫高級操作示例

138次閱讀
沒有評論

共計 5478 個字符,預計需要花費 14 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

丸趣 TV 小編給大家分享一下 MySQL 數據庫高級操作示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

文章目錄

數據表高級操作

準備工作:安裝 MySQL 數據庫

一、克隆表

方法一

方法二

二、清空表,刪除表內的所有數據

方法一

方法二

三、創建臨時表

四、創建外鍵約束

MySQL 中 6 種常見的約束

五、數據庫用戶管理

1、新建用戶

2、查看用戶信息

3、重命名用戶

4、刪除用戶

5、修改當前登錄用戶密碼

6、修改其他用戶密碼

7、忘記 root 密碼的解決辦法

六、數據庫用戶授權

1、授予權限

2、查看權限

3、撤銷權限

數據表高級操作

準備工作:安裝 MySQL 數據庫

Shell 腳本一鍵部署——源碼編譯安裝 MySQL

create database CLASS;
use CLASS;
create table TEST (id int not null,name char(20)  not null,cardid varchar(18) not null unique  key,primary key (id));
insert into TEST(id,name,cardid) values (1, zhangsan , 123123 
insert into TEST(id,name,cardid) values (2, lisi , 1231231 
insert into TEST(id,name,cardid) values (3, wangwu , 12312312 
select * from TEST;

MySQL 數據庫高級操作示例

一、克隆表

將數據表的數據記錄生成到新的表中

方法一

例:create table TEST01 like TEST;
select * from TEST01;
desc TEST01;
insert into TEST01 select * from TEST;
select * from TEST01;

MySQL 數據庫高級操作示例

方法二

例:create table TEST02 (select * from TEST);
select * from TEST02;

MySQL 數據庫高級操作示例

二、清空表,刪除表內的所有數據

方法一

delete from TEST02;

#DELETE 清空表后,返回的結果內有刪除的記錄條目;DELETE 工作時是一行一行的刪除記錄數據的;如果表中有自增長字段,使用 DELETE FROM 刪除所有記錄后,再次新添加的記錄會從原來最大的記錄 ID 后面繼續自增寫入記錄

MySQL 數據庫高級操作示例

例:create table if not exists TEST03 (id int primary  key auto_increment,name varchar(20) not null,cardid varchar(18) not null unique key);
show tables;
insert into TEST03 (name,cardid) values ( zhangsan , 11111 
select * from TEST03;
delete from TEST03;
insert into TEST03 (name,cardid) values ( lisi , 22222 
select * from TEST03;

MySQL 數據庫高級操作示例

方法二

例:select * from TEST03;
truncate table TEST03;
insert into TEST03 (name,cardid) values ( wangwu , 33333 
select * from TEST03;

#TRUNCATE 清空表后,沒有返回被刪除的條目;TRUNCATE 工作時是將表結構按原樣重新建立,因此在速度上 TRUNCATE 會比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表內數據后,ID 會從 1 開始重新記錄。

MySQL 數據庫高級操作示例

三、創建臨時表

臨時表創建成功之后,使用 SHOW TABLES 命令是看不到創建的臨時表的,臨時表會在連接退出后被銷毀。如果在退出連接之前,也可以可執行增刪改查等操作,比如使用 DROP TABLE 語句手動直接刪除臨時表。

CREATE TEMPORARY TABLE  表名  (字段 1   數據類型, 字段 2   數據類型[,...][,PRIMARY KEY (主鍵名)]);
例:create temporary table TEST04 (id int not null,name varchar(20) not null,cardid varchar(18) not null unique key,primary key (id));
show tables;
insert into TEST04 values (1, haha , 12345 
select * from TEST04;

MySQL 數據庫高級操作示例MySQL 數據庫高級操作示例

四、創建外鍵約束

保證數據的完整性和一致性
外鍵的定義:如果同一個屬性字段 x 在表一中是主鍵,而在表二中不是主鍵,則字段 x 稱為表二的外鍵。

主鍵表和外鍵表的理解:
1、以公共關鍵字作為主鍵的表為主鍵表(父表、主表)
2、以公共關鍵字作為外鍵的表為外鍵表(從表、外表)

注意:與外鍵關聯的主表的字段必須設置為主鍵,要求從表不能是臨時表,主從表的字段具有相同的數據類型、字符長度和約束

例:create table TEST04 (hobid int(4),hobname varchar(50));
create table TEST05 (id int(4) primary key auto_increment,name varchar(50),age int(4),hobid int(4));
alter table TEST04 add constraint PK_hobid primary key(hobid);
alter table TEST05 add constraint FK_hobid foreign key(hobid) references TEST04(hobid);

MySQL 數據庫高級操作示例

例:添加數據記錄
insert into TEST05 values (1, zhangsan , 20 ,1);
insert into TEST04 values (1, sleep 
insert into TEST05 values (1, zhangsan ,20,1);

MySQL 數據庫高級操作示例

例:drop table TEST04;
drop table TEST05;
drop table TEST04;

MySQL 數據庫高級操作示例
注:如果要刪除外鍵約束字段
先刪除外鍵約束,再刪除外鍵名,此處不演示

show create table TEST05;
alter table TEST05 drop foreign key FK_hobid;
alter table TEST05 drop key FK_hobid;
desc TEST05;

MySQL 中 6 種常見的約束

主鍵約束 primary key 外鍵約束 foreign key 非空約束 not null 唯一約束 unique [key 默認值約束 default 自增約束 auto_increment

五、數據庫用戶管理

1、新建用戶

CREATE USER  用戶名 @ 來源地址  [IDENTIFIED BY [PASSWORD]  密碼

‘用戶名’:指定將創建的用戶名

‘來源地址’:指定新創建的用戶可在哪些主機上登錄,可使用 IP 地址、網段、主機名的形式,本地用戶可用 localhost,允許任意主機登錄可用通配符 %

‘密碼’:若使用明文密碼,直接輸入’密碼’,插入到數據庫時由 Mysql 自動加密;
—— 若使用加密密碼,需要先使用 SELECT PASSWORD(‘密碼’); 獲取密文,再在語句中添加 PASSWORD‘密文’;
—— 若省略“IDENTIFIED BY”部分,則用戶的密碼將為空(不建議使用)

例:create user  zhangsan @ localhost  identified by  123123 
select password( 123123 
create user  lisi @ localhost  identified by password  *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

MySQL 數據庫高級操作示例

2、查看用戶信息

創建后的用戶保存在 mysql 數據庫的 user 表里

USE mysql;
SELECT User,authentication_string,Host from user;

MySQL 數據庫高級操作示例

3、重命名用戶

RENAME USER  zhangsan @ localhost  TO  wangwu @ localhost 
SELECT User,authentication_string,Host from user;

MySQL 數據庫高級操作示例

4、刪除用戶

DROP USER  lisi @ localhost 
SELECT User,authentication_string,Host from user;

MySQL 數據庫高級操作示例

5、修改當前登錄用戶密碼

SET PASSWORD = PASSWORD( abc123 
mysql -u root -p

MySQL 數據庫高級操作示例

6、修改其他用戶密碼

SET PASSWORD FOR  wangwu @ localhost  = PASSWORD( abc123 
use mysql;
SELECT User,authentication_string,Host from user;

7、忘記 root 密碼的解決辦法

1、修改 /etc/my.cnf 配置文件,不使用密碼直接登錄到 mysql

vim /etc/my.cnf
[mysqld]
skip-grant-tables #添加,使登錄 mysql 不使用授權表
systemctl restart mysqld
mysql #直接登錄

MySQL 數據庫高級操作示例
MySQL 數據庫高級操作示例

2、使用 update 修改 root 密碼,刷新數據庫

UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD(112233) where user= root 
FLUSH PRIVILEGES;
再把  /etc/my.cnf  配置文件里的  skip-grant-tables  刪除,并重啟  mysql  服務。mysql -u root -p
112233

MySQL 數據庫高級操作示例

六、數據庫用戶授權

1、授予權限

GRANT 語句:專門用來設置數據庫用戶的訪問權限。當指定的用戶名不存在時,GRANT 語句將會創建新的用戶;當指定的用戶名存在時,GRANT  語句用于修改用戶信息。GRANT  權限列表  ON  數據庫名. 表名  TO  用戶名 @ 來源地址  [IDENTIFIED BY  密碼
# 權限列表:用于列出授權使用的各種數據庫操作,以逗號進行分隔,如“select,insert,update”。使用“all”表示所有權限,可授權執行任何操作。#數據庫名. 表名:用于指定授權操作的數據庫和表的名稱,其中可以使用通配符“*”。* 例如, 使用“kgc.*”表示授權操作的對象為  kgc 數據庫中的所有表。# 用戶名 @來源地址:用于指定用戶名稱和允許訪問的客戶機地址,即誰能連接、能從哪里連接。來源地址可以是域名、IP  地址,還可以使用“%”通配符,表示某個區域或網段內的所有地址,如“%.lic.com”、“192.168.184.%”等。#IDENTIFIED BY:用于設置用戶連接數據庫時所使用的密碼字符串。在新建用戶時,若省略“IDENTIFIED BY”部分,  則用戶的密碼將為空。

# 允許用戶 wangwu 在本地查詢 CLASS 數據庫中所有表的數據記錄,但禁止查詢其他數據庫中的表的記錄。

例:GRANT select ON CLASS.* TO  wangwu @ localhost  IDENTIFIED BY  123456 
quit;
mysql -u wangwu -p
123456
show databases;
use information_schema;
show tables;
select * from INNODB_SYS_TABLESTATS;

# 允許用戶 wangwu 在本地遠程連接 mysql,并擁有所有權限。

quit;
mysql -u root -p112233
GRANT ALL PRIVILEGES ON *.* TO  wangwu @ localhost  IDENTIFIED BY  123456 
flush privileges;
mysql -u wangwu -p123456
create database SCHOOL;

2、查看權限

SHOW GRANTS FOR  用戶名 @來源地址;
SHOW GRANTS FOR  wangwu @ localhost

3、撤銷權限

REVOKE  權限列表  ON  數據庫名. 表名  FROM  用戶名 @來源地址;
例:quit;
mysql -u root -p112233
SHOW GRANTS FOR  wangwu @ localhost 
REVOKE SELECT ON  CLASS .* FROM  wangwu @ localhost 
SHOW GRANTS FOR  wangwu @ localhost

#USAGE 權限只能用于數據庫登陸,不能執行任何操作;USAGE 權限不能被回收,即 REVOKE 不能刪除用戶。

flush privileges;

以上是“MySQL 數據庫高級操作示例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計5478字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 永嘉县| 奉贤区| 满洲里市| 天等县| 仁布县| 龙陵县| 霸州市| 漾濞| 朝阳县| 汪清县| 肥乡县| 荣昌县| 凉城县| 古蔺县| 平顺县| 阳春市| 无极县| 章丘市| 资源县| 沁源县| 台州市| 光山县| 沾益县| 马龙县| 麻栗坡县| 高台县| 屏东市| 普定县| 呈贡县| 万宁市| 岳西县| 安徽省| 乌恰县| 久治县| 龙山县| 介休市| 高要市| 涞源县| 兴业县| 遵化市| 巴东县|