mysql面試必懂基礎(二)

2021-10-11 16:19:57 字數 2287 閱讀 7069

ddl(data define languge):資料定義語言

一、建立庫

create database 庫名

二、刪除庫

drop database 庫名

三、建立表

create table if not exists stuinfo(

stuid int,

stuname varchar(20),

gender char,

borndate datetime

);desc studentinfo;

四、修改表

alter table 表名 add|modify|drop|change column 欄位名 【字段型別】;

#①修改欄位名

alter table studentinfo change column *** gender char;

#②修改表名

alter table stuinfo rename [to] studentinfo;

#③修改字段型別和列級約束

alter table studentinfo modify column borndate date ;

#④新增字段

alter table studentinfo add column email varchar(20) first;

#⑤刪除字段

alter table studentinfo drop column email;

五、刪除表

drop table [if exists] studentinfo;

兩種方式的區別(truncate,delete)

#1.truncate不能加where條件,而delete可以加where條件

#2.truncate的效率高一丟丟

#3.truncate 刪除帶自增長的列的表後,如果再插入資料,資料從1開始

delete 刪除帶自增長列的表後,如果再插入資料,資料從上一次的斷點處開始

#4.truncate刪除不能回滾,delete刪除可以回滾

*常用約束

1、not null

2、default

3、unique

4、check

5、primary key

6、foreign key

*資料庫事務

定義:通過一組邏輯操作單元(一組dml——sql語句),將資料從一種狀態切換到另外一種狀態

(acid)

(a)原子性:要麼都執行,要麼都回滾

(c)一致性:保證資料的狀態操作前和操作後保持一致

(i)隔離性:多個事務同時操作相同資料庫的同乙個資料時,乙個事務的執行不受另外乙個事務的干擾

(d)永續性:乙個事務一旦提交,則資料將持久化到本地,除非其他事務對其進行修改

操作:1、開啟事務

2、編寫事務的一組邏輯操作單元(多條sql語句)

3、提交事務或回滾事務

*事務的分類

隱式事務,沒有明顯的開啟和結束事務的標誌 例如 insert、update、delete 本身就是乙個事務

顯式事務,具有明顯的開啟和結束事務的標誌

1、開啟事務

取消自動提交事務的功能

2、編寫事務的一組邏輯操作單元(多條sql語句)

insert

update

delete

3、提交事務或回滾事務

set autocommit=0;

start transaction;

commit;

rollback;

*事務的隔離級別

事務併發問題如何發生?

當多個事務同時操作同乙個資料庫的相同資料時事務的併發問題有哪些?

髒讀:乙個事務讀取到了另外乙個事務未提交的資料

不可重複讀:同乙個事務中,多次讀取到的資料不一致

幻讀:乙個事務讀取資料時,另外乙個事務進行更新,導致第乙個事務讀取到了沒有更新的資料

如何避免事務的併發問題?

通過設定事務的隔離級別

1、read uncommitted

2、read committed 可以避免髒讀

3、repeatable read 可以避免髒讀、不可重複讀和一部分幻讀

4、serializable可以避免髒讀、不可重複讀和幻讀

設定隔離級別:

set session|global transaction isolation level 隔離級別名;

檢視隔離級別:

select @@tx_isolation;

網路基礎知識 必懂

網路四層協議 應用層 傳輸層 網路層 物理鏈路層 網路七層協議 應用層 http ssh ftp dns等 表示層 會話層 傳輸層 tcp udp 網路層 ip 資料鏈路層 物理層 tcp三次握手 核心思想 我知道你已經知道了。1.建立連線,客戶端傳送syn包到伺服器,進入syn sent狀態,等待...

redis基礎大全,看完必懂

檢查是否連線成功 ping 如果返回值為pong 鏈結成功 否則失敗 存放資料 set key value 例如 set name li 取出資料 get key 例如 get key 注意 乙個name只能對應乙個值 redis共有16張表 資料庫表的切換 select index 從第0張開始到...

MYSQL面試必問 INSERT BUFFER

insert buffer即合併插入快取,從mysql 5.1.x版本 innodb 1.0.x 開始引入changebuffer,是insert buffer公升級版,不僅包括insert buffer,還包括update buffer delete buffer purge buffer。我們可...