所謂的業務主鍵:使用有業務意義的字段做主鍵。
所謂的邏輯主鍵:使用沒有任何業務意義的字段做主鍵。(完全給程序看的)
5. 主鍵的設置要求:
1. 不會重復的列;
2. 推薦用邏輯主鍵作為主鍵;
6. 為什么要使用主鍵:
一個表中可以沒有主鍵,但是會非常難以處理,因此沒有特殊理由,表中要設置主鍵。
7. 何為外鍵:
比如說:我要進貨,可能會進不同廠家的貨物,由于在同一廠家我不一定只進一類東西,因此當我記錄賬單的時候,必然要記錄廠家的地址、電話等,對于不同類 貨物且同一廠家進行記錄時,還要每次都要重復的寫廠家地址等,在數據庫中我們可以用一個代號將一些重復的數據進行替代,這樣也減少了存儲空間的使用,對于這 個代號來說,它是重復要寫地址所在表中的主鍵,且又是主表中的外鍵!
8. 打開Microsoft SQL Server Management Studio之后的連接如下圖:
服務器名稱填寫方式:計算機全稱/實例名 或者 ./實例名 或者 還可以直接輸入"(local)"進行連接。這樣就可以通過本地驗證進行連接
9. 新建數據庫:
在連接后的“對象之源管理器”中,我們可以看到“數據庫”,然后右鍵點擊數據庫,再出現的菜單欄中選中“新建數據庫(N)”然后如下圖所示:
在上邊只要填寫數據庫名稱就可以了!然后點擊確定就OK了!
10. 新建表:
展開你新建的數據庫,右鍵點擊“表”,再出現的菜單欄中選中"新建表(N)",然后就可以添加字段也就是(列),并對數據類型進行設置,相關設置我會在后邊寫 出。
也可以用SQL語句建立新表:
CREATE TABLE 表名(字段 類型名 是否為Null,字段 類型名 是否為Null,字段 類型名 是否為Null.............)
例如:CREATE TABLE PReson(ID int NOT NULL,Name nvarchar(50),Age int)
這樣就建立了如下表:
ID | Name | Age |
刪除表:
drop table 表名。
11. 常見的數據類型有:
1. 字符串數據類型 char 此數據類型可存儲1~8000個定長字符串,字符串長度在創建時指定;如未指定,默認為char(1)。每個字符占用1byte存儲空間?! char 此數據類型可存儲1~4000個定長Unicode字符串,字符串長度在創建時指定;如未指定,默認為nchar(1)。每個字符占用2bytes存儲空間?! archar 此數據類型可存儲最大值為8000個字符的可變長字符串。可變長字符串的最大長度在創建時指定,如varchar(50),每個字符占用1byte存儲空間?! varchar 此數據類型可存儲最大值為4000個字符可變長Unicode字符串??勺冮LUnicode字符串的最大長度在創建時指定,如nvarchar(50),每個字符占用 2bytes存儲空間。 text 此數據類型可存儲最大值為2147483647個字符的變長文本,并且無需指定其初始值,每個字符占用1byte存儲空間,一般用來存儲大段的文章。text數 據類型實際上是一個Large Object數據類型, 默認情況下,此類型的數據不是存儲在數據行內,而是存儲于獨立的Large Object數據頁上。另 外,text數據類型不能做為函數、存儲過程或觸發器中的參數來用?! text 同text數據類型,只不過存儲的是最大值為1073741823個字符的Unicode變長文本,每個字符占用1byte存儲空間?! ≌f明:無論使用哪種字符串數據類型,字符串值必須放在引號內,推薦使用單引號。
一般情況下我是這樣區別
varchar和nvarchar的區別:
nvarchar中可以有像“漢字”、“日語”等文字,但varchar不允許。
varchar(10)和char(10)
char(10)不管你的字符夠不夠10位,我都會將空間給你留下。
varchar(10)你有幾個我給你幾個,但前提是不能超過10。
注意:電話號碼用的是字符型。
2. 數值數據類型 bit 此數據類型存儲值為0或1的二進制字段。占用1byte存儲空間?! inyint 此數據類型存儲0~255的整數,占用1byte存儲空間?! mallint 此數據類型存儲-32768~32767的整數,占用2bytes存儲空間?! nt 此數據類型存儲-2147483648~2147483647的整數,占用4bytes存儲空間?! igint 此數據類型存儲-9223372036854775808~9223372036854775807的整數,占用8bytes存儲空間?! ecimal/numeric 這兩個數據類型功能相同,均為存儲精度可變的浮點值。但推薦采用decimal,因其存儲的數據“更有說明性”。此種數據類型由兩個值來確定 decimal(p,s),p為精度,s為標量,如decimal(3,2),其中數值2為小數的位數,那么decimal(3,2)可用來存儲如1.28這樣的浮點數。此種數據類型占用的存儲空 間取決于精度值p。p為1~9,占用5bytes存儲空間;p為10~19,占用9bytes存儲空間;p為20~28,占用13bytes存儲空間;p為29~38,占用17bytes存儲空 間?! loat 此數據類型存儲1~53的可變精度的浮點值,精度表示為float(n),n表示科學記數法的尾數,取值范圍為-1.79E+308~-2.23E-308的負數和2.23E- 308~1.79E+308的正數。其存儲空間由精度值 決定,n為1~24,占用4bytes存儲空間;n為25~53,占用8bytes存儲空間。 real 此數據類型存儲-3.40E+38~-1.18E-38的負數和1.18E~3.40E+38的正數。占用4bytes存儲空間。 smallmoney 此數據類型存儲-214748.3648~214748.3647的貨幣值,精確到小數后4位。占用4bytes存儲空間?! oney 此數據類型存儲-922337203685477.5808~922337203685477.5807的貨幣值,精確到小數后4位。占用8bytes存儲空間?! ?. 日期和時間數據類型 smalldatetime 此數據類型存儲從1900年1月1日到2079年6月6日的日期。占用4btyes存儲空間?! atetime 此數據類型存儲從1753年1月1日到9999年12月31日的日期。占用8bytes存儲空間。 4. 二進制數據類型 binary 此數據類型存儲1~8000個字符的二進制數據,其指定長度即為占用的存儲空間。 varbinary 此數據類型存儲可變長的二進制數據,可在創建時指定其具體長度,也可不指定?! ?. 其它數據類型 rowversion/timestamp 這兩種數據類型功能一樣,但Microsoft建議在任何情況下盡可能地指明rowversion而不是timestamp,因為rowversion更加準確地反應了數據類型的 真實性質。timestamp數據類型跟時間完全無 關,它表明數據庫中的數據修改發生的相對順序。不要在鍵(尤其是主鍵)中使用timestamp 列,因為每次修改行時,timestamp值都會更改。當指定數據類型為rowversion或timestamp,那么 SQL Server會在對表的插入或刪除等 更新操作時自動生成一個新值,并把這個新值放在合適的字段里。此類型數據占用8bytes存儲空間?! niqueidentifier 此類型數據存儲二進制值,其作用與全局唯一標識符(GUID)一樣。GUID 主要用于在有多個節點、多臺計算機的網絡中,分配必須具有唯一性的標識符?! ≌加?6bytes存儲空間。
12. 主鍵的設置:
右鍵點擊如圖所示中的位置,在彈出來的菜單中選中設置主鍵就OK了。當想取消將其作為主鍵的時候右鍵點擊,選中“刪除主鍵”就OK了。
有一些類型是可以設置主鍵,但有些不能能夠設置主鍵。比如說:nvarchar(max)就不能、而nvarchar(50)可以!
一般有兩個設置主鍵是合理的(int(digint)、uniqueidentifier)
13.字段的添加和刪除:
在上圖12中,對應的“列命”、“屬性類型”、“允許Null值”中對應填寫就可以。若保存后,想進行修改,就右鍵點擊你新建的表——》設計(G)——》然后就可以填寫 了!
不知大家注意了沒有:主鍵不能為空!
14.在表中填充數據:
右鍵點擊你新建的表——》編輯前200行(E)——》然后就可以填寫了!
15. SQL語句:是和DBMS交談專用的語句。
注意:SQL字符串用單引號;
SQL語句大小寫不敏感;
SQL語句主要分:DDL(數據定義語言)Create Table 、Drop Table等(改變表的結構)
DML(數據操作語言)Select、Insert等(不改變表的結構)
16. 填充表或者插入數據:
insert into 表名(字段1,字段2,字段3.) values(值1,值2,值3) 例如:insert into person1(id,Name,Age) values(1,'泰山北斗@阿龍',21)
17. 如何解決開發中系統自動添加排序,也就是說,避免主鍵的重復 ----- 設置標識(zhi)規范:
右鍵點擊表--》設計--》如下圖所示:將”否“改成“是”
標識規范修改不成的解決辦法:
工具--》選項--》Designs--》將”阻止保存要求創建表的更改“前面的對號去掉。
如下圖:
18. Guid的newid()方法:
newid()目的是產生不相同的隨機數。
19. int 自增長字段和Guid的區別:
INT自增長字段的優點:占用空間小、無序開發人員干預 、易讀、
缺點:效率低;
Guid的優點:效率高、數據導入導出方便;
缺點:占用空間大、不易讀;
一般來講,大多數都使用Guid。
若果使用int 自增字段,則在insert中可以省略對應的字段。
20. insert可以省略表名后的列名,但不推薦使用。 insert into Person0(FNumber,FName,FAge,Fsalary) values('liqianlong','李乾龍',21,2.15)
或者 insert into Person0 values('liqianlong','李乾龍',21,2.15)也可以。
insert into 就是向表中插入數據
21. update -- 更新數據:
update 表名 Set 列1名=值,列2名=值.........
更新的時候注意中文前面要加”N“
updatePerson setAge="23"
where Age>20;
上面兩句話的意思是:將20以上的Age更新為23
22. 運算符:
+、 —、 *、 /、=等于() 、<>(不等于) or (或者)、 and (并且) 、not(非)
21. delete的使用:
一般和from一起使用。例如:
delete from Person where Age>10; /*清理表中年齡大于10的數據!*/
23. Delete和Drop的區別:
delete是將表中數據清理了,并沒有刪除表;
Drop是直接將表刪除掉;
24. 用SQL設置主鍵
例如:create table Person0(FNumber varchar(20),FName varchar(20),FAge int,FSalary numeric(10,2),PRIMARY key(FNumber))
上面的primary key就是主鍵的意思,在SQL中是通過這樣來設置主鍵的。對于numeric(10,2)來講,10是精度(小數點左右兩端都包括),2是小數位數。
25. select * from 表名
1. 例如:select * from Person0
where FAge>20;
注意:上句表示從表Person中塞選FAge 大于20的數據。select意思是“選擇、挑選”
新聞熱點
疑難解答