sql server學習小結

SQL Server 數據類型  (http://www.runoob.com/sql/sql-datatypes.html
String 類型:html

數據類型 描述 存儲
char(n) 固定長度的字符串。最多 8,000 個字符。 Defined width
varchar(n) 可變長度的字符串。最多 8,000 個字符。 2 bytes + number of chars
varchar(max) 可變長度的字符串。最多 1,073,741,824 個字符。 2 bytes + number of chars
text 可變長度的字符串。最多 2GB 文本數據。 4 bytes + number of chars
nchar 固定長度的 Unicode 字符串。最多 4,000 個字符。 Defined width x 2
nvarchar 可變長度的 Unicode 字符串。最多 4,000 個字符。 
nvarchar(max) 可變長度的 Unicode 字符串。最多 536,870,912 個字符。 
ntext 可變長度的 Unicode 字符串。最多 2GB 文本數據。 
bit 容許 0、1 或 NULL 
binary(n) 固定長度的二進制字符串。最多 8,000 字節。 
varbinary 可變長度的二進制字符串。最多 8,000 字節。 
varbinary(max) 可變長度的二進制字符串。最多 2GB。 
image 可變長度的二進制字符串。最多 2GB。 sql

Number 類型:
數據類型 描述 存儲
tinyint 容許從 0 到 255 的全部數字。 1 字節
smallint 容許介於 -32,768 與 32,767 的全部數字。 2 字節
int (integer)容許介於 -2,147,483,648 與 2,147,483,647 的全部數字。 4 字節
bigint 容許介於 -9,223,372,036,854,775,808 與 9,223,372,036,854,775,807 之間的全部數字。 8 字節
decimal(p,s) 固定精度和比例的數字。
容許從 -10^38 +1 到 10^38 -1 之間的數字。數據庫

p 參數指示能夠存儲的最大位數(小數點左側和右側)。p 必須是 1 到 38 之間的值。默認是 18。函數

s 參數指示小數點右側存儲的最大位數。s 必須是 0 到 p 之間的值。默認是 0。
 5-17 字節
numeric(p,s) 固定精度和比例的數字。
容許從 -10^38 +1 到 10^38 -1 之間的數字。spa

p 參數指示能夠存儲的最大位數(小數點左側和右側)。p 必須是 1 到 38 之間的值。默認是 18。日誌

s 參數指示小數點右側存儲的最大位數。s 必須是 0 到 p 之間的值。默認是 0。
 5-17 字節
smallmoney 介於 -214,748.3648 與 214,748.3647 之間的貨幣數據。 4 字節
money 介於 -922,337,203,685,477.5808 與 922,337,203,685,477.5807 之間的貨幣數據。 8 字節
float(n) 從 -1.79E + 308 到 1.79E + 308 的浮動精度數字數據。
n 參數指示該字段保存 4 字節仍是 8 字節。float(24) 保存 4 字節,而 float(53) 保存 8 字節。n 的默認值是 53。
 4 或 8 字節
real 從 -3.40E + 38 到 3.40E + 38 的浮動精度數字數據。 4 字節code

 


1.行註釋  --
2.塊註釋 /*  */
3.刪除數據庫 drop database school
4.建立數據庫和日誌並保存
CREATE DATABASE school
ON
( NAME = school_dat,
   FILENAME = 'd:\school1.mdf',
   SIZE = 3,
   MAXSIZE = 4,
   FILEGROWTH = 1 )
LOG ON
( NAME =school_log,
   FILENAME = 'd:\school1.ldf',
   SIZE = 2MB,
   MAXSIZE = 3MB,
   FILEGROWTH = 1MB )
5.go
GO 表示一批 T-SQL 語句結束,GO 以後的 T-SQL 語句屬於另外一個批處理的範圍server

6.一些最重要的 SQL 命令
SELECT - 從數據庫中提取數據
UPDATE - 更新數據庫中的數據
DELETE - 從數據庫中刪除數據
INSERT INTO - 向數據庫中插入新數據
CREATE DATABASE - 建立新數據庫
ALTER DATABASE - 修改數據庫
CREATE TABLE - 建立新表
ALTER TABLE - 變動(改變)數據庫表
DROP TABLE - 刪除表
CREATE INDEX - 建立索引(搜索鍵)
DROP INDEX - 刪除索引htm


7.--建立索引
create index ix_student_sname ON student(sname)
本例會建立一個簡單的索引,名爲 ix_student_sname 在 student表的 (sname)列:
降序:create index ix_student_sname ON student(sname DESC)
但願索引不止一個列,您能夠在括號中列出這些列的名稱,用逗號隔開:
create index ix_student_sname ON student(sname,sage)索引

8.--建立表
create table Student (
   Sno ud_sno ,
   Sname char(10) not null unique ,
   Ssex char(2) check (ssex='男' or ssex='女') ,
   Sage smallint check(sage>16) ,
   Sdept char(10)  not null default 'JSJ' ,
  
   primary key (sno)  //主鍵
 )


9.--設置鍵(在create table語句內)
主鍵: primary key (cno)

在已經設置該主鍵的表裏面設置與其餘表相關聯的外鍵
外鍵:

primary key(Cno,Sno),
foreign key (Sno) references student(Sno) ,   //關聯其餘表中主鍵的外鍵
foreign key (Cno) references Course(Cno) ,


10.--添加數據到表
insert into student (sno,sname,ssex,sage,sdept) values('003','tony','男',20,'sx')

11.--設置默認值
  Sdept char(10)  not null default 'JSJ'設置該字段不爲空且默認值爲'JSJ'

12.如何在sql server裏面寫語句(其實至今沒有弄明白)
首先手動新建數據庫,而後點擊新建查詢,就能夠到一個能夠寫sql 語句的地方

13.在數據表中增長刪除某列
alter table table_name add  reserve char(50)
alter table table_name drop COLUMN reserve

刪除普通列時要在列名前面加 column

 


14.查詢
select branch_name from table_name (默認不去重)
select distinct branch_name from table_name (去重)
select all branch_name from table_name

(1)將查詢結果某一列計算後做爲新的一列顯示出來
select loan_number, branch_name, amount*10  as lal
from table_name

(2)查詢條件限制
select loan_number
from loan
where branch_name ='Perryridge' and amount <1200
 之間:where amount between 900 and 1300

(3)沒有插入數據查詢(is null)
select Sno from  Selected_Course  where  Cno='7'   and   Grade is null

 

(4)and && or

where Cno='7' and (Grade >90 or Grade <60)

(5)like

A:%包含零個或多個字符的任意字符串
一、LIKE'Mc%' 將搜索以字母 Mc 開頭的全部字符串(如
McBadden)。
二、LIKE'%inger' 將搜索以字母 inger 結尾的全部字符串(如
Ringer、Stringer)。
三、LIKE'%en%' 將搜索在任何位置包含字母 en 的全部字符串(如
Bennet、Green、McBadden)。
B:_(下劃線)任何單個字符:LIKE'_heryl'
將搜索以字母 heryl 結尾的全部六個字母的名稱(如 Cheryl、Sheryl)。
C:[]指定範圍([a-f])或集合([abcdef])中的任何單個字符:
1,LIKE'[CK]ars[eo]n'
將搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
二、LIKE'[M-Z]inger' 將搜索以字符串
inger 結尾、以從 M 到 Z 的任何單個字母開頭的全部名稱(如 Ringer)。
D:[^]不屬於指定範圍([a-f])或集合([abcdef])的任何單個字符:LIKE'M[^c]%'
將搜索以字母 M 開頭,而且第二個字母不是 c 的全部名稱(如MacFeather)。

 


約束

1,在alter table 時的約束設置

alter table Student
add check (Sname is not null and Sdept is not null and (Ssex='男' or Ssex='女')and Ssex is not null)

 

 

 

問題:group by

選擇列表中的列無效,由於該列沒有包含在聚合函數或 GROUP BY 子句中沒法理解

相關文章
相關標籤/搜索