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