一牙勘,函數(shù)
一周叮,字符串函數(shù)
練習:
由于業(yè)務(wù)需求變更骇钦,企業(yè)員工的工號宛渐,統(tǒng)為5位數(shù),目前不足5位數(shù)的全部在前面補0眯搭。比如: 1號員工的工號應(yīng)該為00001:
update emp set workno = Lpad(workno, 5窥翩,'0');
二,數(shù)值函數(shù)
練習:通過數(shù)據(jù)庫的函數(shù)隨機生成一個六位數(shù)的驗證碼:
select lpad(round(rand()*100000,0),6,0);
三鳞仙,日期函數(shù)
練習:查詢所有員工的入職天數(shù)鳍烁,并根據(jù)入職天數(shù)倒序排序。
select name, datediff(curdate()繁扎, entrydate) as ' entrydays' from emp order by entrydays desc;
四,流程函數(shù)
流程函數(shù)也是很常用的一類函數(shù)糊闽,可以在SQL語句中實現(xiàn)條件篩選梳玫,從而提高語句的效率。
練習:查iemp表的員工姓名和工作地址(北京/上海---->一線城市右犹,其他---->- 二線城市)
select name
( case workaddress when '北京' then '一線城市' when '上海' then '一線城市' else 二線城市' end ) as '工作地址' from emp提澎;
五,練習
create table score(
id int comment 'ID',
name varchar(20) comment '姓名',
math int comment '數(shù)學(xué)',
english int comment '英語',
chinese int comment '語文'
)comment '學(xué)員成績表';
insert into score(id,name,math,english,chinese)VALUES(1,'Tom',67,88,95),
(2,'Rose',23,66,90),(3,'jack',56,98,76);
統(tǒng)計班級各個學(xué)員的成績念链,展示的規(guī)則如下:
>=85盼忌,展示優(yōu)秀
>= 60,展示及格
否則积糯,展示不及格
from score;
select
id,
name ,
(case when math >= 85 then '優(yōu)秀' when math >=60 then ' 及格'
else '不及格' end ) ' 數(shù)學(xué)',
(case when english >= 85 then '優(yōu)秀' when english >=60 then ' 及格' else '不及格' end ) ' 英語'谦纱,
(case when chinese >= 85 then '優(yōu)秀' when chinese >=60 then ' 及格' else ' 不及格' end ) '語文'
from score;
二看成,約束
1.分類:
練習
create table user(
id int primary key auto_ increment comment '主鍵'
name varchar(10) not null unique comment '姓名' ,
age int check ( age > 0 && age <= 120 ) comment '年齡'
status char(1) default '1' comment '狀態(tài) ',
gender char(1) comment ' 性別'
) comment '用戶表';
2.外鍵約束
(1)概念:外鍵用來讓兩張表的數(shù)據(jù)之間建立連接跨嘉,從而保證數(shù)據(jù)的一致性和完整性川慌。
(2)添加外鍵語法:
CREATE TABLE 表名(
字段名 數(shù)據(jù)類型,
...
[CONSTRAINT] [外鍵名稱] FOREIGN KEY (外鍵字段名) REFERENCES 主表(主表列名)
);
ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN(外鍵字段名)REFERENCES 主表(主表列名);
例:alter table emp add constraint fk_ emp_ dept_ id foreign key (dept_ id) references dept(id);
(3)刪除外鍵語法:
ALTER TABLE 表名DROP FOREIGN KEY(外鍵名稱)祠乃;
例:alter table emp drop foreign key fk_ emp_ dept_ id;
3.外鍵的刪除和更新行為:
行為NO ACTION 當在父表中刪除/更新對應(yīng)記錄時梦重,首先檢查該記錄是否有對應(yīng)外鍵,如果有則不允許刪除/更新亮瓷。(與 RESTRICT一致)RESTRICT當在父表中刪除/更新對應(yīng)記錄時琴拧,首先檢查該記錄是否有對應(yīng)外鍵,如果有則不允許刪除/更新嘱支。(與 NO ACTION - -致)CASCADE當在父表中刪除/更新對應(yīng)記錄時蚓胸,首先檢查該記錄是否有對應(yīng)外鍵,如果有斗塘,則也刪除/更新外鍵在子表中的記錄赢织。SET NULL當在父表中刪除對應(yīng)記錄時,首先檢查該記錄是否有對應(yīng)外鍵馍盟,如果有則設(shè)置子表中該外鍵值為null (這就要求該外鍵允許取null)于置。SET DEFAULT父表有變更時,子表將外鍵列設(shè)置成一個默認的值(Innodb不支持)
操作方法:
ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FORIGN KEY (外鍵字段) REFERENCES 主表名(主表字段名) ON UPDATE CASCADE ON DELETE CASCADE;