sql基礎語句大集合,sql語句大集合
每次都習慣於使用SQL Sever直接設計資料庫,而沒有把對SQL語句引起足夠的重視,借這次機房合作版重構的機會,使用SQL語句來一次資料庫設計,同時對SQL語句的基本用法做一下梳理。
【分類】
SQL語句有9種,按照功能劃分類別可大體分為4種:
1.查詢語句:select ----資料庫中最常用用的語句
2.資料定義:create,drop,alter----針對資料庫和資料表以及表中的欄位進行的操作
3.資料操縱:insert,update,delete----傳說中的“增刪改查”,針對具體的資料進行的操作
4.資料控制:grant,revoke----許可權的定義和刪除
【語句匯總】 1.建立資料庫
create database RechargeSystemon primary --主檔案組(/*資料檔案的具體描述*/name='RechargeSystem_data', --主要資料檔案的邏輯名稱filename='G:\RechargeSystem\RechargeSystem_data.mdf', --主要資料檔案的實體名稱size=5mb, --初始大小maxsize=100mb, --增長最大值filegrowth=15% --主要資料檔案增長率)log on(/*記錄檔的具體描述*/name='RechargeSystem_log',filename='G:\RechargeSystem\RechargeSystem_log.ldf',size=2mb,filegrowth=1mb)
學過作業系統的話對這些定義語句並不會非常陌生,資料庫組檔案也是一種檔案,需要有邏輯名稱(即檔案名稱)、實體名稱(在磁碟中真實儲存地址)、檔案大小等;記錄檔記錄著資料庫中所有的邏輯操作,優缺點等詳細內容見百度百科:記錄檔
2.基本表操作-------------------------------------------------------------------------------------------------------------------------------------------- create table <基本表名> ---建立表格 (<列名 類型 not null>, primary key(列名,列名),--主鍵約束 foreign key (<列名>) references tableName(<列名>),--外鍵約束);-------------------------------------------------------------------------------------------------------------------------------------------- alter table <表名> add <列名><資料類型> --添加列
可以設定已經建立好的表的主外鍵: alter table <表名> add primary key(<列名>,<列名>) alter table<表名> add foreign key(<列名>) references tableName(<列名>)
刪除某列:alter table<表名> drop <列名>[cascade|restrict] --restrict將列的視圖和約束也會扇區--------------------------------------------------------------------------------------------------------------------------------------------- drop table<表名>[cascade|restrict] --刪除表格,有約束條件時必須要加上restict 3. 查詢語句: 常規的查詢語句為:select * from datatable 需要注意的是從多張表裡查詢的嵌套和串連查詢,這種組合關係常用在M:N關係中尋找對應關係。 select TB1.column1,TB1.column2 from TB1 where TB1.column1 in(select column1 from TB2 where TB2.column2="特定值"); 這種關係對於邏輯混亂的使用者來說不建議常用,特別容易造成尋找失敗。-------------------------------------------------------------------------------------------------------------------------------------------- 此外,SQL查詢語句還提供了基本的彙總函式,便於查詢使用: count(*) -----------------------計算元組的個數,即一共有多少列 count(<列名>)----------------一列中值的個數的計算 sum(<列名>)---------------------一列值的總和(數值型) avg(<最大值>)---------------平均值(必須為數值型) max(<列名>)-----------------最大值 min(<列名>)----------------------最小值 eg:select count(distinct s#)from T_student ,加distinct以後,多個學號重複出現時只能按照一個計算--------------------------------------------------------------------------------------------------------------------------------------------- 完整語義機構: select <列名或運算式序列> from<表名或視圖序列> where <行運算式> group by <列名> -------------------------------根據某一欄位進行的分組 having<組條件運算式> --------------------不符合組條件的資訊被濾除 order by <列名 [asc|desc]> ------------------asc升序排列,desc降序排列---------------------------------------------------------------------------------------------------------------------------------------------- 特殊查詢需求: 1.比較操作:<,<=,>,>=,!= 2.匹配操作:%---與零個或多個字元組成的字元匹配,"_"單個字元匹配 3.空值is Null 4.彙總資源比較:in、some、any、all 5.集合是否為非空:exitsts ---非空為true,否則為false 6.集合是否存在重複元組:unique--------重複為true,否則false-----------------------------------------------------------------------------------------------------------------------------------------------4.資料動作陳述式 插入:insert into <表名>(<列名>,<列名>...)values('數值',‘數值’) 刪除:delete from <表名> where 條件 修改:update <表名> set
5.嵌入式SQL使用技術,平時使用的執行視圖、預存程序等添加exec來執行【總結】 知識總是這樣,每一遍學習都會有不一樣的收穫,尤其是在使用過後就會去試著比較不同的方法有什麼樣的區別,期待接下來對資料庫檢視、預存程序以及安全性設定的比較學習。