MySQL數(shù)據(jù)庫(kù)筆記
MySQL簡(jiǎn)介:
1、MySQL發(fā)展史:MySQL是my ess que ell而不是myseqel。開(kāi)發(fā)者是瑞典的MySQL AB公司的monty widenius,2008年被sun公司收購(gòu),09年又被Oracle公司收購(gòu)。
2、 MySQL的特點(diǎn):2.1免費(fèi)的2.2開(kāi)放源代碼的關(guān)系型數(shù)據(jù)管理系統(tǒng)2.3運(yùn)行速度最快等
常用表結(jié)構(gòu):
姓名:char(4)專業(yè):varchar(100)性別:char(1)學(xué)號(hào):char(6)總學(xué)分:decimal(4,1)照片:blob備注:text
課程號(hào):char(3)課程名:varchar(100)開(kāi)課學(xué)期:tinyint學(xué)時(shí):smallint學(xué)分:decimal(3,1)注意:數(shù)值型不能進(jìn)行加減乘除計(jì)算
常用命令:
注意:每條命令用分號(hào)結(jié)束,用回車執(zhí)行。
顯示服務(wù)器上所有的數(shù)據(jù)庫(kù): show databases;
將MySQL數(shù)據(jù)庫(kù)切換成當(dāng)前數(shù)據(jù)庫(kù):Use mysql;
顯示數(shù)據(jù)庫(kù)中所有的表格:database chamged;
顯示當(dāng)前數(shù)據(jù)庫(kù)中所有的表:Show tables;
創(chuàng)建數(shù)據(jù)庫(kù):(創(chuàng)建)create(數(shù)據(jù)庫(kù)) database (名稱)sbslsd;
打開(kāi)DOS窗口,以root身份登錄使用窗口+r鍵打開(kāi)dos窗口使用DOS命令,切換到MySQL的安裝目錄bin目錄下;
Cd .. Cd .. d: cd 地址(Program Files (x86)\MySQL\MySQL Server 5.5\bin)
輸入命令:mysql -h localhost -u root -p123456MySQL -u root -p123456退出:quit;或exit;Desc 表名(xs);
查看表的結(jié)構(gòu) desc xs;
指定字符集:create database if not exists showsb character set utf8;
查看數(shù)據(jù)庫(kù)的信息:show create database 數(shù)據(jù)庫(kù)名(showsb);
查看mysql服務(wù)器識(shí)別的字符集:show character set;
更改數(shù)據(jù)庫(kù)的字符集:alter database 數(shù)據(jù)庫(kù)名(softsb) default character set gb2312;
SQL語(yǔ)言
SQL是strcture query language 的縮寫(xiě),是關(guān)系型數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言結(jié)構(gòu)化 查詢 語(yǔ)言包括三個(gè)大的內(nèi)容:
A、 DDL數(shù)據(jù)定義語(yǔ)言:create database table ???????
B、 DML數(shù)據(jù)操縱語(yǔ)言:insert update delete
C、 DCL數(shù)據(jù)控制語(yǔ)言:grant??????創(chuàng)建視圖(視圖也叫虛擬表;表:基本表)使用create view 語(yǔ)句創(chuàng)建試圖,格式如下:
Create [ or replace(將現(xiàn)有的覆蓋) ] view view_nameAs select_statement[ with [cascaded | local ]check option ]
Replace:替換
Check:檢查
option:選項(xiàng)
Cascaded:級(jí)聯(lián)(默認(rèn))
local:本地簡(jiǎn)化創(chuàng)建視圖命令:Create view view_name As select_statementCreate view 視圖名 as 查詢語(yǔ)句
注意:視圖分為:可更新視圖和不可更新視圖。
1、 查看視圖的定義命令:Show create view view_name例:show create view 計(jì)算機(jī)專業(yè)_xsshow create view lssxcj_cjb;
2、 刪除已創(chuàng)建好的視圖命令:Drop view view_name
例:drop view 離散數(shù)學(xué)
例題1:在學(xué)生管理數(shù)據(jù)庫(kù)中為計(jì)算機(jī)專業(yè)的同學(xué)創(chuàng)建一個(gè)視圖
Create view 計(jì)算機(jī)專業(yè)_xs as select from xs where 專業(yè)=’計(jì)算機(jī)’ with check option;
使用show tables查看使用select from 視圖名_xs查看視圖中的數(shù)據(jù)
3、 創(chuàng)建學(xué)生成績(jī)視圖Create view 學(xué)生成績(jī)_xs_kc_cj asSelect 姓名,課程名,成績(jī) from xsl,kb,cjb where xsl.學(xué)號(hào)=cjb.學(xué)號(hào) andkb.課程號(hào)=cj.課程號(hào);
【說(shuō)明】
1. 若指定了【or replace】參數(shù),則表示如果存在同名的視圖,則覆蓋原來(lái)的視圖。
2. With check option:為可選項(xiàng),不指定該項(xiàng)不進(jìn)行相關(guān)檢查。而如果指定該選項(xiàng),則可指出在可更新視圖上所進(jìn)行的修改都要符合select_statement 所指定的限制條件,這樣可以確保數(shù)據(jù)修改后,仍可通過(guò)視圖看到修改的數(shù)據(jù),當(dāng)視圖是根據(jù)另一個(gè)視圖定義時(shí),with check option 給出兩個(gè)參數(shù):local(本視圖)和cascaded(級(jí)聯(lián)到所有下一級(jí)視圖)。
它們決定了檢查測(cè)試的范圍。可更新視圖要通過(guò)視圖更新基本表的數(shù)據(jù),必須保證視圖是可更新的,既可以在insert update等語(yǔ)句中當(dāng)中使用它們。
對(duì)于可更新的視圖,在視圖中的行為和基本表中的行之間具有一對(duì)一的關(guān)系。還有一些特定的其他結(jié)構(gòu),這類結(jié)構(gòu)會(huì)使得視圖不可更新。如果視圖含下述結(jié)構(gòu)中的任何一種,那么它就是不可更新的。
聚合函數(shù):max() sum() count() avg()等;
Distinct 關(guān)鍵字;Group by 子句;
Order by 子句;
Having 字句;
From 子句中包含多個(gè)表;
Select 語(yǔ)句中引用了不可更新的視圖Where子句中的子查詢,引用from子句中的表;視圖與表的區(qū)別視圖是從一個(gè)或多個(gè)表(或視圖)導(dǎo)出的虛擬表。
而表有時(shí)也稱為基本表——base table。即視圖所對(duì)應(yīng)的數(shù)據(jù)不進(jìn)行實(shí)際存儲(chǔ),數(shù)據(jù)庫(kù)中只存儲(chǔ)視圖的的定義,對(duì)視圖的數(shù)據(jù)進(jìn)行操作時(shí),系統(tǒng)根據(jù)視圖的定義去操作與視圖相關(guān)的基本表。在information_schema數(shù)據(jù)庫(kù)的tables表中有記錄。
Select table_schema,table_name,table_type from tables where table_schema=’xsgl2’;
視圖一經(jīng)定義后,就可以像表一樣被查詢、修改、刪除、更新。使用視圖有以下優(yōu)點(diǎn):
1、 為用戶集中數(shù)據(jù),簡(jiǎn)化用戶的數(shù)據(jù)查詢、修改、刪除和更新;
2、 屏蔽數(shù)據(jù)庫(kù)的復(fù)雜性;
3、 簡(jiǎn)化用戶的權(quán)限管理;
4、 便于數(shù)據(jù)共享;
5、 可以重新組織數(shù)據(jù)以便輸出到其他應(yīng)用程序中;
更多建議: