SQL – 2.SQLServer的管理 + 3.SQL基础1 + 4.SQL基础2
生活随笔
收集整理的這篇文章主要介紹了
SQL – 2.SQLServer的管理 + 3.SQL基础1 + 4.SQL基础2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQLServer的管理
- 常用字段類型:bit(可選值0、1)、datetime、int、varchar、nvarchar(可能含有中文用nvarchar)
- varchar、nvarchar 和char(n)的區別: char(n)不足長度n的部分用空格填充。Var:Variable,可變的。
?
?
?
SQL語句入門
- SQL語句中字符串用單引號。
- SQL語句是大小寫不敏感的。
- 創建表、刪除表不僅可以手工完成,還可以執行SQL語句完成,在自動化部署、數據導入中用的很多,
CREATE TABLE 表名稱
(
列名稱1 數據類型,
列名稱2 數據類型,
列名稱3 數據類型,
....
)
CREATE TABLE T_Person(Id int NOT NULL,Name nvarchar(50),Age int NULL)
Drop table T_Person1
- 簡單的Insert語句。INSERT INTO T_Person(Id,Name,Age) VALUES(1,'Jim',20)
- (*) SQL主要分DDL(數據定義語言)和DML(數據操作語言)兩類。Create Table、Drop Table、Alter Table等屬于DDL,Select、Insert、Update、Delete等屬于DML
?
?
主鍵選擇-自動標識和GUID
SQLServer中兩種常用的主鍵數據類型:int(或bigint)+標識列(又稱自動增長字段);uniqueidentifier(又稱Guid、UUID)
SQLServer中生成GUID的函數newid(),.Net中生成Guid的方法:Guid.NewGuid(),返回是Guid類型。
? ?
?
?
?
?
?
?
數據更新(UPDATE 表名稱 SET 列名稱)
- 更新一個列:UPDATE T_Person Set Age=30
- 更新多個列: UPDATE T_Person Set Age=30,Name=‘tom’
- 更新一部分數據: UPDATE T_Person Set Age=30 where Name=‘tom’,用where語句表示只更新Name是’tom’的行,注意SQL中等于判斷用單個=,而不是==。
- Where中還可以使用復雜的邏輯判斷UPDATE T_Person Set Age=30 where Name=‘tom’ or Age<25,or相當于C#中的||(或者)
- update Person1 set NickName=N'二十歲' where (Age>20 and Age<30) or(Age=80)
- Where中可以使用的其他邏輯運算符:or、and、not、<、
>、>=、<=、!=(或<>)等
?
?
數據刪除(DELETE FROM 表名稱 WHERE 列名稱 = 值)
- 刪除表中全部數據:DELETE FROM T_Person。
- Delete只是刪除數據,表還在,和Drop Table不同。
- Delete 也可以帶where子句來刪除一部分數據:
DELETE FROM T_Person WHERE FAge > 20?
?
?
數據檢索(select)
- 簡單的數據檢索 :SELECT * FROM T_Employee
- 還可以檢索不與任何表關聯的數據:select 1+1;select newid();select getdate();
?
?
數據匯總(聚合函數的使用)
- SQL聚合函數:MAX(最大值)、MIN(最小值)、AVG(平均值)、SUM (和)、COUNT(數量)
- 大于25歲的員工的最高工資 :SELECT MAX(FSalary) FROM T_Employee WHERE FAge>25
- 最低工資和最高工資:SELECT MIN(FSalary),MAX(FSalary) FROM? T_Employee
?
?
數據排序(order by)
- ORDER BY子句位于SELECT語句的末尾,它允許指定按照一個列或者多個列進行排序,還可以指定排序方式是升序(從小到大排列,ASC)還是降序(從大到小排列,DESC)。
- 按照年齡升序排序所有員工信息的列表:
SELECT * FROM? T_Employee ORDER BY FAge ASC - 按照年齡從大到小排序,如果年齡相同則按照工資從大到小排序 :
SELECT * FROM? T_Employee ORDER BY FAge DESC,FSalary DESC - ORDER BY子句要放到WHERE子句之后 :SELECT * FROM T_Employee WHERE FAge>23 ORDER BY FAge DESC,FSalary DESC
?
?
通配符過濾
- 通配符過濾使用LIKE 。單字符匹配的通配符為半角下劃線“_”,它匹配單個出現的字符。以任意字符開頭,剩余部分為“erry” :
SELECT * FROM T_Employee WHERE FName LIKE '_erry' - 多字符匹配的通配符為半角百分號“%”,它匹配任意次數(零或多個)出現的任意字符。 “k%”匹配以“k”開頭、任意長度的字符串。檢索姓名中包含字母“n”的員工信息 :
SELECT * FROM T_Employee WHERE FName LIKE '%n%'
?
?
空值處理
- 數據庫中,一個列如果沒有指定值,那么值就為null,這個null和C#中的null,數據庫中的null表示“不知道”,而不是表示沒有。因此select null+1結果是null,因為“不知道”加1的結果還是“不知道”。
- SELECT * FROM T_Employee WHERE FNAME=null ;?
SELECT * FROM T_Employee WHERE FNAME!=null ;
都沒有任何返回結果,因為數據庫也“不知道”。 - SQL中使用is null、is not null來進行空值判斷:
SELECT * FROM T_Employee WHERE FNAME is null ;
SELECT * FROM T_Employee WHERE FNAME is not null ;
?
?
多值匹配
- SELECT FAge,FNumber,FName FROM T_Employee WHERE FAge IN (23,25,28)
- 范圍值:SELECT * FROM T_Employee WHERE FAGE>=23 AND FAGE <=27 ;
SELECT * FROM T_Employee WHERE FAGE BETWEEN 23 AND 27 ;
總結
以上是生活随笔為你收集整理的SQL – 2.SQLServer的管理 + 3.SQL基础1 + 4.SQL基础2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS FTP安装及配置
- 下一篇: JQUERY学习第二天之制作横纵向导航菜