sql server 基礎教程[溫故而知新三]

子曰:「溫故而知新,能夠爲師矣。」孔子說:「溫習舊知識從而得知新的理解與體會,憑藉這一點就能夠成爲老師了。「 尤爲是我們搞程序的人,不論是不是全棧工程師,都是集十八般武藝於一身。不過有時候有些知識若是有好久沒用了的話,就會忘記,甚至是忘的你一點都想不起來,尤爲是一些基礎的東西。因此我纔打算寫個"溫故而知新"的系列博文出來,一來是這些基礎的東西我比較健忘,之後方便本身翻閱;二來是但願能夠幫助到一些剛入門的朋友。這個系列記錄的全部知識點都是最最最(重要的事情說三遍)基礎的知識。大部分都是我學習的時候所積累的筆記。html

溫故而知新系列都是一些基礎知識,大神能夠直接跳過。sql

請叫我頭頭哥

v寫在前面

若是十八般武藝都融會貫通,若是什麼兵器你都耍得有模有樣,那麼這篇博文你大能夠跳過了。只是在忘記的時候,能夠拿出來溫習溫習。數據庫

v基本概念

SQL Server 是Microsoft 公司推出的關係型數據庫管理系統。具備使用方即可伸縮性好與相關軟件集成程度高等優勢,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的服務器等多種平臺使用。 Microsoft SQL Server 是一個全面的數據庫平臺,使用集成的商業智能 (BI)工具提供了企業級的數據管理。Microsoft SQL Server 數據庫引擎爲關係型數據和結構化數據提供了更安全可靠的存儲功能,使您能夠構建和管理用於業務的高可用和高性能的數據應用程序。編程

簡單點一句話歸納: 數據是具備必定意義的數字、字母、符號的統稱,數據庫就是存放數據的安全

vSql(Structured Query Language) server基礎

1.Sql server的組成: 服務器

  • 主要數據庫文件:.mdf 特色:有且只有一個
  • 次要數據庫文件:.ndf 特色:任意個
  • 日誌數據庫文件:.ldf 特色:至少一個

2.操做數據庫: 編程語言

  • 建立數據庫:create databse 庫名
  • 查看全部數據庫:exec sp_helpdb
  • 查看當前數據庫:exec sp_helpdb 庫名
  • 使用數據庫:use 庫名
  • 刪除數據庫:drop database 庫名 ps:正在使用的數據庫沒法刪除

3.表的結構: 字段 數據類型(屬性)ide

4.數據類型: 函數

  • 整型
    • 微整型 tinyint 1個字節
    • 小整型 smallint 2個字節
    • 整型 int 4個字節
    • 大整型 bigint 8個字節
  • 浮點型
    • float 不能精確存儲數值
    • real 不能精確存儲數值
    • decimal(numeric ) 同義,用於精確存儲數值
  • 字符型
    • char 長度在1到8000之間 定長字符數據
    • varchar 長度在1到8000之間 變長字符數據
    • text 存儲可變長度的非Unicode數據,最大長度爲2^31-1(2,147,483,647)個字符
  • 時間日期型:datetime 年月日時分秒毫秒
  • 貨幣型:money 精確到貨幣單位的千分之十。存儲大小爲 8 個字節。存儲形式爲12345.67

vsql server表

1.建立表的語法: 工具

create table 表名
(
    字段名稱1 數據類型[屬性],
    字段名稱2 數據類型[屬性],
    ...  
)

2.查看全部表語法: exec sp_help

3.查看當前表語法: exec sp_help 表名

4.修改表結構: 

  • 增長一列語法:alter table 表名 add 字段名 數據類型
  • 刪除一列語法:alter table 表名 drop column 字段名
  • 修改一列語法:alter table 表名 alter column 字段名 數據類型
  • 刪除表語法:drop table 表名

5.操做表數據: 

  • 徹底插入數據語法:insert into 表名(字段名1,字段名2...) values(值1,值2...)
  • 省略插入數據語法:insert into 表名 values(值1,值2...)
  • 部分插入數據語法:insert into 表名(字段名1,字段名2...) values(值1,值2...)
  • 多行插入數據語法:insert into 表名 values(值1,值2...),(值1,值2...)
  • 查看全部記錄語法:select * from 表名
  • 查看部分記錄語法:select 字段名1,字段名2... from 表名
  • 修改一條記錄語法:update 表名 set 字段名=值 [where條件]
  • 刪除一條記錄語法:delete from 表名 where 條件
  • 清空表全部記錄

