您好,登錄后才能下訂單哦!
1. 數(shù)據(jù)類型
create table nnnn
(
column_char char(10), //字符
column_varchar varchar(10), //可變長度字符
column_text text, //存儲大于8000的字符
column_int int, //整數(shù),4B
column_smallint smallint, //短整數(shù),2B
column_bigint bigint, //整數(shù),8B
column_tinyint tinyint, //整數(shù),1B
column_bit bit, //比特,1b
column_decimal decimal(10,3), //精度10,小數(shù)點后3位
column_float float, //浮點,對精度要求不高時可用
column_datetime datetime, //日期,精確到千分之一秒
column_smalltime smalldatetime, //日期,精確到分
column_money money, //貨幣,2個4B,前面是整數(shù),后面是小數(shù)
column_smallmoney smallmoney, 貨幣,2個2B,前面是整數(shù),后面是小數(shù)
column_binary binary, //二進(jìn)制,最大長度為8KB,固定長度
column_varbinary varbinary, //二進(jìn)制,最大長度為8KB,可變長度
column_p_w_picpath p_w_picpath, //超過8KB,可存儲圖片等
column_nchar nchar, //Unicode數(shù)據(jù)類型,存儲雙字節(jié)字符,最多存儲4000字符, 固定長度
column_nvarchar nvarchar, //Unicode數(shù)據(jù)類型,存儲雙字節(jié)字符,最多存儲4000字符, 可變長度
column_ntext ntext, //存儲大于4000字符
column_sql_variant sql_variant //自定義數(shù)據(jù)類型
)
go
注意:上面的//表示的是注釋,但在SQL SERVER中不能識別
2. 標(biāo)識符-分隔符
對不符合全部規(guī)則的標(biāo)識符,使用分隔符[]或""
3.標(biāo)識符
(1)首個字符必須是
Unicode標(biāo)準(zhǔn)2.0定義的字母:a~z、A~Z、來自其他語言的字母字符
下劃線_、at符號@、數(shù)字符號#
注:@開始的標(biāo)識符,表示局部變量或參數(shù);數(shù)字符號開始的標(biāo)識符,表示臨時表或過程;雙數(shù)字符號##開始的標(biāo)識符,表示全局臨時對象。
(2)后續(xù)字符,字母、十進(jìn)制數(shù)字、下劃線
(3)不能是Transact-SQL的保留字
(4)不允許嵌入空格或其他特殊字符
(5)不符合規(guī)則的標(biāo)識符,用戶SQL語句時,需要用分隔符[]或""
4.一個對象的完整名稱
服務(wù)器名稱.數(shù)據(jù)庫名稱.所有者名稱.對象名稱
server.database.owner_name.object_name
5.完整性
實體完整性:實體完整性將記錄定義為特定表的唯一實體。
注:每一行都是這個表的唯一,不能和其他行重復(fù)
域完整性:域完整性是指給定字段的輸入有效性。
注:通過CHECK約束、FOREIGN KEY約束、DEFAULT定義、NOT NULL定義 來確定值的范圍。
引用完整性:在輸入或刪除記錄時,引用完整性保持表之間已定義的關(guān)系,在刪除主表記錄時,相關(guān)的明細(xì)表記錄也要自動刪除。
用戶定義完整性:用戶可以通過存儲過程、觸發(fā)器等對象來實施具體數(shù)據(jù)庫的完整性。
6.約束
NOT NULL:非空約束
UNIQUE:唯一性約束
PRIMARY KEY:主鍵約束
FOREIGN KEY:外鍵約束
CHECK:檢查約束
7.CHECK約束
{constant | column_name | function | (subquery)}
[
{operator?。ND?。R?。OT}
{constant | column_name | function | (subquery)}
]
注:constant,字面值,數(shù)字或字符數(shù)據(jù); column_name,指定列;function,內(nèi)置函數(shù);operator,運算符。
如: 物資編碼 LIKE '[0-9][0-9][0-9][0-9][0-9]'
單價 > 0
[物資編碼] >= 0 and [物資編碼] <= 99999
例如:
ALTER TABLE [dbo].[物資信息表] WITH NOCHECK ADD CONSTRAINT [CK_物資信息表] CHECK ([物資編碼] >= 0 and [物資編碼] <= 99999)
GO
8.NULL 、空白、0是不同的
SQL語言包括:
數(shù)據(jù)定義語言:包括創(chuàng)建數(shù)據(jù)表(關(guān)系)、刪除數(shù)據(jù)表、修改數(shù)據(jù)表、建立索引和約束以及創(chuàng)建其他數(shù)據(jù)庫對象等。
數(shù)據(jù)操縱語言:包括查詢、添加、刪除、修改數(shù)據(jù)等。
數(shù)據(jù)控制語言:控制安全性的命令。
SQL語句組成: 標(biāo)識符、關(guān)鍵字、數(shù)據(jù)類型、運算符、表達(dá)式、函數(shù)、注釋
1.指定pubs數(shù)據(jù)庫為SQL語句的執(zhí)行數(shù)據(jù)庫
USE pubs
GO
2.查詢語句
SELECT emp_id, fname+''+lname as name, hire_date
FROM employee
WHERE year(hire_date) > 1992
GO
3.聲明變量
DECLARE
{
@myint int,
@sdf char(8);
}
GO
注:聲明了兩個比變量@myint和@sdf
4.為變量賦值
SET @myint =12
SET @myint =1, @sdf = 'dDD'
5.邏輯運算
all,所有布爾表達(dá)式為true,返回true;
any, 有一個為true,返回true;
like,如果操作數(shù)與一種模式匹配,返回true;
in,如果操作數(shù)等于表達(dá)式列表中的一個,返回true。
and, or, not
6.非空判斷
where hire_name is not null
7.打開或關(guān)閉text in row, text、ntext和p_w_picpath字符串存儲在數(shù)據(jù)行內(nèi)/外(將數(shù)據(jù)保存到獨立的文本或圖像頁面里,此時文本行是一個指向該數(shù)據(jù)的指針)
sp_tableoption TableName, 'text in row', 'ON'
8.WRITETEXT、UPDATETEXT和READTEXT,處理大文本和圖像數(shù)據(jù)
9.IF...ELSE 結(jié)構(gòu)
IF 條件判斷
過程1
ELSE
過程2
例如:
IF @myint==2
SET @myint=3
ELSE
SET @myint=4
GO
10.IF EXISTS(結(jié)構(gòu))
IF [NOT] EXISTS (SELECT 語句)
過程1
ELSE
過程2
11.BEGIN...END結(jié)構(gòu)
它可以將多個命令作為一個整體看待
12.WHILE循環(huán)
WHILE 判斷表達(dá)式
{循環(huán)體}
[BREAK]
{循環(huán)體}
[CONTINUE]
注:BREAK,跳出循環(huán);CONTINUE,開始下一次循環(huán)
13.GOTO語句
跳轉(zhuǎn)到對應(yīng)的標(biāo)簽處
label1:
PRINT 'HHA'
GOTO lable1
GO
注:lable1:是創(chuàng)建標(biāo)簽
14.CASE語句
CASE 字段名稱
WHEN 記錄 THEN 結(jié)果值
WHEN 記錄 THEN 結(jié)果值
...
ELSE 結(jié)果子
END
SELECT、GROUP BY和HAVING、ALL、TOP、ORDER BY、ROWCOUNT、DISTINCT、UNION、WHERE、CASE、INSETR JOIN...ON...
SELECT
SELECT *
FROM TABLE_NAME
TOP
SELECT [TOP n [PERCENT] column_name [,...n]]
FROM tablename
注:TOP n 是返回前n行數(shù)據(jù)
TOP n PERCENT 是返回百分之n的數(shù)據(jù)
n不能用表達(dá)式或變量來替代
ROWCOUNT
SET ROWCOUNT 3
SELECT *
FROM 物資庫存記錄
GO
SET ROWCOUNT 0
SET ROWCOUNT 3表示設(shè)置返回結(jié)果的行數(shù)為3
SET ROWCOUNT 0表示恢復(fù)ROWCOUNT
DISTINCT
SELECT DISTINCT 物資名稱
FROM 物資基本信息
GO
注:DISTINCT用來從SELECT語句的結(jié)果集中除去重復(fù)的行
WHERE
條件
BETWEEN...AND結(jié)構(gòu)
字段名或者表達(dá)式 [NOT] BETWEEN 表達(dá)式1 AND 表達(dá)式2
IN
表達(dá)式或者字段名 [NOT] IN (列表或者子查詢)
LIKE
字符串表達(dá)式 [NOT] LIKE 可以帶通配符串表達(dá)式
[ESCAPE 字符串表達(dá)式]
注:ESCAPE表示,允許在字符串中搜索通配符而不是將其作為通配符使用E
注:用于模糊查詢, 和LIKE結(jié)合使用的通配符%、_、[]和[^],他們必須與LIKE結(jié)合才有意義,否則就是普通字符
%:表示任意個任意字符
_:表示1個任意字符
[]:表示可以是方括號里列出的任意一個字符
[^]:表示不在方括號里列出的任意一個字符
EXISTS
EXISTS關(guān)鍵字用于指定一個子查詢,檢測行的存在。 也就是說,如果EXISTS關(guān)鍵字指定的子查詢查得的結(jié)果集不為空,則執(zhí)行主體的SELECT 查詢,否則返回的結(jié)果集為空。
SELECT *
FROM TABLE_NAME
WHERE EXISTS (SELECT * FROM TAB WHERE NAME='1')
GO
設(shè)置查詢字段的顯示名稱
1.使用AS關(guān)鍵字
2.使用“=”號
3.直接給出名稱
例如:
SELECT emp_id '雇員編號', fname+''+'lname' ‘姓名’
FROM employee
GO
例如:
SELECT emp_id AS '雇員編號', fname+''+'lname' AS ‘姓名’
FROM employee
GO
例如:
SELECT '雇員編號'=emp_id , ‘姓名’=fname+''+'lname'
FROM employee
GO
注:作為字段名稱時,漢字可以不使用'',但是作為值的時候,必須使用''
統(tǒng)計函數(shù)
SUM()、AVG()、MAX()、MIN()、COUNT()
求和、平均數(shù)、最大值、最小值、記錄數(shù)
GROUP BY和HAVING
[GROUP BY 表達(dá)式]
[HAVING 表達(dá)式]
注:GROUP BY用來對數(shù)據(jù)進(jìn)行分組, HAVING用來對分組的數(shù)據(jù)設(shè)置條件
SELECT *
FROM A
WHERE price is NOT NULL
GROUP BY type
HAVING COUNT(*) > 3
GO
ALL
在GROUP BY子句中使用,但在SELECT語句中包括WHERE子句時ALL才有意義
SELECT *
FROM B
WHERE 數(shù)量>10
GROUP BY ALL 單位
注:使用ALL關(guān)鍵字,那么查詢結(jié)果將包括由GROUP BY子句產(chǎn)生的所有組,即使某些組沒有符合搜索條件的行。
ORDER BY
SELECT *
FROM C
ORDER BY price DESC
注:子句中的字段數(shù)目沒有限制,ASC表示升序,DESC表示降序,空值被視為最低的值
多表查詢
SELECT pub.pub_id, title.id
FROM pub, title
UNION
UNION可以將多個SELECT語句的查詢結(jié)果組合到一起
使用UNION的結(jié)果集,必須具有相同的字段結(jié)構(gòu),字段數(shù)必須相等,響應(yīng)的字段的數(shù)據(jù)類型必須兼容
CASE、INNER JOIN...ON...表達(dá)式
INSERT
INSERT [INTO] 表名或試圖 [字段列表] values 值列表
INSERT INTO 物資庫存記錄 (物資編號,物資名稱) VALUES ('LP12', '螺釘')
UPDATE
UPDATE 表名或視圖
SET {字段名={expression | default | null}}
[FROM {<table_source>}[,...]]
DELETE
DELETE 表或視圖
FROM 其他表
WHERE 表達(dá)式
視圖
CREATE VIEW [database_name.][owner.]view_name[(column [,...n])]
[WITH <view_attribute>[,...n]]
AS
select_statement
[WITH CHECK OPTION]
<view_attribute>::= {ENCRYPTION | SCHEMABINDING | VIEW_METADATA}
修改視圖
ALTER
VIEW [database_name.][owner.]view_name[(column [,...n])]
[WITH <view_attribute>[,...n]]
AS
select_statement
[WITH CHECK OPTION]
<view_attribute>::= {ENCRYPTION | SCHEMABINDING | VIEW_METADATA}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。