『壹』 怎麼用sql語句添加非空列 我哪寫錯了
改變已有表的列欄位,使用alter命令;
格式:
alter table 表名 add 新增欄位名 欄位類型 [列級約束]
例如:alter table student add grade int not null (not null 屬於列級約束)
但可能出現以下的情況:
ALTER TABLE 只允許添加滿足下述條件的列: 列可以包含空值;或者列具有指定的 DEFAULT 定義;或者要添加的列是標識列或時間戳列;或者,如果前幾個條件均未滿足,則表必須為空以允許添加此列。
原因:表中原本有數據(存在很多行),在你新增加非空欄位後,原來存在的行中的數據本來為空,但你又要求它非空,這樣就矛盾了,所以該命名就不會執行,就會報錯。
解決方法:
1、alter table student add grade int 不加非空約束;
2、update table student set grade=60 where grade is NULL 將存在的數據行中的grade欄位同一設置成60分;
3、alter table student alter column grade int not null 增加非空約束;
『貳』 在SQL中,列級完整性約束和表級完整性約束分別分為幾種情況請列舉。
建表的同時通常還可以定義與該表有關的完整性約束條件,這些完整性約束條件被存入系統的數據字典中,當用戶操作表中數據時由DBMS自動檢查該操作是否違背這些完整性約束條件.如果完整性約束條件涉及到該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級.
例1 建立一個「學生」表Student,它由學號Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個屬性組成.其中學號不能為空,值是唯一的,並且姓名取值也唯一.
CREATE TABLE Student
(Sno CHAR(5)NOT NULL UNIQUE,/*列級完整性約束條件,Sno取值唯一,
Sname CHAR(20)UNIQUE,不許取空值*/
Ssex CHAR(1),
Sage INT,
Sdept CHAR(15));
常用完整性約束:
主碼約束:PRIMARY KEY
唯一性約束:UNIQUE
非空值約束:NOT NULL
參照完整性約束
『叄』 問一個簡單的問題哈,在SQL Server中怎樣為一個已經創建好的表添加列級完整性約束為非空,謝謝啦!
http://blog.sina.com.cn/s/blog_436fe8b10100mtu6.html
看有沒有你需要的?
『肆』 資料庫中列級約束為默認為20,這個怎麼搞啊
網路知道就是被樓上的這種垃圾給搞壞的。。。找點書COPY過來有什麼意思。。。。。。。
-----------------------------
要防止SQL注入其實不難,你知道原理就可以了。
所有的SQL注入都是從用戶的輸入開始的。如果你對所有用戶輸入進行了判定和過濾,就可以防止SQL注入了。用戶輸入有好幾種,我就說說常見的吧。
文本框、地址欄里***.asp?中?號後面的id=1之類的、單選框等等。一般SQL注入都用地址欄里的。。。。如果要說怎麼注入我想我就和上面的這位「仁兄」一樣的了。
你只要知道解決對嗎?
對於所有從上一頁傳遞過來的參數,包括request.form 、request.qurrystring等等進行過濾和修改。如最常的***.asp?id=123 ,我們的ID只是用來對應從select 里的ID,而這ID一般對應的是一個數據項的唯一值,而且是數字型的。這樣,我們只需把ID的值進行判定,就可以了。vbs默認的isnumeric是不行的,自己寫一個is_numeric更好,對傳過來的參數進行判定,OK,搞定。演算法上的話,自己想想,很容易了。但是真正要做到完美的話,還有很多要計算的。比如傳遞過來的參數的長度,類型等等,都要進行判定。還有一種網上常見的判定,就是判定傳遞參數的那一頁(即上一頁),如果是正常頁面傳弟過來就通過,否則反之。也有對' or 等等進行過濾的,自己衡量就可以了。注意一點就是了,不能用上一頁的某一個不可見request.form("*")進行判定,因為用戶完全可以用模擬的形式「復制」一個和上一頁完全一樣的頁面來遞交參數。這樣,這招就沒用了。。。。
OK就說這么多,還不明白的話,找我。[email protected]
『伍』 SQL如何刪除列級完整性約束
約束都有約束名的吧
alter table 表名 drop constraint 約束名
『陸』 sql serve 表級約束
建表的同時通常還可以定義與該表有關的完整性約束條件,這些完整性約束條件被存入系統的數據字典中,當用戶操作表中數據時由DBMS自動檢查該操作是否違背這些完整性約束條件.如果完整性約束條件涉及到該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級.
例1 建立一個「學生」表Student,它由學號Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個屬性組成.其中學號不能為空,值是唯一的,並且姓名取值也唯一.
CREATE TABLE Student
(Sno CHAR(5)NOT NULL UNIQUE,/*列級完整性約束條件,Sno取值唯一,
Sname CHAR(20)UNIQUE,不許取空值*/
Ssex CHAR(1),
Sage INT,
Sdept CHAR(15));
常用完整性約束:
主碼約束:PRIMARY KEY
唯一性約束:UNIQUE
非空值約束:NOT NULL
參照完整性約束
『柒』 sql資料庫中,表約束,和列約束是什麼意思,簡單說說
約束,主要為了維護資料庫的完整性而定義的一些規則,列約束作為列定義的一部分只作用於此列本身。表約束作為表定義的一部分,可以作用於多個列。在這里舉幾個例子。
1.主鍵約束
主關鍵字約束指定表的一列或幾列的組合的值在表中具有惟一性,即能惟一地指定一行記錄。每個表中只能有一列被指定為主關鍵字,且IMAGE 和TEXT 類型的列不能被指定為主關鍵字,也不允許指定主關鍵字列有NULL 屬性。
多列組成的主鍵叫聯合主鍵,聯合主鍵就是表級約束,單列主鍵就是列級約束。
2.唯一性約束
某一列的值,在這個表中,只能出現一個,比如身份證號碼等
3.外鍵約束
外關鍵字約束定義了表之間的關系。當一個表中的一個列或多個列的組合和其它表中的主關鍵字定義相同時,就可以將這些列或列的組合定義為外關鍵字,並設定它適合哪個表中哪些列相關聯
等等,不一一列舉了。
『捌』 如何用sql語句添加非空列
改變已有表的列欄位,使用alter命令;
格式:
alter table 表名 add 新增欄位名 欄位類型 [列級約束]
例如:alter table student add grade int not null (not null 屬於列級約束)
但可能出現以下的情況:
ALTER TABLE 只允許添加滿足下述條件的列: 列可以包含空值;或者列具有指定的 DEFAULT 定義;或者要添加的列是標識列或時間戳列;或者,如果前幾個條件均未滿足,則表必須為空以允許添加此列。
原因:表中原本有數據(存在很多行),在你新增加非空欄位後,原來存在的行中的數據本來為空,但你又要求它非空,這樣就矛盾了,所以該命名就不會執行,就會報錯。
解決方法:
1、alter table student add grade int 不加非空約束;
2、update table student set grade=60 where grade is NULL 將存在的數據行中的grade欄位同一設置成60分;
3、alter table student alter column grade int not null 增加非空約束;
『玖』 初學PLSQL 程序遇到問題 列級約束條件無法引用其他列 求大神幫助
列級約束,無法引用其他列。
你需要建立表級約束。
先把欄位加上,然後
alter table xxx add constraint xxxx check .