欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)視圖

 更新時(shí)間:2022年08月03日 08:34:39   作者:面屏思過(guò)???????  
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)視圖,視圖是原始數(shù)據(jù)庫(kù)數(shù)據(jù)的一種變換,是查看表中數(shù)據(jù)的另外一種方式,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下

一、 數(shù)據(jù)視圖

視圖是原始數(shù)據(jù)庫(kù)數(shù)據(jù)的一種變換,是查看表中數(shù)據(jù)的另外一種方式。我們可以將視圖看成是一個(gè)移動(dòng)的窗口,從這個(gè)窗口中可以看到感興趣的數(shù)據(jù)。

二、數(shù)據(jù)視圖操作

創(chuàng)建視圖

// 標(biāo)準(zhǔn)語(yǔ)法: CREATE VIEW 視圖名稱 [(列名列表)] AS 查詢語(yǔ)句;

// 創(chuàng)建city_country視圖,保存城市和國(guó)家的信息(使用指定列名)
CREATE VIEW city_country(city_id,city_name,country_name) 
AS
SELECT c1.id, c1.name, c2.name FROM city c1, country c2 WHERE c1.cid = c2.id;

修改視圖數(shù)據(jù)

// 標(biāo)準(zhǔn)語(yǔ)法: UPDATE 視圖名稱 SET 列名=值 WHERE 條件;

// 注意:修改視圖數(shù)據(jù)后,源表中的數(shù)據(jù)也會(huì)隨之修改
UPDATE city_country SET city_name="深圳" WHERE city_name="北京";

修改視圖列明

// 標(biāo)準(zhǔn)語(yǔ)法: ALTER VIEW 視圖名稱 (列名列表) AS 查詢語(yǔ)句; 

ALTER VIEW city_country (city_id, city_name, NAME) AS 
SELECT c1.id, c1.name, c2.name
FROM  city c1, country c2
WHERE c1.cid = c2.id;

刪除視圖

// 標(biāo)準(zhǔn)語(yǔ)法 DROP VIEW [IF EXISTS] 視圖名稱;
// 刪除city_country視圖

DROP VIEW IF EXISTS city_country;

三、數(shù)據(jù)的備份與回復(fù)

liunx備份

備份文件:

mysqldump -u root -p 數(shù)據(jù)庫(kù)名稱 > 文件保存路徑

還原:

source 文件保存路徑

mysql備份

備份-> 導(dǎo)出備份數(shù)據(jù)庫(kù) 還原-> 導(dǎo)入備份文件

四、 MySQL存儲(chǔ)過(guò)程和函數(shù)

概念

  • 存儲(chǔ)過(guò)程和函數(shù)是 事先經(jīng)過(guò)編譯并存儲(chǔ)在數(shù)據(jù)庫(kù)中的一段 SQL 語(yǔ)句的集合

好處:

  • 可以重復(fù)使用,減輕開(kāi)發(fā)人員的工作量
  • 減少網(wǎng)絡(luò)流量,調(diào)用只需要傳遞參數(shù)名和參數(shù)即可
  • 減少數(shù)據(jù)在數(shù)據(jù)庫(kù)和應(yīng)用服務(wù)器之間的傳輸,可以提高數(shù)據(jù)處理的效率
  • 將部分邏輯在數(shù)據(jù)庫(kù)層進(jìn)行了處理,減少業(yè)務(wù)層代碼

區(qū)別:

  • 函數(shù)必須有返回值
  • 存儲(chǔ)過(guò)程沒(méi)有返回值

五、存儲(chǔ)過(guò)程操作

初始數(shù)據(jù)

-- 創(chuàng)建學(xué)生表
CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(20),
	age INT,
	gender VARCHAR(5),
	score INT
);
-- 添加數(shù)據(jù)
INSERT INTO student VALUES (NULL,'張三',23,'男',95),(NULL,'李四',24,'男',98),
(NULL,'王五',25,'女',100),(NULL,'趙六',26,'女',90);
-- 按照性別進(jìn)行分組,查詢每組學(xué)生的總成績(jī)。按照總成績(jī)的升序排序
SELECT gender, SUM(score) getSum FROM student GROUP BY gender ORDER BY getSum ASC;