6.標識列 identity(初值,增值): 

  • 定義:能惟一區分表中的每一條記錄,且該屬性是自動增加的
  • 特色
    • 一個表中有且只有一個標識列
    • 標識列不能編輯,不能更新
    • 標識列數據類型只能是整型
    • 標識列不爲null
    • 標識列不重複
  • 做用:保證數據完整性

7.運算符: 

sql server的運算符與其餘語言不一樣,這裏列舉三個

  • &&-----and
  • ||-----or
  • !-----not

8.六大約束: 

  • 檢查約束 check 語法 check(條件)
  • 默認約束 default 語法 default'默認語句'
  • 非空約束 not null
  • 惟一性約束 unique
  • 主鍵 primary key
    • 主鍵的值不能重複
    • 一個表中有且只有一個主鍵
    • 外鍵與主鍵相對應
    • 主鍵類型能夠是整型、字符型
    • 語法:字段名 數據類型 primary key
  • 外鍵 foreign key references
    • 與主鍵相對應
    • 外鍵的值必定在主鍵範圍以內
    • 外鍵的值能夠重複
    • 語法:字段名 數據類型 foreign key references 主表名
    • 注意事項:
      • 在操做主表從表時:先刪除從表,再刪除主表,刪除數據,也要先從後主
      • 在創建表時:要先建立主表,再建立從表,插入數據,先主後從

vsql server查詢

1.查詢符合條件的數據: select 字段名 from 表名 [where 條件]

2.之間的

  • and ... or
  • between ... and
  • 例句:查詢23歲到25歲之間的學生
    • select * from student where age>=23 and age<=25
    • select * from student where age between 23 and 25

3.不顯示重複項:distinct select distinct 字段名 from 表名

4.前幾項 top select top n * from 表名

5.排序 order by + 字段名 asc升序 desc降序(默認狀況下爲升序) select * from student where age>25 order by name desc

6. is not null/null select * from 表名 where 字段名 is null

7.列起別名as select id as 學生編號, name as 學生姓名 from student as a 注:實際語法中as能夠省略

8.高級查詢(模糊查詢) like select 字段名 from 表名 where 字段名 like '通配符 值 通配符'

sql server 通配符

  • % 任意字符
  • []範圍內任意字符
  • [^]非範圍內任意字符

9.聯合查詢 join

  • 交叉查詢:select 字段名 from 表1 cross join 表2 [where 條件]
  • 內鏈接查詢:select 字段名 from 表1 inner join 表2 on 聯合條件 [where 條件]
  • 外鏈接
    • 左外鏈接:select 字段名 from 表1 left join 表2 on 聯合條件 [where 條件]
    • 右外鏈接:select 字段名 from 表1 right join 表2 on 聯合條件 [where 條件]
  • 全外鏈接:select 字段名 from 表1 full join 表2 on 聯合條件 [where 條件]
  • 多表鏈接:select 字段名 from 表1 inner join 表2 on 聯合條件 inner join 表3 on 聯合條件 [where 條件]

10.嵌套查詢(嵌套查詢均可以用聯合查詢完成),顯示的字段在一個表中,條件在另一個表中

  • in() 在...範圍以內的
  • not in() 不在...範圍以內的
  • exists 存在
  • not exists 不存在

11. 分組 group by

v系統函數

1.統計(聚合)函數

