SQL大部分關鍵字 與 語法.doc_第1頁
SQL大部分關鍵字 與 語法.doc_第2頁
SQL大部分關鍵字 與 語法.doc_第3頁
SQL大部分關鍵字 與 語法.doc_第4頁
SQL大部分關鍵字 與 語法.doc_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

【數(shù)據(jù)庫的文件】*.mdf 主數(shù)據(jù)文件*.ldf 日志數(shù)據(jù)文件 支持數(shù)據(jù)恢復,當出現(xiàn)錯誤時可以完成自動還原*.ndf 輔助文件 分擔主數(shù)據(jù)庫數(shù)據(jù)【SQLServer登錄方式】Windows登錄 通過系統(tǒng)提供基于administrators管理員身份的用戶登錄SQLServer和windows 使用SQLServer帳號登錄 用戶sadbo 【庫的創(chuàng)建】create database on( name = 文件名稱, 注意:一定要用 , 區(qū)分每個屬性的設定filename = 絕對路徑/數(shù)據(jù)文件名.mdf ,size = 分配的空間(MB) , 注意:在未定義此屬性時,默認 1 MB maxsize = 將文件增長限制為(MB) , 注意:在未定義此屬性時, 默認文件增長不受限制,定義后,要注意,此定義的值不能小于分配的空間的值filegrowth = 文件自動增長(KB / %) 注意:在未定義此屬性時,默認增長10 最小64KB)log on(name = 文件名稱,filename = 絕對路徑/日志數(shù)據(jù)文件名.ldf ,size = 分配的空間(MB) , maxsize = 將文件增長限制為(MB) ,filegrowth = 文件自動增長(KB / %)【改變庫的文件】alter database 修改一個文件modify file ( name = 文件名 注意:此屬性必須填寫,用來確定具體的文件size = 分配的空間(MB) , 注意:修改的值應大于原來的值maxsize = 將文件增長限制為(MB) ,filegrowth = 文件自動增長(KB / %))增加一個數(shù)據(jù)文件add file(name = 文件名稱,filename = 絕對路徑/數(shù)據(jù)文件名.mdf /ndf ,size = 分配的空間(MB) , maxsize = 將文件增長限制為(MB) ,filegrowth = 文件自動增長(KB / %)增加一個日志文件add log file(name = 文件名稱,filename = 絕對路徑/日志文件名.ldf ,size = 分配的空間(MB) , maxsize = 將文件增長限制為(MB) ,filegrowth = 文件自動增長(KB / %)刪除一個文件remove file 注意:不能從數(shù)據(jù)庫中刪除主數(shù)據(jù)文件或主日志文件?!静僮餍畔⒌拇鎯^程】sp_helpdb 顯示具體數(shù)據(jù)庫的結構信息sp_renamedb , 對數(shù)據(jù)庫的重命名【刪除數(shù)據(jù)庫】drop database 表中數(shù)據(jù)類型整數(shù)型bigint 19位int 10位smallint 5位tinyint 3位Numeric 1 38位 浮點型float 53位decimal 1 38 位 不會四舍五入money 19位 4位小數(shù)位數(shù) 可以四舍五入smallmoney 10位 4位小數(shù)位數(shù) 可以四舍五入日期類型datetime 1753年1月1日 9999年12月31日smalldatetime 1990年1月1日 2079年6月6日加n表示可以支持unicode字符型char ncharvarchar nvarchar例子: char(6) varchar(6) abcdechar(6)abcde varchar(6)abcde大字段類型text ntextimage在關系型數(shù)據(jù)庫中,一般需要對表需要確定主鍵關系。主鍵:具備檢索作用,可以確定數(shù)據(jù)邏輯的唯一型,最多可以設定16個列的主鍵聲明來確定主鍵約束的唯一。主鍵類型: 1 自然主鍵 (text , image不允許做主鍵使用) 2 代理主鍵 (只能使用整數(shù)類型) identity【創(chuàng)建表】create table ( 列名 數(shù)據(jù)類型(長度) not null / 默認為 null , 注意: 逗號用來區(qū)分多個列屬性的定義 )SQLServer中允許我們添加的約束constraint 約束類型主鍵 : primary key 例: constraint tb_PK primary key(column,.)注意:如果只用一個列來描述主鍵,那么,可以在此列后直接聲明 例:列名 類型(長度) primary key唯一 : unique例: constraint tb_UQ unique (column) 或者 列名 類型(長度) unique 效驗 : check 例: constraint tb_CK check(表達式) 或者 列名 類型(長度) check(表達式)外鍵 : foreign key 例: constraint tb_FK foreign key(column) references p_tb(PK_column) 或者 列名 類型(長度) references p_tb(PK_column)缺省 : default 對應類型的值標識創(chuàng)建: identity (標識種子,標識增量)【刪除表】drop table 【表關系設計】 多 對 一 many to one一 對 一 one to one一對多例子: 主 外CustomersOrdersIdNameSexIdCreatedateOrderdesc.Customer_id關系設計原則:外表中增加一個外鍵,此外鍵來源與主表的主鍵張三 此表設計了一個客戶對應多個訂單的概念但此設計在數(shù)據(jù)庫中無法進行表數(shù)據(jù)描述訂單1訂單2訂單3訂單1張三訂單2張三訂單3李四一對一例子:主 外AccountfindpasswdId UsernamepasswordIdoldpasswdpasswdtypeanswer關系設計原則:定義表之間公用一個主鍵的原則,外鍵表中在同時建立與主鍵表的主外鍵關系多對多 主 主TeacherIdtnamesexClassIdcnamenodescTeacherAndClassTeacher_idClass_id多對多是通過兩個多對一來完成的,中間表中的主鍵是約束數(shù)據(jù)唯一型的ClassesIdNameTeachersId NameTeacherAndclassId Teacher_idClass_id 注意: 刪除時,如果表與表間存在關系,那么,我們應該先刪除外方表,在刪除主方表【改變表結構】alter table 增加列字段 add 列名 類型(長度) 刪除字段 (注意:綁定約束條件的字段,不可刪除) drop column 列名修改字段名稱 (注意:修改名稱,會影響存儲過程,觸發(fā)器,字段對應約束等相關信息)sp_rename tbname . oldcolumn , newoldcolumn 增加約束add constraint 約束類型 刪除約束Drop 【修改表名】sp_rename oldtbname , newtbname【數(shù)據(jù)操作】查詢select 【函數(shù)】時間函數(shù): 日期組件: year , month , day , week , hour , minute , second year(時間字符串) mouth(時間字符串) day(時間字符串) datepart(日期組件,時間字符串) getdate() 獲得系統(tǒng)當前時間 返回整型 datename(日期組件,時間字符串) 返回字符型 dateadd(日期組件,增加數(shù)量, 時間字符串) 基于組件,進行時間定義 datediff (日期組件, 時間字符串1, 時間字符串2) 按照組件以時間字符串2 減 時間字符串1 convert(顯示類型, 時間字符串,格式編碼) 轉換時間格式例題:完成數(shù)據(jù)庫文件每天備份的一個方法! 1 如何備份一個文件 backup database to disk = 路徑/ 文件名稱.dat2 變量的聲明與定義 declare 變量名稱 數(shù)據(jù)類型(長度);3 給變量賦值 set 變量名稱 = 值 將右方的值賦給了左方的變量4 “+” 對應字符串操作,此 ”+” 代表連接5 打印 print 變量名稱6 將此變量與備份語句合并declare url varchar(100)set url = D:backup + convert(varchar,getdate(),112) + new4.datprint urlbackup database new4 to disk = url【查詢表信息】select distinct | top # from where group by having order by asc | desc 【邏輯運算符】 , = , != , , = ,= , and , or between 值 and 值 = and = not between 值 and 值【特殊運算符】is null , is not null in() not in()【字符串通配符( )及占位符( _ )】like 【數(shù)據(jù)排序】 order by asc(升序) 默認 | desc(降序)【聚合函數(shù)】count(distinct 列 / *)max(列)min(列) sum(列) 不能將定義類型為varchar的列進行操作avg(列) 如果字段定義為整數(shù)型,那么將會執(zhí)行整除select 內容 from order by compute 聚合函數(shù) by 【分組】group by having 表達式【子查詢】可以在 update,delete,select語句中使用分頁語句987654321 id not in (0) id not in (9,8) id not in (9,8,7,6) .缺省時,會按照主鍵進行升序的排列,如果父查詢定義了倒序的排列,那么子查詢也應定義為倒序的排列541 id not in(0) id not in(5,4) 【將查詢的結果轉入到定義的表中】select distinct | top # into from where group by having order by asc | desc insert into select from 【數(shù)據(jù)添加】Insert into values (.) 1 值需與字段結構順序一致2 數(shù)據(jù)類型3 如果設定代理主鍵,我們將忽略主鍵的操作 Insert into ( colname , ) values ()1 數(shù)據(jù)類型2 如果設定代理主鍵,我們將忽略主鍵的操作 【修改表數(shù)據(jù)】 update set columnName = value , where 【刪除表數(shù)據(jù)】 delete from where【存儲過程】存儲過程相對于其他的數(shù)據(jù)庫訪問方法有以下的優(yōu)點:(1)重復使用。存儲過程可以重復使用,從而可以減少數(shù)據(jù)庫開發(fā)人員的工作量。(2)提高性能。存儲過程在創(chuàng)建的時候就進行了編譯,將來使用的時候不用再重新編譯。一般的SQL語句每執(zhí)行一次就需要編譯一次,所以使用存儲過程提高了效率。(3)減少網(wǎng)絡流量。存儲過程位于服務器上,調用的時候只需要傳遞存儲過程的名稱以及參數(shù)就可以了,因此降低了網(wǎng)絡傳輸?shù)臄?shù)據(jù)量。(4)安全性。參數(shù)化的存儲過程可以防止SQL注入式的攻擊,而且可以將Grant、Deny以及Revoke權限應用于存儲過程。CREATE PROCEDURE (參數(shù) type length .)AS 邏輯 BEGIN SQL的腳本 ENDGO調用: execute DECLARE price_date DATETIME SET price_date = CONVERT(DATETIME,2007-01-01) WHILE price_date FreightParm 18 RETURN 19END游標Declare Id varchar(20) Declare Name varchar(20) Declare Cur Cursor For select substring(id,0,7) as id,name from temp1 Open Cur Fetch next From Cur Into Id,Name While fetch_status=0 Begin Update temp Set c3=Name where id like Id+% Fetch Next From Cur Into Id,Name End Close Cur Deallocate Cur 【觸發(fā)器】C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論