資料庫_儲存過程&正規化
阿新 • • 發佈:2022-04-09
建立儲存過程的外殼 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));