1. 程式人生 > >delete刪除表和truncate有什麼區別

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();

  1. 停止mysql服務 執行輸入services.msc 停止mysql服務
  2. 在cmd下 輸入: mysqld --skip-grant-tables
    mysqld --skip-grant-tables:就是在啟動mysql時不啟動grant-tables,授權表
    啟動伺服器 游標不動 (注意:不要關閉該視窗)
  3. 新開啟cmd 輸入mysql -u root -p 不需要密碼

use mysql; 作用:使用mysql這個資料庫
update user set password=password(‘123’) WHERE user=‘root’;

  1. 關閉兩個cmd視窗 注意:在工作管理員結束mysqld 程序

  2. 在服務管理頁面 重啟mysql 服務。