數(shù)據(jù)庫中常用的概念
Sql本身是一個服務(wù)器,沒有界面,Management Studio 只是一個SQL Server管理工具而已,不是服務(wù)器。
Sql server 在管理工具下面的服務(wù)SQL Server (MSSQLSERVER)
主鍵:就是唯一定位的一條數(shù)據(jù)的列。不會有重復(fù)的列才能當(dāng)主鍵, 一個表可以沒有主鍵,但是會非常難以處理,因此建議都要設(shè)主鍵。
兩種主鍵:
業(yè)務(wù)主鍵:使用有業(yè)務(wù)意義的字段做主鍵,如身份證號、職工編號。
邏輯主鍵:使用任何沒有意義的字段做主鍵,完全給程序看的。推薦用邏輯主鍵
常識:
1、sql語句中字符串是用單引號
2、 sql語句大小寫不敏感的。
分類 | 備注和說明 | 類型 | 說明 |
二進制數(shù)據(jù)類型 | 存儲非子符和文本的數(shù)據(jù) | Image | 可用來存儲圖像 |
文本數(shù)據(jù)類型 | 字符數(shù)據(jù)包括任意字母、符號或數(shù)字字符的組合 | Char | 固定長度的非 Unicode 字符數(shù)據(jù) |
Varchar | 可變長度非 Unicode 數(shù)據(jù) | ||
Nchar | 固定長度的 Unicode 數(shù)據(jù) | ||
Nvarchar | 可變長度 Unicode 數(shù)據(jù) | ||
Text | 存儲長文本信息(指針,2G) 保存的是字節(jié)數(shù)據(jù) | ||
Ntext | 存儲可變長度的長文本 | ||
日期和時間 | 日期和時間在單引號內(nèi)輸入 | Datetime | 日期和時間 |
數(shù)字數(shù)據(jù) | 該數(shù)據(jù)僅包含數(shù)字,包括正數(shù)、負數(shù)以及分數(shù) | int smallint | 整數(shù) |
float real | 數(shù)字 | ||
貨幣數(shù)據(jù)類型 | 用于十進制貨幣值 | Money | |
Bit數(shù)據(jù)類型 | 表示是/否的數(shù)據(jù) | Bit | 存儲布爾數(shù)據(jù)類型 |
Guid 算法是一種可以產(chǎn)生唯一標(biāo)識的高效算法,它使用網(wǎng)卡MAC、地址、納秒級時間、芯片ID碼等算出來的,這樣保證每次生成的GUID永遠不會重復(fù),無論是同一個計算機上還是不同的計算機。/
數(shù)據(jù)庫的類型uniqueidentifier
SQLServer中生成GUID的函數(shù)newid(),.Net中生成Guid的方法:Guid.NewGuid()
use 數(shù)據(jù)庫名,打開該數(shù)據(jù)庫,有時候在新建查詢時沒選擇對應(yīng)的數(shù)據(jù)庫,所以用這條語句;蛘呤謩舆x擇該數(shù)據(jù)庫
Insert語句可以省略表名后的列名,但是不推薦
如果插入的行中有些字段的值不確定,那么Insert的時候不指定那些列即可。
當(dāng)不提供字段名時,插入值需要加入默認值defaulf 也就默認值用defaulf表示
插入數(shù)據(jù) insert into 表名 (字段名) values (值)
例:insert into student ([name],age,sex,birthday) values ('張三',21,1,1995-02-26)
字段與值一一對應(yīng)
1. 新建一個表
語法:create table 表名 (字段1 類型1,字段2 類型2,……)
添加主鍵 primart key (字段)
例:
CREATE TABLE T_Employee --創(chuàng)建一個表表名是T_Employee
(FNumber VARCHAR(20), --字段 類型
FName VARCHAR(20),
FAge INT,
FSalary NUMERIC(10,2),
PRIMARY KEY (FNumber)); -- 設(shè)置主鍵
2. 刪除整個表:Drop Table 表名
更新
語法:update Table set col=value,col2=value2 where ...
update 表名 set 字段 = 值,字段2 = 值2 where 條件
更新一個列:UPDATE T_Person Set Age=30
更新多個列:UPDATE T_Person Set Age=30,Name=‘tom’
更新一部分數(shù)據(jù): UPDATE T_Person Set Age=30 where Name=‘tom’,用where語句表示只更新Name是’tom’的行,注意SQL中等于判斷用單個=,而不是==
Where中還可以使用復(fù)雜的邏輯判斷UPDATE T_Person Set Age=30 where Name=‘tom’ or Age<25,or相當(dāng)于C#中的||(或者)
update Person1 set NickName=N'二十歲' 在字符前面加上N代表使用Unicode編號
where (Age>20 and Age<30) or(Age=80)
Where中可以使用的其他邏輯運算符:or(或)、and(與)、not(非)、<、>、>=、<=、!=(或<>)等
3. 修改表
添加字段
語法:alter table 表名 add 字段 類型
例:ALTER TABLE T_Employee ADD FSubCompany VARCHAR(20);