MySQL數(shù)據(jù)庫(kù)創(chuàng)建萄焦、表的創(chuàng)建、存儲(chǔ)過(guò)程冤竹、觸發(fā)器

一拂封、基本內(nèi)容

(1) 使用SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù);
(2) 為數(shù)據(jù)庫(kù)分配管理權(quán)限鹦蠕;
(3) 定義表和數(shù)據(jù)庫(kù)的完整性冒签,student(學(xué)生表),course(課程表)和 sc(學(xué)生選課表)钟病,
    并設(shè)置各個(gè)表之間的聯(lián)系萧恕,設(shè)置表的主鍵和每個(gè)表對(duì)應(yīng)的外鍵約束;
(4) 查看三個(gè)表的完整性肠阱,錄入三個(gè)表的元組數(shù)據(jù)票唆,觀察設(shè)置外鍵的作用;
(5) 使用 select * from student... 等SQL語(yǔ)句進(jìn)行數(shù)據(jù)的查詢辖所,觀察實(shí)驗(yàn)結(jié)果
(6) 為eduTest數(shù)據(jù)庫(kù)的基本表創(chuàng)建視圖惰说、索引,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的完整性操作缘回;
(7) eduTest數(shù)據(jù)庫(kù)吆视,分配用戶權(quán)限;

二酥宴、SQL語(yǔ)句

1.數(shù)據(jù)庫(kù)的創(chuàng)建:

(1) 數(shù)據(jù)庫(kù)創(chuàng)建代碼:

CREATE DATABASE eduTest DEFAULT CHARACTER SET utf8;

(2)查詢數(shù)據(jù)庫(kù):

SHOW DATABASES;
image.png

(3) 修改數(shù)據(jù)庫(kù)的默認(rèn)字符集:

ALTER DATABASE eduTest DEFAULT CHARACTER SET utf8;
image.png
ALTER DATABASE eduTest DEFAULT CHARACTER SET gbk;
image.png

2.數(shù)據(jù)庫(kù)中表建立的代碼:

(1)course表:

CREATE TABLE course(
    id INT PRIMARY KEY AUTO_INCREMENT,
    sname VARCHAR(20) NOT NULL UNIQUE,
    presourse VARCHAR(20) NOT NULL,
    remark VARCHAR(40)
);
image.png

(2)student表:

CREATE TABLE student(
    id INT PRIMARY KEY AUTO_INCREMENT,
    sno INT(8) ZEROFILL NOT NULL,
    sname VARCHAR(20) NOT NULL,
    sId INT ,
    CONSTRAINT student_course_fk FOREIGN KEY(sId) REFERENCES course(id)  
);
image.png

(3)sc表

CREATE TABLE sc(
    scId INT PRIMARY KEY AUTO_INCREMENT,
    sno INT(8) ZEROFILL NOT NULL,
    grade INT NOT NULL,
    courseId INT NOT NULL,
    remark VARCHAR(20),
    CONSTRAINT sc_course_fk FOREIGN KEY(courseId) REFERENCES course(id)
);
image.png

3. 外鍵的約束

image.png
由于courseId作為外鍵參考于course表的id啦吧,當(dāng)添加的courseId的值在course表中id 不存在時(shí),當(dāng)前值是不能插入到數(shù)據(jù)庫(kù)當(dāng)中去的拙寡。

4.在數(shù)據(jù)庫(kù)eduTest中創(chuàng)建視圖便于對(duì)數(shù)據(jù)的保護(hù):

(1)將student表中的某些字段單獨(dú)提取出來(lái)作為給數(shù)據(jù)庫(kù)用戶使用的基本 表授滓,便于對(duì)重要字段的素具進(jìn)行保密:

Cs系的student_sc視圖:

/*為每一個(gè)系的學(xué)生分別創(chuàng)建視圖*/
CREATE VIEW student_sc AS SELECT student.* FROM student WHERE student.sdept='cs';
image.png

Is系的student_is視圖:

CREATE VIEW student_is AS SELECT student.* FROM student WHERE student.sdept='is';
image.png

Net系的student_net視圖:

CREATE VIEW student_net AS SELECT student.* FROM student WHERE student.sdept='net'; 
image.png

Soft系的student_soft視圖:

CREATE VIEW student_soft AS SELECT student.* FROM student WHERE student.sdept='soft'; 
image.png

5.視圖的作用

(1)試圖能夠簡(jiǎn)化用戶的操作;效果:視圖機(jī)制使用戶可以把主要的精力花費(fèi)在數(shù)據(jù)上,而不是直接來(lái)自哪個(gè)基本表般堆。
(2)視圖能使用戶從多種角度去分析數(shù)據(jù)的作用在孝;
效果:在許多用戶同時(shí)訪問(wèn)同一數(shù)據(jù)的時(shí)候比較重要。
(3)試圖對(duì)重構(gòu)的數(shù)據(jù)庫(kù)提供了一定程度的邏輯性淮摔;
效果:可以增加表的字段私沮,也可以在創(chuàng)建視圖的時(shí)候摘要自己需要的數(shù)據(jù)項(xiàng)。
(4)試圖能夠?qū)C(jī)密數(shù)據(jù)進(jìn)行安全性保護(hù)和橙;
效果:可以將機(jī)密的字段進(jìn)行保護(hù)仔燕,可以不用顯示給用戶。
(5)適當(dāng)?shù)倪\(yùn)用視圖可以更清晰的表達(dá)查詢魔招;

