系統資料庫: 1、master:用於記錄所有SQL server系統級別的信息,比如說登錄的信息,系統設置信息。如果他沒了。你的SQL server就掛了。 2、model:模型的意思,就像模板一樣。創建資料庫都是繼承model。如果你在該資料庫下創建一張表,以後每創建新資料庫,就已經有了model ...
系統資料庫:
1、master:用於記錄所有SQL server系統級別的信息,比如說登錄的信息,系統設置信息。如果他沒了。你的SQL server就掛了。
2、model:模型的意思,就像模板一樣。創建資料庫都是繼承model。如果你在該資料庫下創建一張表,以後每創建新資料庫,就已經有了model的表。
3、msdb:和master一樣記錄信息,不同的是它記錄任務調動,事件處理,數據備份及恢復,報警和異常的信息。
4、tempdb:臨時資料庫,它為所有臨時表,臨時存儲過程提供存儲空間
註意:以上四個系統資料庫,別去刪,刪了有大大小小的問題。
數據類型:
1、數值型:
整型:int smallint bigint tinyint
浮點型:float real
貨幣型:money
2、布爾型(bit):
True
False
3、二進位型
binary
varbinary
image
4、文本數據類型
char 固定長度
vachar 可變長度
nvarchar
nchar
text 長文本信息
ntext 可變長度的長文本
datetime 日期和時間
新建資料庫:
1、資料庫文件 :主數據文件和副數據文件
2、日誌文件:一個或多個
3、create database 名稱
重命名資料庫:exec sp_renamedb new,old
刪除資料庫:drop database 名稱1,名稱2
新建資料庫:
create database test(資料庫文件名)
on
(
name=test_data(主數據文件),
filename = 'D:\ProgramFiles\SQL\data\test_data.mdf',
size=6(初始化大小),
maxsize=12,
filegrowth(增長率)=10%
)
log on
(
name=test_log(日誌文件),
filename='D:\ProgramFiles\SQL\data\test_log.ldf',
size=1,
maxsize=8,
filegrowth=10%
)
創建表:
create table 教師表
(
教師編號 int identity(1,1) primary key,
教師姓名 varchar(20) not null,
教師年齡 int,
教師工資 money,
獎金 money,
總收入 money,
合作院校 varchar
)
說明:
identity:表示自增長,通常為ID賦值
primary key:主鍵
not null:不為空
註意:每個欄位後面的逗號別忘了
查詢表:
select * from 教師表
select 獎金,總收入 from 教師表
刪除表:
use test--切換到該表所在的資料庫下,如果已經在,就不用切換
drop table 教室表--刪除整個表
刪除表,但不刪除表結構,只清空數據;
Truncate table 教師表
重命名錶:
exec sp_rename 教師表,教師表1
新增欄位:
alter table 教師表
add Email varchar(60) default ''
修改欄位:
alter table 教師表
alter column 教師薪資 int
刪除欄位:
alter table 教師表
drop column 家庭住址
新增數據:
insert into 教師表(教師年齡,教師職稱,教師薪資,課程)
values(19,'微微',100000,'java')
查詢數據:
select * from 教師表 where 教師薪資<10000
select * from 教師表 where 教師薪資 in(5555,6666,9999)
select * from 教師表 where 姓名 not in(select 班主任 from 課程表)
select 姓名,教師薪資+獎金 as 總收入 from 教師表
select * from 課程表 where 合作學校 like '%馬%'
select * from 課程表 where 合作學校 like '黑%'
select top 4 * from 課程表
select top 20 percent * from 教師表
select * from 課程表1 intersec select * from 課程表2 集合交
select * from 教師表,課程表1 where 教師表.姓名=課程表1.班主任
select * from 教師表,課程表1 where 姓名=班主任 去尾碼
排序:
select * from 教師表 order by 年齡 --預設升序,倒序desc
select * from 教師表 order by 年齡,教師薪資
去重:
select distinct 姓名 from 教師表
統計求和:
select COUNT(*) as 行數 from 教師表
select COUNT(姓名) from 教師表
平均:
select avg(教師薪資) from 教師表
最大和最小:
select max(教師薪資) from 教師表
更新數據:
update 教師表 set 教師年齡=28,教師薪資=7777 where 教師編號=4
update 教師表 set 姓名='蓮花中學之'+姓名
刪除數據:
delete from 教師表 where 教師編號=7
約束:
1、unique:唯一約束,一個表可以有多個約束,但primary 約束只有一個
2、Primary key:約束唯一標識資料庫中的每條記錄,主鍵必須包含唯一值,不能包含null值,有且只有一個主鍵。
3、Foreign key:兩個表的約束
4、check 約束:如果對單個列定義check約束,那麼該列值運行特定的值。
如果對一個表定義check約束,那麼此約束會在特定的列中對值 進行限制。
5、default:預設值
alter table userIofo
add constraint PK_userId primary key(userId),
constraint CK_userPwd check(len(userPwd)>6),
constraint Ck_Gender check(Gender=0 or Gender=1),
constraint DF_Gender default(0) for gender,
constraint CK_Email check(Email like '%@%')
--[1]外鍵約束時註意類型,長度必須與引用的主鍵列的類型,長度一致
--[2]外鍵約束時註意引用表中必須要有主鍵列
--[3]exec sp_helpconstraint 表名稱