在PL/SQL中的数据操纵语言
插入语句——INSERT
INSERT语句用于向数据库的表插入一行,由VALUES给定该行各列的值。
语法格式:
INSERT INTO <表名>[(<列名1>,<列名2>,…n)]
VALUES(<列值1>,<列值2>,…n)
其中,列值表必须与列名表一一对应,且数据类型相同。
向表的所有列添加数据时,可以省略列名表,但列值表必须与列名表顺序和数据类型一致。
使用PL/SQL语言进行插入、修改和删除后,为将数据的改变保存到数据库中,应使用COMMIT命令进行提交,使用方法如下:
COMMIT;
后面的SQL语句都省略COMMIT命令,运行时请自行添加。
注:如果没有用COMMIT,可以使用ROLLBACK撤销
【例】向student表插入表4.1各行数据。
INSERT INTO student VALUES('121001','刘鹏翔','男',TO_DATE('19920825','YYYYMMDD'),'计算机','201205',52);
INSERT INTO student VALUES('121002','李佳慧','女',TO_DATE('19930218','YYYYMMDD'),'计算机','201205',50);
INSERT INTO student VALUES('121004','周仁超','男',TO_DATE('19920926','YYYYMMDD'),'计算机','201205',50);
INSERT INTO student VALUES('124001','林琴','女',TO_DATE('19920321','YYYYMMDD'),'通信','201236',52);
INSERT INTO student VALUES('124002','杨春容','女',TO_DATE('19921204','YYYYMMDD'),'通信','201236',48);
INSERT INTO student VALUES('124003','徐良成','男',TO_DATE('19930515','YYYYMMDD'),'通信','201236',50);
注:TO_DATE函数:把字符型转化为日期型。括号里,前一个是字符,后一个是日期格式
使用SELECT语句查询插入的数据:
SELECT *
FROM student;
INSERT语句也用在数据库初始时插入数据
修改语句——UPDATE
UPDATE语句用于修改表中指定记录的列值。
语法格式:
UPDATE <表名>
SET <列名>={<新值>|<表达式>} [,…n]
[WHERE <条件表达式>]
其中,在满足WHERE子句条件的行中,将SET子句指定的各列的列值设置为SET指定的新值;
如果省略WHERE子句,则更新所有行的指定列值。
【例1】(有WHERE子句条件)
在employee表中将刘松涛的员工号改为1021,员工地址改为东大街34号。
UPDATE employee
SET eid='1021', address='东大街34号'
WHERE ename='刘松涛';
【例5.19】(省略WHERE子句)
在student表中,将所有学生的学分增加2分。
UPDATE student
SET tc=tc+2;
删除语句——DELETE、TRANCATE TABLE
1. DELETE语句
DELETE语句用于删除表中的一行或多行记录,它的基本语法格式如下:
语法格式:
DELETE FROM <表名>
[WHERE <条件表达式>]
该语句的功能为从指定的表或中删除满足WHERE子句条件行,若省略WHERE子句,则删除所有行。
【例】在employee表中,删除员工号为1021的行。
DELETE FROM employee
WHERE eid='1021';
2.TRANCATE TABLE语句
功能:删除一个表里的全部记录,释放表的存储空间,但此操作不可回退
语法格式:
TRUNCATE TABLE <表名>
注:如果用DELETE语句,删错了可以用ROLLBACK撤销,用TRANCATE TABLE语句不能撤销