delete刪除表和truncate有什麼區別
delete刪除表中的資料時沒有加where 條件,會刪除表中的所有資料,它與truncate 有什麼區別?
刪除過程不同
truncate 刪除資料,過程先將整個表刪除,再重新建立
delete 刪除資料,逐行刪除記錄
truncate 效率要好於 delete
語言定義不同
truncate 屬於DDL (資料找不回來),delete 屬於DML(有可能找回來)
start transaction 開啟事務
失敗:rollback 事務的回滾 ---- 事務的結束, 把修改的內容恢復到之前的狀態。
成功:commit 提交 -----------事務的結束。把修改的內容進行永久儲存
delete from user; 和 drop table user; 有什麼區別:
delete from user; 把person表中的所有資料全部刪除,但是person的表還存在。
drop table user; 把person資料表從資料庫中刪除。
3.1 資料記錄增刪改小結
新增:
insert into 表名 values(值,值,值……)
insert into 表名(列名1,列名2,列名3….) values(值1,值2,值3……)
insert into 表名(列名2,列名4,列名5….) values(值2,值4,值5……)
修改:
update 表名 set 列名=值,列名=值 where 條件
刪除:
delete from 表名 where 條件
如果不加where 條件,就是刪除所有的資料。
刪除:清空資料
truncate table 表名
通過刪除整張表之後再重新建立一張表來達到清空資料的目的。
delete 和 truncate的區別是delete刪除的資料在事務管理的情況下還能恢復,而truncate則不能恢復。
資料表建立(重要)
create table 表名(
列名 資料型別 約束 ,
列名 資料型別 約束 約束,
………
);
查看錶
show tables:檢視所有的表
show create table 表名: 檢視建表語句以及字符集
desc 表名:查看錶結構。
修改表的語句(瞭解)
alter table 表名(add|modify|drop|change) 列名 型別(長度) 約束。
rename table 舊錶名 to 新表名
刪除表
drop table 表名
資料庫操作語句小結
建立
create database 資料庫名
檢視所有資料庫
show databases。
檢視指定資料庫建表語句及字符集
show create database 資料庫名
刪除資料庫
drop database 資料庫名
修改資料庫字符集-瞭解
alter database 資料庫名 character set ‘字符集’
切換資料庫
use 資料庫名
檢視當前資料庫名稱
select database();
- 停止mysql服務 執行輸入services.msc 停止mysql服務
- 在cmd下 輸入: mysqld --skip-grant-tables
mysqld --skip-grant-tables:就是在啟動mysql時不啟動grant-tables,授權表
啟動伺服器 游標不動 (注意:不要關閉該視窗) - 新開啟cmd 輸入mysql -u root -p 不需要密碼
use mysql; 作用:使用mysql這個資料庫
update user set password=password(‘123’) WHERE user=‘root’;
-
關閉兩個cmd視窗 注意:在工作管理員結束mysqld 程序
-
在服務管理頁面 重啟mysql 服務。