sql server 2008学习5 sql基础
查看數據庫的信息:
- INFORMATION_SCHEMA.CHECK_CONSTRAINTS
- INFORMATION_SCHEMA.COLUMN_DOMAIN_USAGE
- INFORMATION_SCHEMA.COLUMN_PRIVILEGES
- INFORMATION_SCHEMA.COLUMNS?? 查看數據庫中的所有列
- INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
- INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE
- INFORMATION_SCHEMA.DOMAIN_CONSTRAINTS
- INFORMATION_SCHEMA.DOMAINS
- INFORMATION_SCHEMA.KEY_COLUMN_USAGE
- INFORMATION_SCHEMA.PARAMETERS
- INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
- INFORMATION_SCHEMA.ROUTINE_COLUMNS
- INFORMATION_SCHEMA.ROUTINES
- INFORMATION_SCHEMA.SCHEMATA?
- INFORMATION_SCHEMA.TABLE_CONSTRAINTS
- INFORMATION_SCHEMA.TABLE_PRIVILEGES
- INFORMATION_SCHEMA.TABLES?? 查看數據庫中表
- INFORMATION_SCHEMA.VIEW_COLUMN_USAGE
- INFORMATION_SCHEMA.VIEW_TABLE_USAGE
- INFORMATION_SCHEMA.VIEWS?????? 查看數據庫中視圖
group by 子句:
在使用時,select 列表 中的所有列必須為聚合列或是 group by 子句中包括的列.
同樣,如果在select 列表中使用聚合列,select列表必須值包括聚合列,否則必須有一個 group by 子句.
count聚合函數
除了count(*)函數以外,以其他任意形式使用的count函數都忽略null值.
having 子句
對 分組后的數據 進行 過濾.
系統存儲過程
exec sp_help 表名??? 查看表的屬性
inner join
stu?????
???????????????????? secsql :?? selert a.Name,b.tel,b.qq from stu a join sec b on a.sec=b.ID
cross join
返回的 join兩側表記錄的笛卡爾積
約束
鍵約束: 主鍵約束,外鍵約束,唯一約束
系統存儲過程 查看 表的約束:?? exec sp_helpconstraint 表名
設置主鍵:? alter table 表名 add constraint 約束名 primary key (列名)
設置外鍵:? alter table 表名 add constraint 約束名 foreign key (本表外鍵列名)? references 外鍵表名(外鍵表的列名)
那么也可以在 一個表中建立外面外鍵連接 同個表中的其他列.
需要注意的是,在添加外鍵之前表中至少要有一行數據.因為 實際上 是在檢查并強制外鍵操作之后才選擇并填充標識值的 .
那就意味著當檢查發生時,還沒有值供第一行引用.
關于外鍵的考慮:
1.要想使外鍵的值為 必須 或是 可選的,那么就需要把外鍵列 賦值為 null,那么 用戶插入外鍵的值時,即使 被引用的表的列沒有值,
那么 引用表依然可以插入數據.
2.外鍵 實現雙向的方式.
sql server默認是不讓刪除 或修改 被引用表的數據的.因為如果修改了,那么就會 使 引用表 產生很多孤立數據.
那么就可以使用 cascade, 即:級聯操作.? 當修改或刪除 被引用表的信息時,可以級聯影響到 引用表的數據.
唯一約束:和主鍵類似, 指定列的每個值必須是唯一的.
由于 唯一約束 不會自動防止設置一個null值,如果允許列為null,那么只能插入一個null,因為在唯一約束看來,null都是相等的.
對已有的表創建約束:?? alter table table_name add constraint AK_uniquename unique (columnName)
Check約束
創建check約束: alter table table_name add constraint CN_name check (條件) //幾乎所有where的條件可以應用再此
default約束
默認值 只在 insert語句中使用,而在 update ,delete語句中 被 忽略掉.
如果在 insert中提供了值,那么就不會使用默認值,如果沒提供,永遠都是默認值的.
創建default約束:? alter table table_name add constraint constraint_name default ‘default_value’ for column_name
禁用約束
不能禁用主鍵約束或者唯一約束,僅適用于 外鍵和檢查約束
在創建約束時,忽略無效的數據(應用在給已存在數據的表中加約束,但是原來的數據不符合現在的約束標準)
alter table table_name with nocheck add constraint constraint_name check (條件)
下面看這個sql? 用于屏蔽約束( 主要用于 向當前表中導入外部數據,那有可能外部數據的格式不符合當前的列約束,可以暫時屏蔽掉約束)
alter table table_name nocheck constraint contraint_name
下面是操作check_s這個約束,禁用之前:
這樣就屏蔽的了一個 約束,那么可以通過? 執行? sp_helpconstraint ,來查看 該約束的狀態, 禁用之后:
恢復check約束,? sql? :? alter table table_name check constraint constraint_name
總結
以上是生活随笔為你收集整理的sql server 2008学习5 sql基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gsp(说一说gsp的简介)
- 下一篇: sql server 2008学习6 更