無錫做網(wǎng)站6seo技術(shù)助理
1.數(shù)據(jù)更新
1.插入數(shù)據(jù)
1.插入元組
語句格式 ?? ?
INSERT ?? ?
INTO <表名> [(<屬性列1>[,<屬性列2 >…)] ?? ?
VALUES (<常量1> [,<常量2>]… );
功能:將新元組插入指定表中
INTO子句 :
指定要插入數(shù)據(jù)的表名及屬性列
屬性列的順序可與表定義中的順序不一致
沒有指定屬性列:表示要插入的是一條完整的元組,且屬性列屬性與表定義中的順序一致
指定部分屬性列:插入的元組在其余屬性列上取空值
VALUES子句? :
提供的值必須與INTO子句匹配: 值的個數(shù), 值的類型
將一個新學(xué)生元組(學(xué)號:201215128;姓名:陳冬;性別:男;所在系:IS;年齡:18歲)插入到Student表中。INSERTINTO Student (Sno,Sname,Ssex,Sdept,Sage)VALUES ('201215128','陳冬','男','IS',18);將學(xué)生張成民的信息插入到Student表中。INSERTINTO StudentVALUES ('201215126','張成民','男’,18,'CS');插入一條選課記錄( '200215128','1 ')。INSERTINTO SC(Sno,Cno)VALUES ('201215128 ',' 1 ');關(guān)系數(shù)據(jù)庫管理系統(tǒng)將在新插入記錄的Grade列上自動地賦空值?;蛘?#xff1a;INSERTINTO SCVALUES (' 201215128 ',' 1 ',NULL);
2.插入子查詢結(jié)果 (可以一次插入多個元組)
語句格式:? ? ?
INSERT ? ?
INTO <表名> ?[(<屬性列1> [,<屬性列2>… ?)] ??? ?
子查詢;
INTO子句
子查詢 :SELECT子句目標列必須與INTO子句匹配 (值的個數(shù) ,值的類型)
對每一個系,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫
第一步:建表CREATE TABLE Dept_age( Sdept CHAR(15) /*系名*/Avg_age SMALLINT); /*學(xué)生平均年齡*/第二步:插入數(shù)據(jù)INSERTINTO Dept_age(Sdept,Avg_age)SELECT Sdept,AVG(Sage)FROM StudentGROUP BY Sdept;
關(guān)系數(shù)據(jù)庫管理系統(tǒng)在執(zhí)行插入語句時會檢查所插元組是否破壞表上已定義的完整性規(guī)則
實體完整性
參照完整性
用戶定義的完整性: NOT NULL約束, UNIQUE約束 ,值域約束
2.修改數(shù)據(jù)
語句格式 ? ?
UPDATE ?<表名> ? ?
SET ?<列名>=<表達式>[,<列名>=<表達式>]… ? ?
[WHERE <條件>];
功能 :
修改指定表中滿足WHERE子句條件的元組
SET子句給出<表達式>的值用于取代相應(yīng)的屬性列
如果省略WHERE子句,表示要修改表中的所有元組
1.修改某一個元組的值
將學(xué)生201215121的年齡改為22歲UPDATE StudentSET Sage=22WHERE Sno=' 201215121 ';
2.修改多個元組的值
將所有學(xué)生的年齡增加1歲。UPDATE StudentSET Sage= Sage+1;
3.帶子查詢的修改語句
將計算機科學(xué)系全體學(xué)生的成績置零。UPDATE SCSET Grade=0WHERE Sno IN(SELETE SnoFROM StudentWHERE Sdept= 'CS' );
關(guān)系數(shù)據(jù)庫管理系統(tǒng)在執(zhí)行修改語句時會檢查修改操作是否破壞表上已定義的完整性規(guī)則
實體完整性
主碼不允許修改
用戶定義的完整性 : NOT NULL約束,? UNIQUE約束 , 值域約束
3.刪除數(shù)據(jù)?
語句格式 ? ? ? ?
DELETE ? ? ? ?
FROM ? ? <表名> ? ? ?
?[WHERE <條件>];
功能:
刪除指定表中滿足WHERE子句條件的元組
WHERE子句:
指定要刪除的元組
缺省表示要刪除表中的全部元組,表的定義仍在字典中
1.刪除某一個元組的值 ?
刪除學(xué)號為201215128的學(xué)生記錄。DELETEFROM StudentWHERE Sno= 201215128 ';
2.刪除多個元組的值
刪除所有的學(xué)生選課記錄。DELETEFROM SC;
3.帶子查詢的刪除語句
刪除計算機科學(xué)系所有學(xué)生的選課記錄。DELETEFROM SCWHERE Sno IN(SELETE SnoFROM StudentWHERE Sdept= 'CS') ;
2.練習(xí)
/*(1)在 Departments中插入一個部門,部門編號為4,部門為銷售部。*/
INSERT
INTO Departments(DepartmentID,DepartmentName)
VALUES ('4','銷售部');/*(2)自擬數(shù)據(jù),對Employee表插入4個元祖,要求都是銷售部的員工。*/
INSERT
INTO Employee
VALUES
('4001','張三','1956-3-12',0,'河南鄭州','475012','3345378','zs@henu.edu.cn','4'),
('4002','王五','1978-11-2',1,'河南新鄉(xiāng)','475013','0764311','ww@henu.edu.cn','4'),
('4003','李四','1998-6-22',0,'云南昆尼','475014','0378652','ls@henu.edu.cn','4'),
('4004','劉二','1946-10-3',1,'河北廊坊','475015','7765987','le@henu.edu.cn','4');/*(3)將’1003’號員工的地址變?yōu)椤瓣兾鳌薄?/
update Employee
set Address='陜西'
where EmployeeID='1003';/*(4)將研發(fā)部所有職員的Income漲500元。*/
update Salary
set Income=Income+500
where EmployeeID in (select EmployeeIDfrom Employeewhere DepartmentID in(select DepartmentIDfrom Departmentswhere DepartmentName='研發(fā)部'));/*(5)將‘2002’號員工的地址變?yōu)椤本?#xff0c;所屬部門改為2。*/
update Employee
set Address='北京' ,DepartmentID='2'
where EmployeeID='2002';/*(6)將Salary表中前3個元組的outcome屬性值統(tǒng)一修改為1100。*/
update top(3) Salary
set OutCome='1100';update Salary set OutCome=REPLACE(OutCome,1500,1100)
update Salary set OutCome=REPLACE(OutCome,1000,1100)
update Salary set OutCome=REPLACE(OutCome,1200,1100);/*(7)將‘3001’號員工調(diào)入財務(wù)部。*/
update Employee
set DepartmentID='1'
where EmployeeID='3001';/*(8)在Departments表中新增一名為DepartmentTEL的屬性列,并插入正確的數(shù)據(jù)信息。(DepartmentTEL為8位的部門電話)*/
alter table Departments
add DepartmentTEL char(8)update Departments set DepartmentTEL='34568765' where DepartmentID='1'
update Departments set DepartmentTEL='34359665' where DepartmentID='2'
update Departments set DepartmentTEL='98648765' where DepartmentID='3'
update Departments set DepartmentTEL='47836865' where DepartmentID='4';/*(11)刪除Departments表的‘Note’列。*/
alter table Departments
drop column Note;/*(12)在Salary表中新增一名為Stime的屬性列,Stime的值為插入時系統(tǒng)的時間數(shù)據(jù)*/
alter table Salary
add Stime date not null default getdate()/*(13)刪除“王霞”的信息。*/
delete from Salary
where EmployeeID in( select EmployeeIDfrom Employeewhere Name='王霞') ;