系統資料庫:
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:ProgramFilesSQLdata est_data.mdf`,
size=6(初始化大小),
maxsize=12,
filegrowth(增長率)=10%
)
log on
(
name=test_log(日誌檔案),
filename=`D:ProgramFilesSQLdata est_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 表名稱