MySQL sql基礎(chǔ)語(yǔ)句大集合

? ? ? ? 每次都習(xí)慣于使用sql sever直接設(shè)計(jì)數(shù)據(jù)庫(kù),而沒(méi)有把對(duì)sql語(yǔ)句引起足夠的重視,借這次機(jī)房合作版重構(gòu)的機(jī)會(huì),使用sql語(yǔ)句來(lái)一次數(shù)據(jù)庫(kù)設(shè)計(jì),同時(shí)對(duì)sql語(yǔ)句的基本用法做一下梳理。

【分類(lèi)】

? ? ? ?SQL語(yǔ)句有9種,按照功能劃分類(lèi)別可大體分為4種:

? ? ? ?1.查詢語(yǔ)句:select —-數(shù)據(jù)庫(kù)中最常用用的語(yǔ)句

? ? ? ?2.數(shù)據(jù)定義:create,drop,alter—-針對(duì)數(shù)據(jù)庫(kù)和數(shù)據(jù)表以及表中的字段進(jìn)行的操作

? ? ? ?3.數(shù)據(jù)操縱:insert,update,delete—-傳說(shuō)中的“增刪改查”,針對(duì)具體的數(shù)據(jù)進(jìn)行的操作

? ? ? ?4.數(shù)據(jù)控制:grant,revoke—-權(quán)限的定義和刪除

【語(yǔ)句匯總】

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

create?database?RechargeSystem  on?primary????--主文件組  (  	/*數(shù)據(jù)文件的具體描述*/  	name='RechargeSystem_data',??--主數(shù)據(jù)文件的邏輯名稱(chēng)  	filename='G:RechargeSystemRechargeSystem_data.mdf',??--主數(shù)據(jù)文件的物理名稱(chēng)  	size=5mb,???????--初始大小  	maxsize=100mb,??--增長(zhǎng)最大值  	filegrowth=15%???--主數(shù)據(jù)文件增長(zhǎng)率  )  log?on  (  	/*日志文件的具體描述*/  	name='RechargeSystem_log',  	filename='G:RechargeSystemRechargeSystem_log.ldf',  	size=2mb,  	filegrowth=1mb  )

? ? ? ? 學(xué)過(guò)操作系統(tǒng)的話對(duì)這些定義語(yǔ)句并不會(huì)非常陌生,數(shù)據(jù)庫(kù)組文件也是一種文件,需要有邏輯名稱(chēng)(即文件名稱(chēng))、物理名稱(chēng)(在磁盤(pán)中真實(shí)存儲(chǔ)地址)、文件大小等;日志文件記錄著數(shù)據(jù)庫(kù)中所有的邏輯操作,優(yōu)缺點(diǎn)等詳細(xì)內(nèi)容見(jiàn)百度百科:日志文件

?2.基本表操作

--------------------------------------------------------------------------------------------------------------------------------------------  ???????create?table????---建立表格  ???????????????(,  ?????????????????primary?key(列名,列名),--主鍵約束  ?????????????????foreign?key?()?references?tableName(),--外鍵約束);  --------------------------------------------------------------------------------------------------------------------------------------------  ??????alter?table??add???--添加列

?可以設(shè)置已經(jīng)建立好的表的主外鍵:

??alter?table??add?primary?key(,)  ??????alter?table?add?foreign?key()?references?tableName()

? ? ? 刪除某列:alter table drop [cascade|restrict] –restrict將列的視圖和約束也會(huì)扇區(qū)

———————————————————————————————————————————————

? ? ? drop table[cascade|restrict] ? –刪除表格,有約束條件時(shí)必須要加上restict

? ? ??

? ? 3. 查詢語(yǔ)句:

? ? ? ?常規(guī)的查詢語(yǔ)句為:select * from ?datatable

? ? ? ? 需要注意的是從多張表里查詢的嵌套和連接查詢,這種組合關(guān)系常用在M:N關(guān)系中查找對(duì)應(yīng)關(guān)系。

?select?TB1.column1,TB1.column2  ????????????????from?TB1  ????????????????where?TB1.column1?in(select?column1  ?????????????????????????????????????????????????????????from?TB2  ????????????????????????????????????????????????????????where?TB2.column2="特定值");

? ? ? ? 這種關(guān)系對(duì)于邏輯混亂的使用者來(lái)說(shuō)不建議常用,特別容易造成查找失敗。

——————————————————————————————————————————————–

? ? ? ? 此外,SQL查詢語(yǔ)句還提供了基本的聚合函數(shù),便于查詢使用:

? ? ? ? count(*) ———————–計(jì)算元組的個(gè)數(shù),即一共有多少列

? ? ? ? count()—————-一列中值的個(gè)數(shù)的計(jì)算

? ? ? ? sum()———————一列值的總和(數(shù)值型)

? ? ? ? avg()—————平均值(必須為數(shù)值型)

? ? ? ? max()—————–最大值

? ? ? ? min()———————-最小值

? ? ? ?eg:select count(distinct s#)from T_student ?,加distinct以后,多個(gè)學(xué)號(hào)重復(fù)出現(xiàn)時(shí)只能按照一個(gè)計(jì)算

———————————————————————————————————————————————

? ? ? ?完整語(yǔ)義機(jī)構(gòu):

? ? ? ? ? select

? ? ? ? ? from ? ? ?

? ? ? ? ? where

? ? ? ? ? group by ?——————————-根據(jù)某一字段進(jìn)行的分組

? ? ? ? ? ? ? having ?——————–不符合組條件的信息被濾除

? ? ? ? ? order by ?——————asc升序排列,desc降序排列

———————————————————————————————————————————————-

? ? ? ?特殊查詢需求:

? ? ? ?1.比較操作:,>=,!=

? ? ? ?2.匹配操作:%—與零個(gè)或多個(gè)字符組成的字符匹配,”_”單個(gè)字符匹配

? ? ? ?3.空值is Null

? ? ? ?4.聚合資源比較:in、some、any、all

? ? ? ?5.集合是否為非空:exitsts ? ?—非空為true,否則為false

? ? ? ?6.集合是否存在重復(fù)元組:unique——–重復(fù)為true,否則false

———————————————————————————————————————————————–

4.數(shù)據(jù)操作語(yǔ)句

? ? ? ?插入:insert into (,…)values(‘數(shù)值’,‘?dāng)?shù)值’)

? ? ? ?刪除:delete from where 條件

? ? ? ?修改:update set?

5.嵌入式SQL使用技術(shù),平時(shí)使用的執(zhí)行視圖、存儲(chǔ)過(guò)程等添加exec來(lái)執(zhí)行

【總結(jié)】

? ? ? ?知識(shí)總是這樣,每一遍學(xué)習(xí)都會(huì)有不一樣的收獲,尤其是在使用過(guò)后就會(huì)去試著比較不同的方法有什么樣的區(qū)別,期待接下來(lái)對(duì)數(shù)據(jù)庫(kù)視圖、存儲(chǔ)過(guò)程以及安全性設(shè)置的比較學(xué)習(xí)。

?以上就是MySQL sql基礎(chǔ)語(yǔ)句大集合的內(nèi)容,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP中文網(wǎng)(www.php.cn)!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享
站長(zhǎng)的頭像-小浪學(xué)習(xí)網(wǎng)月度會(huì)員