SQL Server 2005筆記總結

來源:互聯網
上載者:User

標籤:sql

SQL分類

DDL  data definition language

        create alter  drop

DML  data manipulation language

         insert  update  delete  select

DCL  data control language

         grant  revoke  deny


資料庫的建立和管理

檔案   資料檔案(主要資料檔案.mdf  輔助資料檔案.ndf)

          記錄檔 .ldf

檔案組 邏輯結構  包含資料檔案


建立資料庫

create database 資料庫名

on primary

(name=,filename=,size=,maxsize=,filegrowth=),

filegroup 檔案組名

(name=,filename=,size=,maxsize=,filegrowth=)

log on

(name=,filename=,size=,maxsize=,filegrowth=),

(name=,filename=,size=,maxsize=,filegrowth=)


修改

 alter database 資料庫名

|add filegroup 檔案組名

|add file() to filegroup 檔案組名

|add log file()

|modify name=新資料庫名

|modify file(name=,newname=,size=,maxsize=,filegrowth=)

|modify filegroup 檔案組名 default

|remove file

|set 資料庫選項


刪除

drop database 資料庫名


資料庫收縮

dbcc shrinkfile

dbcc shrinkdatabase


資料庫資訊查看

sp_helpdb

dbcc sqlperf

sp_spaceused

dbcc checkdb


系統資料類型

整型:bigint   int  smallint  tinyint

精確數值:decimal(p,s)  numeric(p,s)

近似數值:float real

貨幣:money  smallmoney

日期:datetime  smalldatetime

   

     --SQL2008

        date  time  datetime2  datetimeoffset

字元:char(n)  varchar(n)  varchar(max)

         nchar(n)  nvarchar(n)  nvarchar(max)

         bit  uniqueidentifier  table

         ......


表的建立

create table 表名

(列名 資料類型,

 列名 資料類型  not null,

 列名 資料類型  identity(seed,increment))


表的修改

alter table 表名

|add 列名 資料類型 屬性

|alter column 列名 新資料類型|舊資料類型 屬性

|drop column 列名 資料類型


表的刪除

drop table 表名


DML

insert

insert into 表名(列名列表) values(對應值)

注意:字元和日期資料加單引號


insert into 表名(列名列表) select語句


update

update 表名 set 列名=值 where 條件


delete

delete from 表名 where 條件


select

語句 子句 

select:結果中的列

    *

    列名

    distinct

    top(n) [percent]

    +

    函數

    算術運算子

    with ties

    列別名    

          列名 as 列別名

          列名 列別名

          列別名=列名


into:將查詢結果放入新表


from:資料來源(具體表名;CTE;derived table)


where:條件 對返回的資料行進行限定

     邏輯運算子  and  not  or

     比較子  >  <  >=   <=  <>  !=    =

     算術運算子

     between...and...:給定取值範圍,包括邊界

     in(值列表):取給定值 

     like:字串的模糊查詢

          萬用字元: %:任意長度任一字元

                   _: 任意單個字元

                  []:取給定的任意一個

                [^] :除了給定的字元,任意取一個

   is null:空值判斷

   exists:判斷存在性


group by:分組匯總+彙總函式


having:對分組後的資料進行篩選


order by:排序

    升序asc(預設)  降序 desc 

    可以按多個列排序  null作為最小值  


join:多表串連          


where   select 列名 from 表1,表2  where 表1.列=表2.列  and  條件


join       select 列名 from 表1 *JOIN* 表2 on 表1.列=表2.列   where 條件


內串連:[inner] join           串連欄位的值在兩張表中相同的資料

左外連接:left [outer] join    串連欄位的值在兩張表中相同的資料,串連欄位的值在左表有在右表沒有的資料

右外串連:right [outer] join   串連欄位的值在兩張表中相同的資料,串連欄位的值在右表有在左表沒有的資料

全連結:full [outer] join      串連欄位的值在兩張表中相同的資料,串連欄位的值在左表有在右表沒有的資料,串連欄位的值在右表有在左表沒有的資料


  stu                  exam

id name          id    eid   score

1  a              1    2072  100

2  b              2    2072   80

3  c              3    2072   60

4  d             null  2072   70


交叉串連

笛卡爾積  m*n

select 列名 from 表1 cross join 表2


自串連


union

行疊加


select語句  *union* select語句


union//union all//intersect//except


子查詢--可以轉換為多表

select 欄位 from 表1 where 欄位 in(select語句)


資料完整性

實體完整性:行唯一

值域完整性:對欄位的取值範圍或格式進行限制

參考完整性:維護表之間的資料一致性


實現:規則  預設  約束


約束

主鍵約束   primary key

         一張表只有一個主鍵約束,可以建立在多個列上,建立主鍵約束的欄位取值唯一,不能為NULL,建立主鍵約束會自動建立唯一叢集索引


唯一約束   unique

         一張表可以有多個唯一約束,可以建立在多個列上,建立唯一約束的欄位可以為NULL,取值唯一(包括NULL),建立唯一約束會自動建立唯一非叢集索引


檢查約束  check

         對欄位的取值範圍或格式進行限制


預設約束  default

         如果某列定義了預設約束,插入資料時,不給值,自動填滿預設值


外鍵約束 foreign key

         被參照表的被參照列要定義主鍵約束或唯一約束,維護表之間的資料一致性


建立表的同時,建立約束************************************

 create table 表名

(列名 資料類型,

 列名 資料類型 not null,

 列名 資料類型 primary key,

 列名 資料類型 unique,

 列名 資料類型 check(運算式)

 列名 資料類型 default 預設值,

 列名 資料類型 references 被參照表(被參照列))


表建立成功後添加約束***************************************

                                                         primary key(主鍵欄位)

                                                         unique(唯一欄位)

alter table 表名 add constraint 約束名  check(運算式)

                                                         default 預設值 for 列名

                                                         foreign key(參照欄位) references 被參照表(被參照列)


視圖

分類:普通視圖   分區視圖   索引檢視表

     

資料庫中只有視圖定義,不存放資料


建立視圖

    create view 視圖名

    as

    select語句



視圖選項

   create view 視圖名

   with encryption | schemabinding

   as

   select語句

   with check option


備份還原

備份目標

     備份裝置:實現建立好,通過命令和圖形介面均可查看備份內容

     備份檔案:建立的同時建立,只能通過命令查看


故障恢複模型

大容量日誌:對大批量資料操作只記錄結果不記錄過程

簡單:不能進行記錄備份

完整:


備份類型

完整備份

backup database 資料庫名 to disk=‘‘       

backup database 資料庫名 to 備份裝置名


差異備份

backup database 資料庫名 to disk=‘‘ with differential

backup database 資料庫名 to 備份裝置名 with differential


記錄備份

backup log 資料庫名 to disk=‘‘ 

backup log 資料庫名 to 備份裝置名 


檔案和檔案組備份

backup database 資料庫名 file= to disk=‘‘ 

backup database 資料庫名 filegroup= to 備份裝置名 


尾記錄備份

backup log 資料庫名 to disk=‘‘ with no_truncate 

backup log 資料庫名 to 備份裝置名 with no_truncate 


本文出自 “技術員修鍊手冊” 部落格,請務必保留此出處http://juispan.blog.51cto.com/943137/1949879

SQL Server 2005筆記總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.