Transact-SQL編程語言提供下列聚合函數:
AVG 返回指定組中的平均值,空值被忽略。
例:select prd_no,avg(qty) from sales group by prd_no
2. COUNT 返回指定組中項目的數量。
例:select count(prd_no) from sales
3. MAX 返回指定數據的最大值。
例:select prd_no,max(qty) from sales group by prd_no
4. MIN 返回指定數據的最小值。
例:select prd_no,min(qty) from sales group by prd_no
5. SUM 返回指定數據的和,只能用於數字列,空值被忽略。
例:select prd_no,sum(qty) from sales group by prd_no
6. COUNT_BIG 返回指定組中的項目數量,與COUNT函數不一樣的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
例:select count_big(prd_no) from sales
7. GROUPING 產生一個附加的列,當用CUBE或ROLLUP運算符添加行時,輸出值爲1.當所添加的行不是由CUBE或ROLLUP產生時,輸出值爲0.
例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup
8. BINARY_CHECKSUM 返回對錶中的行或表達式列表計算的二進制校驗值,用於檢測表中行的更改。
例:select prd_no,binary_checksum(qty) from sales group by prd_no
9. CHECKSUM_AGG 返回指定數據的校驗值,空值被忽略。
例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no
10. CHECKSUM 返回在表的行上或在表達式列表上計算的校驗值,用於生成哈希索引。
11. STDEV 返回給定表達式中全部值的統計標準誤差。
例:select stdev(prd_no) from sales
12. STDEVP 返回給定表達式中的全部值的填充統計標準誤差。
例:select stdevp(prd_no) from sales
13. VAR 返回給定表達式中全部值的統計方差。
例:select var(prd_no) from sales
14. VARP 返回給定表達式中全部值的填充的統計方差。
例:select varp(prd_no) from sales

2.日期函數

  • getDate()獲取當前時間
  • Dateadd() 增長時間
  • datediff(datepart,startdate,enddate)

    startdateenddate 參數是合法的日期表達式。

    datepart 參數能夠是下列的值:

    datepart 縮寫
    yy, yyyy
    季度 qq, q
    mm, m
    年中的日 dy, y
    dd, d
    wk, ww
    星期 dw, w
    小時 hh
    分鐘 mi, n
    ss, s
    毫秒 ms
    微妙 mcs
    納秒 ns
  • datepart(datepart,date)函數用於返回日期/時間的單獨部分,好比年、月、日、小時、分鐘等等,datepartd參數能夠參見上表
  • datename(datepart,date)傳回表明指定 date 之指定 datepart 的字元字串

3.數學函數

  • abs()取絕對值
  • round()四捨五入
  • floor()函數返回小於或等於所給數字表達式的最大整數
  • ceiling()函數返回大於或等於所給數字表達式的最小整數
  • sqrt()開平方根
  • 關於abs()/round()/...這些數學函數的demo能夠在個人上篇博客中找到

4.字符串函數

  • left()左截串
  • right()右截串
  • ltrim()去左空格
  • rtrim()去右空格
  • replace(字符串,舊字符串,新字符串) 替換
  • substring(字符串,位置,長度) 截字符串 ps:sql中字符串下標從1開始
  • reverse()反轉
  • len()長度
  • upper()轉大寫
  • lower()轉小寫

vT-sql

1.聲明變量語法: declare @變量名 數據類型

給變量賦值

  • set @變量名=值
  • select @變量名=值

輸出變量 select @變量名

ps:若想輸出變量、聲明變量、變量賦值和變量輸出三條語句需一塊兒執行

2.編程語句

  • begin...end
  • if...else

v視圖

1.建立視圖

create view 視圖名稱
as
sql中查詢語句

2.使用視圖 select * from 視圖名

3.查看視圖 exec sp_help

4.查看視圖內容 exec sp_helptext 視圖名

5.修改視圖 alter view 視圖名 as select * from 表名 [where條件]

6.刪除視圖 drop view 視圖名

7.修改視圖 update 視圖名 set 字段名=值 [where條件]

v存儲過程/觸發器/事務

1.sql server 存儲過程

create proc | procedure pro_name
    [{@參數數據類型} [=默認值] [output],
     {@參數數據類型} [=默認值] [output],
     ....
    ]
as
        select ......

2.sql server 觸發器

  • insert觸發器
  • update觸發器
  • delete觸發器
  • 關於sql server 觸發器這裏就很少介紹了,更多詳情你們有興趣能夠看這裏

3.sql server 事務

關於sql server 事務這裏就很少介紹了,更多詳情你們有興趣能夠看這裏

v博客總結

關於sql server入門教程就寫到這裏,只是爲了但願幫助到一些入門的朋友,或者一些像我這樣健忘的人朋友恢復記憶。

 


做  者:請叫我頭頭哥
出  處:http://www.cnblogs.com/toutou/
關於做者:專一於基礎平臺的項目開發。若有問題或建議,請多多賜教!
版權聲明:本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文連接。
特此聲明:全部評論和私信都會在第一時間回覆。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信
聲援博主:若是您以爲文章對您有幫助,能夠點擊文章右下角推薦一下。您的鼓勵是做者堅持原創和持續寫做的最大動力!

相關文章
相關標籤/搜索