創(chuàng)建過(guò)程

// 標(biāo)準(zhǔn)語(yǔ)法
// 
DELIMITER $
    -- 標(biāo)準(zhǔn)語(yǔ)法 
CREATE PROCEDURE 存儲(chǔ)過(guò)程名稱(參數(shù)列表)
BEGIN
    SQL 語(yǔ)句列表;
END $

-- 修改分隔符為分號(hào)
DELIMITER ;

// 創(chuàng)建stu_group()存儲(chǔ)過(guò)程,封裝 分組查詢總成績(jī),并按照總成績(jī)升序排序的功能
DELIMITER$
CREATE PROCEDURE stu_group()
BEGIN
	SELECT gender, SUM(score) getSum FROM student GROUP BY gender ORDER BY getSum ASC;
END$
DELIMITER ;

調(diào)用存儲(chǔ)過(guò)程

// CALL 存儲(chǔ)過(guò)程名稱(實(shí)際參數(shù));
CALL stu_group();

查找存儲(chǔ)過(guò)程

 // 標(biāo)準(zhǔn)語(yǔ)法: SELECT * FROM mysql.proc WHERE db='數(shù)據(jù)庫(kù)名稱';
SELECT * FROM mysql.proc WHERE db='demoMysql';

刪除存儲(chǔ)過(guò)程

//標(biāo)準(zhǔn)語(yǔ)法: DROP PROCEDURE [IF EXISTS] 存儲(chǔ)過(guò)程名稱;
DROP PROCEDURE IF EXISTS stu_group;

其他語(yǔ)法

// 定義變量
// 語(yǔ)法:DECLARE 變量名 數(shù)據(jù)類型 [DEFAULT 默認(rèn)值];
// 變量賦值
// 語(yǔ)法一:SET 變量名 = 變量值;
// 語(yǔ)法二:SELECT 列名 INTO 變量名 FROM 表名 [WHERE 條件];
// 判斷語(yǔ)句
// if語(yǔ)句
// IF 判斷條件1 THEN 執(zhí)行的sql語(yǔ)句1;
// [ELSEIF 判斷條件2 THEN 執(zhí)行的sql語(yǔ)句2;]
// ...
// [ELSE 執(zhí)行的sql語(yǔ)句n;]
// END IF;
DELIMITER $

CREATE PROCEDURE pro_test2()

BEGIN
	-- 定義變量
	DECLARE NAME VARCHAR(20);
        DECLARE totalScore INT;
        DECLARE info VARCHAR(10);
	-- 為變量賦值
	SET NAME = '賦值方式1';
        SELECT SUM(score) INTO totalScore FROM student;
	
        IF totalScore > 500 THEN
		SET info='總分超過(guò)500';
        END IF;
        -- 使用變量
	SELECT NAME,totalScore,info;
END$
DELIMITER;

// 參數(shù)傳遞
// 標(biāo)準(zhǔn)語(yǔ)法: CREATE PROCEDURE 存儲(chǔ)過(guò)程名稱([IN|OUT|INOUT] 參數(shù)名 數(shù)據(jù)類型)

DELIMITER $
CREATE PROCEDURE pro_test5(IN total INT, OUT info VARCHAR(10))
BEGIN
	-- 對(duì)總成績(jī)判斷
	IF total > 380 THEN
		SET info = '學(xué)習(xí)優(yōu)秀';
	ELSEIF total >= 320 AND total <= 380 THEN
		SET info = '學(xué)習(xí)不錯(cuò)';
	ELSE
		SET info = '學(xué)習(xí)一般';
	END IF;
END$
DELIMITER;

// 調(diào)用過(guò)程
CALL pro_test5(350,@info);
SELECT @info;

六、 存儲(chǔ)函數(shù)

其實(shí)和存儲(chǔ)過(guò)程區(qū)別不大,主要在于定義的時(shí)候用FUNCTION,同時(shí)有return

DELIMITER $
CREATE FUNCTION fun_test1()
RETURNS INT // 返回值類型
BEGIN
	DECLARE s_count INT;
	SELECT COUNT(*) INTO s_count FROM student WHERE score > 95;// 條件語(yǔ)句
	RETURN s_count;// 返回結(jié)果;
	
