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