mysql三大正規化及資料約束及查詢及儲存過程

2021-10-04 19:43:14 字數 4004 閱讀 4235

資料約束

連線查詢(多表查詢)

儲存過程

引數型別

會話變數(變數只在當前連線會中有效)

區域性變數

帶有輸入輸出引數的儲存過程

帶有判斷條件的儲存過程

帶有迴圈條件的儲存過程

接收表中的資料的儲存過程

觸發器

create table student(

id int,

name varchar(20),

gender varchar(20) default '男'

)

name varchar(20) not null,
id int unique,
id int primary key,
id int(4) zerofill primary key auto_increment,
create table dept(

id int primary key auto_increment,

deptname varchar(29)

)

create table employee(

id int primary key auto_increment,

name varchar(20),

deptid int,

constraint employee_dept_fk foreign key(deptid) references dept(id)

)

select employee.name,dept.deptname from employee,dept;
select e.name,d.deptname

from employee e,dept d

where e.deptid=d.id;

select e.name,d.deptname

from employee e

inner join dept d

on e.deptid=d.id;

select d.deptname,e.name

from dept d

left outer join employee e

on e.deptid=d.id;

select d.deptname,e.name

from employee e

right outer join dept d

on e.deptid=d.id;

delimit $

create procedure pro_test()

begin

select * from employee;

end$

-- 呼叫

call pro_test();

in:輸入引數

out:輸出引數

inout:輸入輸出引數

delimiter $

create procedure pro_findbyid(in eid int)

begin

select * from employee where id=eid;

end$

-- 呼叫

call pro_findbyid(3);

delimiter $

create procedure pro_findbyid(in eid int)

begin

select * from employee where id=eid;

end$

-- 呼叫

call pro_findbyid(3);

show varables:查詢全部變數

select @@變數名:檢視某個全域性變數

set 變數名=值:設定全域性變數

character_set_client:設定mysql資料庫接受資料的預設字串

character_set_results:mysql資料庫輸出資料的預設字符集

set @變數名=value:折這會話變數

select @變數:檢視會話變數set 變數=value:設定區域性變數

select 變數:檢視區域性變數

-- 宣告乙個會話變數去接受輸出引數

call pro_testbyout(@n);

-- 檢視會話變數

select @n;

delimiter $

create procedure pro_testbyinout(inout n varchar(10))

begin

select n;

set n='500';

end $

-- 建立會話變數

set @n='10';

-- 呼叫儲存過程

call pro_testbyinout(@n);

-- 檢視

select @n;

delimiter $

create procedure pro_testbyif(in num int,out str varchar(20))

begin

if num=1 then

set str='monday';

elseif num=2 then

set str='wendesday';

elseif num=3 then

set str='星期三';

else

set str='錯誤引數';

end if;

end $

call pro_testbyif(4,@n);

select @n;

delimiter $

create procedure pro_testbywhile(in num int, out vsum int)

begin

-- 宣告區域性變數

declare i int default 1;

declare asum int defalt 0;

while iset asum=asum+i;

set i=i+1;

end while;

set vsum=asum;

end$

call pro_testbywhile(200,@vsum);

select @vsum;

delimiter $

create procedure pro_findbyid2(in eid int,out aname varchar(20))

begin

select name into aname from employee where id =eid;

end$

call pro_findbyid2(3,@aname);

select @aname;

create trigger test_insert

after insert on employee

for each row

insert into body(contendt)values('往員工插入了一條資料');

create trigger test_delete 

after delete on student

for each row

insert into body(content)values('往員工表刪除了一條資料');

Mysql常見約束及三大正規化

一種限制,用於限制表中的資料,為了保證表中資料的準確性和可靠性 1.not null 非空,用於保證該字段的值不能為空。例如學生表的學生姓名及學號等等。2.default 預設值,用於保證該字段有預設值。例如學生表的學生性別 3.primary key 主鍵,用於保證該字段的值具有唯一性並且非空。例...

Mysql資料庫約束和三大正規化

show databases use db show tables select from stu 約束 主鍵約束 primary key 非空且唯一 非空約束 not null 唯一約束 unique 外來鍵約束 foreign key create table stu2 id int prima...

資料庫三大正規化及五大約束的描述

實體 表 屬性 表中的資料 字段 關係 表與表之間的關係 資料庫設計三大正規化 重點 第一正規化 1nf 資料表中的每一列 每個字段 必須是不可拆分的最小單元,也就是確保每一列的原子性 例如 userinfo 山東省煙台市 131777368781 userads 山東0省煙台市 usertel 1...