6.創(chuàng)建數(shù)據(jù)庫(kù)更新操作的日志表

/創(chuàng)建日志表信息對(duì)表操作完成后觸發(fā)寫(xiě)進(jìn)日志表/

CREATE TABLE text_log(
    id INT PRIMARY KEY AUTO_INCREMENT, 
    opra_table VARCHAR(20) NOT NULL,
    opra_type VARCHAR(20) NOT NULL,
    opra_remark VARCHAR(20)
);

7.創(chuàng)建存儲(chǔ)過(guò)程

/創(chuàng)建批插入的存儲(chǔ)過(guò)程晰搀,觸發(fā)插入操作對(duì)應(yīng)的觸發(fā)器/

DELIMITER $
CREATE PROCEDURE insert_student(IN sno_start INT, IN sno_end INT)
 BEGIN
    DECLARE i INT DEFAULT 0;
    SET i=sno_start;
    WHILE i<=sno_end DO
        INSERT INTO student(sno,sname,sage,ssex,sdept) 
        VALUE(i,'安雨軒',18+i-sno_start,'女','net');
        SET i=i+1;
    END WHILE;
 END 
$

/創(chuàng)建批刪除的存儲(chǔ)過(guò)程,觸發(fā)刪除操作對(duì)應(yīng)的觸發(fā)器/

DELIMITER $
CREATE PROCEDURE delete_student(IN sno_start INT, IN sno_end INT)
 BEGIN
    DECLARE i INT DEFAULT 0;
    SET i=sno_start;
    WHILE i<=sno_end DO
         DELETE FROM student WHERE student.sno=i;
         SET i=i+1;
    END WHILE;
 END 
$

8.觸發(fā)器的創(chuàng)建:
/創(chuàng)建student表插入的觸發(fā)器/

CREATE TRIGGER trigger_insert_student AFTER INSERT ON student FOR EACH ROW 
INSERT INTO text_log(opra_table,opra_type,opra_remark) VALUE('student','insert','插入');

/刪除觸發(fā)器pro_insert_student/

DROP TRIGGER trigger_insert_student;

/創(chuàng)建student表刪除的觸發(fā)器/

CREATE TRIGGER trigger_delete_student AFTER DELETE ON student FOR EACH ROW 
INSERT INTO text_log(opra_table,opra_type,opra_remark) VALUE('student','delete','刪除');

/創(chuàng)建student_test表刪除的觸發(fā)器/

CREATE TRIGGER trigger_delete_student_test AFTER DELETE ON student_test FOR EACH ROW
 INSERT INTOtext_log(opra_table,opra_type,opra_remark) VALUE('student','delete','刪除');
DELETE FROM student_test WHERE student_test.sno=04151079;

/創(chuàng)建student_test表插入的觸發(fā)器/

CREATE TRIGGER trigger_insert_student_test AFTER INSERT ON student_test FOR EACH ROW 
INSERT INTO text_log(opra_table,opra_type,opra_remark) VALUE('student','insert','插入');

/刪除觸發(fā)器pro_insert_student_test/

DROP TRIGGER trigger_insert_student_test;
SELECT * FROM text_log;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末办斑,一起剝皮案震驚了整個(gè)濱河市外恕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌俄周,老刑警劉巖吁讨,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異峦朗,居然都是意外死亡建丧,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)波势,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)翎朱,“玉大人,你說(shuō)我怎么就攤上這事尺铣∷┣” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵凛忿,是天一觀的道長(zhǎng)澈灼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)店溢,這世上最難降的妖魔是什么叁熔? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮床牧,結(jié)果婚禮上荣回,老公的妹妹穿的比我還像新娘。我一直安慰自己戈咳,他們只是感情好心软,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布壕吹。 她就那樣靜靜地躺著,像睡著了一般删铃。 火紅的嫁衣襯著肌膚如雪耳贬。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天泳姐,我揣著相機(jī)與錄音效拭,去河邊找鬼暂吉。 笑死胖秒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慕的。 我是一名探鬼主播阎肝,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼肮街!你這毒婦竟也來(lái)了风题?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嫉父,失蹤者是張志新(化名)和其女友劉穎沛硅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體绕辖,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摇肌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仪际。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片围小。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖树碱,靈堂內(nèi)的尸體忽然破棺而出肯适,到底是詐尸還是另有隱情,我是刑警寧澤成榜,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布框舔,位于F島的核電站,受9級(jí)特大地震影響赎婚,放射性物質(zhì)發(fā)生泄漏刘绣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一惑淳、第九天 我趴在偏房一處隱蔽的房頂上張望额港。 院中可真熱鬧,春花似錦歧焦、人聲如沸移斩。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)向瓷。三九已至肠套,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間猖任,已是汗流浹背你稚。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朱躺,地道東北人刁赖。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像长搀,于是被迫代替她去往敵國(guó)和親宇弛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容