mysql存儲、function、觸發器等實例

一.建立數據庫&表數據庫

 1 DROP DATABASE IF EXISTS security;
 2 CREATE database security;
 3 USE security;
 4 CREATE TABLE users
 5 (
 6 id int(3) NOT NULL AUTO_INCREMENT,
 7 username varchar(20) NOT NULL,
 8 password varchar(20) NOT NULL,
 9 PRIMARY KEY (id)
10 );

二.存儲過程判斷帳號是否存在,不存在,插入用戶信息,返回消息;存在,返回信息函數

 1 #--存儲過程判斷帳號是否存在,不存在,插入用戶信息,返回消息;存在,返回信息
 2 CREATE PROCEDURE users01 (
 3     IN un VARCHAR (20),
 4     IN pd VARCHAR (20),
 5     OUT result nvarchar (50)
 6 )
 7 BEGIN
 8 
 9 IF EXISTS (
10     SELECT
11         *
12     FROM
13         users
14     WHERE
15         username = un
16 ) THEN
17 
18 SET result = '對不起,帳號已存在!';
19 
20 
21 ELSE
22     INSERT INTO users (username, PASSWORD)
23 VALUES
24     (un, pd);
25 
26 
27 SET result = '恭喜,用戶信息插入成功!';
28 
29 
30 END
31 IF;
32 
33 SELECT
34     result;
35 
36 
37 END;
38 #--調用存儲過程
39 CALL users01 (
40     'username01',
41     'password01' ,@result
42 );
43 #--刪除存儲過程
44 DROP PROCEDURE users01;
45 #--查看存儲狀態
46 SHOW PROCEDURE STATUS;

三.建立觸發器spa

1 #---建立觸發器
2 drop TRIGGER if exists test_tri;
3 CREATE TRIGGER test_tri BEFORE INSERT ON users FOR EACH row SET @num = @num + 1;
4 
5 #---實現觸發器
6 SET @num = 0;
7 INSERT INTO users (username,password) VALUES ('username02','password02');
8 SELECT @num;

四.建立函數code

 1 #--建立方法/函數
 2 DROP FUNCTION
 3 IF EXISTS getusername;
 4 
 5 CREATE FUNCTION getusername (un VARCHAR(20)) RETURNS VARCHAR (300)
 6 BEGIN
 7     RETURN (
 8         SELECT
 9             PASSWORD
10         FROM
11             users
12         WHERE
13             username = un
14     );
15 
16 
17 END;
18 
19 #--調用函數
20 SELECT
21     getusername ('username01');

五.視圖blog

1 #--建立視圖,查詢視圖
2 drop view if EXISTS test_view_1;
3 CREATE VIEW test_view_1 AS SELECT `username` FROM users;
4 select *from test_view_1;

六.刪除數據get

truncate TABLE users;
相關文章
相關標籤/搜索