MySQL数据库讲解(三)
目錄
一、指定主鍵的另一種方式
?二.克隆、復(fù)制表
1.復(fù)制表的所有內(nèi)容(包括數(shù)據(jù)和表結(jié)構(gòu))
??2.復(fù)制表數(shù)據(jù)或結(jié)構(gòu)
三.清空表、清楚表內(nèi)數(shù)據(jù)
1.方法一
2. 方法二
3.方法三
4.三種方式的對(duì)比
四、創(chuàng)建臨時(shí)表
五、mysql常見約束
六.外鍵約束
定義
作用
主表和從表
七.用戶管理
1.新建用戶
2.查看用戶信息
3.重命名用戶
4.刪除用戶
5.修改當(dāng)前登陸用戶密碼
6.修改其他用戶密碼
八.用戶授權(quán)
1.給予權(quán)限
2、查看權(quán)限
3、撤銷權(quán)限
總結(jié)
一、指定主鍵的另一種方式
use ab;create table if not exists syl ( id int(4) zerofill primary key auto_increment, student_name varchar(20) not null, cardid varchar(18) not null unique key, hobby varchar(50)); if not exists 表示檢測(cè)要?jiǎng)?chuàng)建的表是否存在,如果不存在就創(chuàng)建表 int(4) zerofill 表示若數(shù)值不滿4位數(shù),則前面用“0”填充 auto_increment 表示此字段為自增長字段,即每條記錄自動(dòng)遞增1,默認(rèn)從1開始遞增;自增長字段數(shù)據(jù)不可以重復(fù);自增長字段必須是主鍵;如添加的記錄數(shù)據(jù)沒有指定此字段的值且添加失敗也會(huì)自動(dòng)遞增一次 unique key 表示此字段唯一鍵約束,此字段數(shù)據(jù)不可以重復(fù);一張表中只能有一個(gè)主鍵, 但是一張表中可以有多個(gè)唯一鍵 not null 表示此字段不允許為NULL?
?
?二.克隆、復(fù)制表
1.復(fù)制表的所有內(nèi)容(包括數(shù)據(jù)和表結(jié)構(gòu))
create table 新表名 (select * from 復(fù)制的表名)?2.復(fù)制表數(shù)據(jù)或結(jié)構(gòu)
create table 新表名 like 復(fù)制的表名; #復(fù)制格式,能夠復(fù)制表的格式到新表,但是沒有內(nèi)容 insert into 新表名 select * from 復(fù)制的表名; #復(fù)制原表內(nèi)容到新表?
?
三.清空表、清楚表內(nèi)數(shù)據(jù)
1.方法一
delete from 表名;#delete清空表后,返回的結(jié)果內(nèi)有刪除的記錄條目;delete工作時(shí)是一行一行的刪除記錄數(shù)據(jù)的;如果表中有自增長字段,使用delete from 刪除所有記錄后,再次新添加的記錄會(huì)從原來最大的記錄 ID 后面繼續(xù)自增寫入記錄2. 方法二
truncate table 表名;#truncate 清空表后,沒有返回被刪除的條目;truncate 工作時(shí)是將表結(jié)構(gòu)按原樣重新建立,因此在速度上 truncate 會(huì)比 delete 清空表快;使用 truncate table 清空表內(nèi)數(shù)據(jù)后,ID 會(huì)從 1 開始重新記錄。3.方法三
drop table 數(shù)據(jù)庫名.表名;4.三種方式的對(duì)比
- ?刪除速度: drop > truncate > delete
- drop 為直接刪除表
- truncate 為直接摧毀重構(gòu)
- delete 為逐條刪除
?安全性:
drop 和 truncate 都是不保留有記錄的,不便于數(shù)據(jù)的恢復(fù)
delete 因?yàn)橛袆h除操作的每一個(gè)步驟,因此當(dāng)誤刪的時(shí)候可以根據(jù)日志進(jìn)行恢復(fù)操作
因此 delete 的安全性最好
四、創(chuàng)建臨時(shí)表
create temporary table 表名 (字段1 類型,字段2 類型 [,primary key (主鍵名)]);- 臨時(shí)表創(chuàng)建成功之后,使用 show tables 命令是看不到創(chuàng)建的臨時(shí)表的,臨時(shí)表會(huì)在連接退出后被銷毀
- 在退出連接之前,也可以可執(zhí)行增刪改查等操作,不過不可以創(chuàng)建外鍵
五、mysql常見約束
主鍵約束 primary key 外鍵約束 foreign key 非空約束 not null 唯一約束 unique [key 默認(rèn)值約束 default 自增約束 auto_increment六.外鍵約束
定義
- 如果同一個(gè)屬性字段在表一中是主鍵,而在表二中不是主鍵,則該字段稱為表二的外鍵
作用
- 保證數(shù)據(jù)的完整性和一致性
主表和從表
-
以公共關(guān)鍵字作為主鍵的表為主鍵表(父表、主表)
-
以公共關(guān)鍵字作為外鍵的表為外鍵表(從表、外表)
注:與外鍵關(guān)聯(lián)的主表的字段必須設(shè)置為主鍵,要求從表不能是臨時(shí)表,主從表的字段具有相同的數(shù)據(jù)類型、字符長度和約束
建立主從表后,插入數(shù)據(jù)(先主表,再從表),刪除數(shù)據(jù)記錄(先從表,后主表),刪除外鍵約束字段(先刪除外鍵約束,再刪除外鍵名)
七.用戶管理
1.新建用戶
create user '用戶名'@'來源地址' [identified by [passwd] '密碼'];- 用戶名:指定將創(chuàng)建的用戶名
- ?來源地址:指定新創(chuàng)建的用戶可在哪些主機(jī)上登錄,可使用IP地址、網(wǎng)段、主機(jī)名的形式,本地用戶可用localhost,允許任意主機(jī)登錄
- ?可用通配符%
密碼’:若使用明文密碼,直接輸入’密碼’,插入到數(shù)據(jù)庫時(shí)由Mysql自動(dòng)加密;
若使用加密密碼,需要先使用SELECT PASSWORD(‘密碼’); 獲取密文,再在語句中添加 PASSWORD ‘密文’;
若省略“IDENTIFIED BY”部分,則用戶的密碼將為空(不建議使用)
2.查看用戶信息
use mysql;select User,authentication_string,Host from user;
3.重命名用戶
rename user 'lisi'@'localhost' to 'wangwu'@'localhost';4.刪除用戶
drop user '用戶名'@'localhost';5.修改當(dāng)前登陸用戶密碼
set password = password('新密碼');6.修改其他用戶密碼
set password for '用戶名'@'localhost' = password('新密碼'); use mysql; select User,authentication_string,Host from user;八.用戶授權(quán)
1.給予權(quán)限
grant 提權(quán) grant 權(quán)限列表 on 數(shù)據(jù)庫名.表名 to '用戶名'@'來源地址' [identified by '密碼'];- 權(quán)限列表:用于列出授權(quán)使用的各種數(shù)據(jù)庫操作,以逗號(hào)進(jìn)行分隔(all表示所有)?
- 來源地址:用于指定用戶名稱和允許訪問的客戶機(jī)地址,來源地址可以是域名、IP 地址,還可以使用 “%” 通配符
2、查看權(quán)限
show grants for 用戶名@來源地址;3、撤銷權(quán)限
revoke 權(quán)限列表 on 數(shù)據(jù)庫名.表名 from 用戶名@來源地址;總結(jié)
mysql新建用戶需要指定權(quán)限
復(fù)制表有兩種方式:1將表內(nèi)容和結(jié)構(gòu)一起復(fù)制? ?2.表內(nèi)容和結(jié)構(gòu)分開復(fù)制
外鍵的作用是保證數(shù)據(jù)的完整性和一致性
臨時(shí)表在用戶退出前能正常使用,退出后表就自動(dòng)銷毀
總結(jié)
以上是生活随笔為你收集整理的MySQL数据库讲解(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电容去偶原理
- 下一篇: PostgreSQL 不在使用tig