資料庫修改資料
1.插入資料
isnert的命令形式:
insert/values,insert/select,insert/exec,insert/defalut,select/into.
insert/select:
eg:
insert into table_name(First,Second)
select id,pwd from table_name1
使用該格式,主要的是要選擇正確的資料集,一般在使用select時先測試資料集的結果
insert/exec插入儲存過程返回的資料,並將其插入到表中。插入列的順序必須與儲存過程結果集的列順序相同,以下是基本語法:
insert into owner.table[columns]
exec storedprocedure parameters
注意儲存過程可能返回多個結果集,在這種情況下,insert命令試圖插入每個結果集中的資料,因此必須保證每個結果集的列順序與插入列的書序一致。
eg:
create procedure pro_test
as
select * from dt_1 where id<3
select 8 from dt_2 where id>7
//接下來使用儲存過程
insert into dt_1[columns]
exec pro_test
建立由預設值組成的行:
eg:
insert into dt_name default values
插入資料時建立表:
select命令的一種變體。
在select語句中使用into選項將建立一個新表包含select結果集
eg:
select colomns
into NewTable
from DataSource
where[condition]
例子:
select *
into dt_new
from dt_old[order by ... asc,desc]
更新資料:
update每次能夠更新多行,但是每次只能更新一個表。set關鍵字用於修改表中任何列的值,新值可以使硬編碼的字串面量、變數、表示式,還可以使sql update語句中from子句引用的資料來源的列。
進行全程搜尋和替換:
update dt_1
set id=replace(id,'23','22222')
即可將id位123456更新為122222456
更新資料表時引用多個表:
sql update:可以使用表示式給列賦值。該表示式可以引用同一列、其他列甚至其他表
這個過程比較複雜一點:
1.檢查可用的資料2.測試公式3.執行更新
刪除資料:
delete from dt_name
where ...
注意:級聯刪除
delete from dt_name
...
on delete cascade
返回修改後的資料:
sql server2005能夠以資料集的方式返回修改後的資料,並供以後使用。使用output子句可以訪問插入和刪除的虛擬表
對資料修改的潛在限制:
主鍵限制:如果一個表中有主鍵 並且主鍵有限制的話,可以使用一下語句來破除這種限制。
set identity_insert table_name on
//
insert into table_name(id,pwd)//注意這裡的列名一定要加上
value(1,2)
如果想恢復限制,可以set identity_insert table_name off
並且值得注意的是:我們在一個資料庫中同一時刻只能有一個表可以將它設定為on。
@@identity可以返回插入行的標誌值,scope_identity()功能同上,ident_current(table)
外來鍵限制:
首先說說什麼是外來鍵:
成績表中的學號不是成績表的主鍵,但它和學生表中的學號相對應,並且學生表中的學號是學生表的主鍵,則稱成績表中的學號是學生表的外來鍵
例如:
如果dt_test1(id,name) dt_test2(UserName,pwd)這兩個表中的主鍵分別是id和UserName,dt_test1中的name是dt_test2的外來鍵的話,那麼插入dt_test1中的name的值就會有所限制,插入的值必須在dt_test2中出現過才行。
外來鍵限制是一種很普遍的現象,比如:
insert into dt_test1 values(..),在dt_test2中如果沒有相應的值會出現錯誤,如果在刪除dt_test2中的某行時,檢測到在dt_test1中有用到相應的值,那麼也會發生錯誤。
唯一索引限制:
空值和預設值限制:
check約束限制:
首先為表dt_test1新增一個check約束
alter table dt_test1
add constraint test_ct
check(id>1000)
此時,如果再向其中新增id<1000的資料行則會發生錯誤。
instead of 觸發器限制:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-672875/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 修改資料庫資料庫
- 如何修改資料庫例項及資料庫名資料庫
- ORACLE資料庫修改資料庫名db_nameOracle資料庫
- 修改資料庫路徑資料庫
- 修改資料庫名稱資料庫
- 使用ALTER修改資料庫資料庫
- 天翼雲RDS資料庫如何修改資料庫引數資料庫
- mysql 修改資料庫的列MySql資料庫
- mysql修改資料庫編碼MySql資料庫
- 修改資料庫字符集資料庫
- 修改SQL Server資料庫地址SQLServer資料庫
- [Oracle]Oracle資料庫資料被修改或者刪除恢復資料Oracle資料庫
- Oracle NID工具修改資料庫DBID和資料庫名稱Oracle資料庫
- nid修改資料庫名稱資料庫
- 如何修改MySQL資料庫名稱MySql資料庫
- 修改Oracle資料庫字符集Oracle資料庫
- oracle資料庫修改連線數Oracle資料庫
- 修改資料庫的歸檔模式資料庫模式
- 修改資料庫字符集(轉)資料庫
- 修改Oracle資料庫表的大小Oracle資料庫
- 我應該手動修改線上資料庫的資料嗎?資料庫
- postgresql資料庫安裝以及修改資料檔案路徑SQL資料庫
- 將rac資料庫改為單機資料庫需要修改的引數資料庫
- 7.在外部資料庫中存取和修改資料(筆記)資料庫筆記
- 修改Oracle資料庫字符集(zt)Oracle資料庫
- 用NID修改資料庫名稱資料庫
- 使用NID修改Oracle資料庫名Oracle資料庫
- DM7修改資料庫引數資料庫
- greenDAO資料庫之修改儲存地址資料庫
- 將資料庫修改為歸檔模式資料庫模式
- oracle 修改資料庫為歸檔模式Oracle資料庫模式
- 修改資料庫檔名字和路徑資料庫
- 修改資料庫db_name的方法資料庫
- 怎樣修改資料庫字符集資料庫
- 修改資料庫的日期顯示格式資料庫
- 二、修改資料庫全域性名稱資料庫
- sqlserver資料庫埠號怎麼修改SQLServer資料庫
- rails 修改資料庫之後注意修改controllerAI資料庫Controller