END $
DELIMITER ;
// 調(diào)用函數(shù)
SELECT fun_test1();

// 刪除函數(shù)
DROP FUNCTION fun_test1();

到此這篇關(guān)于MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)視圖的文章就介紹到這了,更多相關(guān)SQL數(shù)據(jù)視圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • DOS命令行窗口mysql中文顯示亂碼問(wèn)題解決方法

    DOS命令行窗口mysql中文顯示亂碼問(wèn)題解決方法

    MySQL的默認(rèn)編碼是Latin1,不支持中文,如何修改MySQL的默認(rèn)編碼呢,下面為大家詳細(xì)介紹下
    2014-05-05
  • 通過(guò)mysql show processlist 命令檢查mysql鎖的方法

    通過(guò)mysql show processlist 命令檢查mysql鎖的方法

    show processlist 命令非常實(shí)用,有時(shí)候mysql經(jīng)常跑到50%以上或更多,就需要用這個(gè)命令看哪個(gè)sql語(yǔ)句占用資源比較多,就知道哪個(gè)網(wǎng)站的程序問(wèn)題了。
    2010-03-03
  • MYSQL存儲(chǔ)過(guò)程 注釋詳解

    MYSQL存儲(chǔ)過(guò)程 注釋詳解

    這篇文章主要介紹MYSQL存儲(chǔ)的過(guò)程,本文圍繞MYSQL存儲(chǔ)詳細(xì)展開(kāi)文章內(nèi)容,并附上詳細(xì)代碼解析,需要的下伙伴可以參考一下,希望對(duì)你有所幫助
    2021-10-10
  • MySQL8.0中你必須要知道的索引新特性

    MySQL8.0中你必須要知道的索引新特性

    MySQL8.0索引新特性,支持降序索引,降序索引以降序存儲(chǔ)鍵值,下面這篇文章主要給大家介紹了關(guān)于MySQL8.0中你必須要知道的索引新特性的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 淺談mysql可有類似oracle的nvl的函數(shù)

    淺談mysql可有類似oracle的nvl的函數(shù)

    下面小編就為大家?guī)?lái)一篇淺談mysql可有類似oracle的nvl的函數(shù)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • mysql5.7.17 zip 解壓安裝詳細(xì)過(guò)程

    mysql5.7.17 zip 解壓安裝詳細(xì)過(guò)程

    這篇文章主要為大家詳細(xì)介紹了mysql5.7.17 zip 解壓安裝詳細(xì)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • CentOS下徹底卸載mysql的方法

    CentOS下徹底卸載mysql的方法

    這篇文章主要為大家詳細(xì)介紹了CentOS下徹底卸載mysql的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • MySQL中索引的優(yōu)化的示例詳解

    MySQL中索引的優(yōu)化的示例詳解

    索引是數(shù)據(jù)庫(kù)優(yōu)化最常用也是最重要的手段之一,通過(guò)索引通??梢詭椭脩艚鉀Q大多數(shù)的MySQL的性能優(yōu)化問(wèn)題。本文主要來(lái)講講索引優(yōu)化的方法,希望對(duì)大家有所幫助
    2023-02-02
  • mysql的分區(qū)技術(shù)詳細(xì)介紹

    mysql的分區(qū)技術(shù)詳細(xì)介紹

    這篇文章主要介紹了mysql的分區(qū)技術(shù)詳細(xì)介紹,本文講解了分區(qū)技術(shù)概述、分區(qū)的類型及分區(qū)操作等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 修改MySQL密碼的四種方法總結(jié)(適合初學(xué)者!)

    修改MySQL密碼的四種方法總結(jié)(適合初學(xué)者!)

    在日常使用數(shù)據(jù)庫(kù)的過(guò)程中,難免會(huì)遇到需要修改賬號(hào)密碼的情景,比如密碼太簡(jiǎn)單需要修改、密碼過(guò)期需要修改、忘記密碼需要修改等,下面這篇文章主要給大家介紹了關(guān)于修改MySQL密碼的四種方法,介紹的方法非常適合初學(xué)者,需要的朋友可以參考下
    2022-08-08

最新評(píng)論