1.MySQL表的約束
(1)MySQL中表的約束有哪幾種?
唯一約束:unique
非空約束:not null
主鍵約束:primary key
外鍵約束:foreign key
MySQL中沒有檢查約束(check)
(2)如何查詢表的約束信息?
Select keys from 表名
(3)如何在創(chuàng)建表時(shí)添加主鍵約束,非空約束,唯一約束,檢查約束和外鍵約束,請(qǐng)舉例說明
MySQL中沒有檢查約束
Create table 表a
(
aid int(4) primary key auto_increment, -- auto_increment代表主鍵自增
aname varchar(30) not null, -- 非空
email varchar(50) Unique,? -- 唯一約束
bid? int(5),? -- 添加外鍵引用
Constraint fk_表a_bid foreign key(bid) references 表b(bid) -- 外鍵約束
);
Create table 表b
(
bid int primary key auto_increment,
bname varvhar(30) not null
);
(4)如何修改表實(shí)現(xiàn)約束的添加與刪除
先刪原有的,再添加新的約束
2.MySQL 中的 DML 操作
(1)請(qǐng)描述插入語句的語法,并舉例說明
insert into 表名[(列名1,列名2...)] values(值1,值2...)
(2)MySQL中自動(dòng)增長使用什么關(guān)鍵字,自動(dòng)增長類型有哪些要求?
auto_increment? 類型要求:整型,自增一般對(duì)主鍵使用
(3)創(chuàng)建表時(shí)如何指定默認(rèn)值?插入數(shù)據(jù)時(shí)如何對(duì)默認(rèn)值進(jìn)行處理?
default? 處理時(shí),指定的默認(rèn)值為什么就為什么
(4)請(qǐng)描述更新語句的語法,并舉例說明
Update 表名 set 列名1=值1,列名2=值2... [where子句]
若不添加where子句限制條件,會(huì)修改全表數(shù)據(jù)
(5)請(qǐng)描述刪除語句的語法,并舉例說明
Delete 表名 列名 [where子語句]
若不添加where子句限制條件,會(huì)刪除全表數(shù)據(jù)
(6)DELETE 與 TRUNCATE 區(qū)別
Truncate 效率要比delete高
Delete 刪除數(shù)據(jù)會(huì)寫入日志文件(可恢復(fù))
Truncate截?cái)?直接刪除數(shù)據(jù),不留痕跡

3.MySQL 中的事務(wù)處理
(1)MySQL在默認(rèn)的情況下事務(wù)是否自動(dòng)提交?如何關(guān)閉 MySQL 的事務(wù)自動(dòng)提交?
MySQL自動(dòng)提交事務(wù)
通過 start transaction語句來開始執(zhí)行事務(wù)
Commit提交? rollback 回滾 來手工確認(rèn)對(duì)事務(wù)的處理

4.MySQL 查詢數(shù)據(jù)
(1)描述MySQL的列選擇的基本語法
Select 列名 from 表名;
(2)描述MySQL的行選擇的基本語法
Select * from 表名 where子句;
(3)MySQL如何為列起別名?
Select 列1 別名,列2 別名,.... from 表名;
(4)MySQL中如何去除重復(fù)?
Distinct
Select distinct * from 表名 where子句;
(5)MySQL模糊查詢使用什么關(guān)鍵字,常用的通配符有那些?
Like? ? ? %:代表任意長度任意字符, _:代表一位任意字符
查詢姓名第二個(gè)字母是c的人以及編號(hào),薪水,姓名
Select id,name,salary from emp where like name = ‘_c%’;
(6)范圍查找中between...and和in有什么區(qū)別
Between...and =? a>=1 and a<=4
In 是允許在where子句中規(guī)定多個(gè)值
Select * from emp where id in(1,2,3);
(7)MySQL如何做空值判斷?
Is null
Is not null
(8)排序使用什么關(guān)鍵字,默認(rèn)是升序還是降序?
Order by asc/desc;
默認(rèn)為asc:升序
desc:降序
5.MySQL 常用單行函數(shù)
(1)描述常用的日期函數(shù)
獲取當(dāng)前語言環(huán)境的時(shí)間:sysdate()? ? now()
(2)描述常用的轉(zhuǎn)換函數(shù)
將日期轉(zhuǎn)為字符串:Dateformat
date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s')
將字符串轉(zhuǎn)為日期:str_to_date
str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09
大寫Y代表四位年份小寫代表兩位

Lower:轉(zhuǎn)小寫
Upper:轉(zhuǎn)小寫
6. MySQL 多表查詢
(3)描述什么是等值連接,并舉例說明
Where子句用等號(hào)判斷的查詢語句
(4)描述什么是非等值連接,并舉例說明
Where子句不是等值判斷的查詢語句
(5)描述什么是自連接,并舉例說明
表自身連接自身
(6)描述什么是內(nèi)連接,并舉例說明
Inner
連接兩個(gè)表中的記錄,返回關(guān)聯(lián)字段相符的記錄,就是兩個(gè)表的交集部分
(7)外連接常見有哪些幾種?
MySQL:左外(left join) 右外(right join) 全外(union [all])
7.MySQL 聚合函數(shù)
(8)MySQL聚合函數(shù)有哪幾種?分別描述其功能。
寫常用的:
Sum(sal):最高工資
Min(sal):最低工資
Avg(sal):平均工資
count(*):計(jì)數(shù)(計(jì)算所有數(shù)據(jù)條數(shù))
8.MySQL 數(shù)據(jù)分組
(9)MySQL中如何創(chuàng)建數(shù)據(jù)分組?
Group by
(10)MySQL中如何約束分組結(jié)果?
Group by ... having子句