1. 程式人生 > 其它 >資料庫_儲存過程&正規化

資料庫_儲存過程&正規化

建立儲存過程的外殼

delimiter $

create procedure test(userId int)

begin



end $

delimiter ;

儲存過程if(begin  和   end $之間)

1、宣告變數username

declare username varchar(32) default ' ';

2、if語句

if(userId%2=0)

then

  #查詢語句,將使用者表的名字放到username變數

  select name into username from user where id=userId;

  #將變數username查出   select username; else   select userId; end if; if語句的結束標誌 儲存過程while(begin 和 end $之間) 1、宣告變數i declare i int default 0; 2、while語句 while(i<10) do   begin     select i;     set i=i+1;     insert into test(id)values(i);   end; end while; 結束迴圈 儲存過程repeat(begin 和 end $之間) 1、宣告變數i 2、repeat迴圈 repeat   begin     select i;     set i=i+1;     insert into test(id)values(i);   end; until i>=10 end repeat; 結束迴圈 建立函式 delimiter $ create function getusername(userid int) returns varchar(32) reads sql data -- 從資料庫中讀取資料,但不修改資料 begin declare username varchar(32) default ''; select name into username from users where id=userid; return username;#返回變數username end $ delimiter ; select getusername(2);

  第一正規化:資料庫表的每一列都是不可分割的基本資料項  

  第二正規化:在第一正規化的基礎上沒有部分依賴

部分依賴:某個屬性既依賴於主鍵又依賴於其他屬性,不能缺失任一個

  第三正規化:在第一正規化和第二正規化的基礎上沒有傳遞依賴

傳遞依賴 :  某個屬性既對應了主鍵又對應了其他屬性,可以缺失其中一個

-使用者名稱、密碼、註冊日期、生日、瀏覽商品編號、瀏覽商品名字、瀏覽商品日期、收藏商品編號
-收藏商品編號、收藏商品名字、收藏商品日期、商品編號、商品名字、商品類別、商品店鋪編號、店鋪名字、店家名字、購物車記錄、購買記錄


-使用者名稱、密碼、註冊日期、生日
-使用者名稱、瀏覽商品編號、瀏覽商品名字、瀏覽商品日期
-使用者名稱、收藏商品編號、收藏商品名字、收藏商品日期、商品編號
-商品編號、商品名字、商品類別、商品店鋪編號
-商品店鋪編號、店鋪名字、店家名字
-使用者名稱、購物車記錄、購買記錄

CREATE DATABASE taobao DEFAULT CHARSET utf8;
USE taobao;
CREATE TABLE register(USER VARCHAR(
20),PASSWORD CHAR(20),DATE DATE,birthday DATE); CREATE TABLE liulan(USER VARCHAR(20),liuId INT,liuName VARCHAR(20),liuDate DATE,PRIMARY KEY(USER,liuId)); CREATE TABLE shoucang(USER VARCHAR(20),shouId INT,shouName VARCHAR(20),shouDate DATE,shangId INT,PRIMARY KEY(USER,shouId)); CREATE TABLE shangpin(shangId INT,shangName VARCHAR(
20),shangLeibie VARCHAR(20),shangDpId INT,PRIMARY KEY(shangId,shangName)); CREATE TABLE spStore(spStoreId INT,StoreName VARCHAR(20),StoreHostName VARCHAR(20),PRIMARY KEY(spStoreId,StoreName)); CREATE TABLE jilu(USER VARCHAR(20) PRIMARY KEY,gouwucheJiLu VARCHAR(50),goumaiJiLu VARCHAR(50));