SQL语句类型
- DML语句 (Data Manipulation Language) 数据库操作语言
insert update delete select
- DDL语言 data definition Lanaguage
create table
create view index sequence synonym同义词
truncate table
- DCL语言 data control language数据语言
commit rollback savetpointe
数据控制/操作语言
可以在下列条件下执行:
- 向表中插入数据
- 修改现存数据
- 删除现存数据
事务是由完成若干项工作的DML语句组成的
insert语句
语法
使用这种语法一次只能向表中插入一条数据
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
- 为每一列添加一个新值。
- 按列的默认顺序列出各个列的值。
- 在 INSERT 子句中随意列出列名和他们的值。
- 字符和日期型数据应包含在单引号中。
插入一个完整数据
此时可以省略表后面的列名列表:
insert into emp values(1, 'aaaa1', 'job1', 7902, '17-12月-80', 8000, NULL, 20);
插入一个不完整数据
此时不可以省略表后面的列名列表:
insert into emp (empno, ename, job, deptno) values (2, 'aaa2', 'job2', 20);
插入空值有两种方式
插入日期/插入指定的值
insert into emp values(4, 'aaaa4', 'job1', 7902, to_date('1982-02-04 18:22:30', 'yyyy-mm-dd hh24:mi:ss'), 8000, NULL, 20);
INSERT INTO employees (employee_id,
first_name, last_name,
email, phone_number,
hire_date, job_id, salary,
commission_pct, manager_id,
department_id)
VALUES (113,
'Louis', 'Popp',
'LPOPP', '515.124.4567',
SYSDATE, 'AC_ACCOUNT', 6900,
NULL, 205, 100);
1 row created.
实现交互式的插入操作
- 在SQL 语句中使用
& 变量
指定列值。 & 变量
放在VALUES子句中。
insert into emp (empno, ename, job, deptno) values (&empno, 'aaa2', 'job2', &deptno);
从其它表中拷贝数据
在 INSERT 语句中加入子查询。
INSERT INTO sales_reps(id, name, salary, commission_pct)
SELECT employee_id, last_name, salary, commission_pct
FROM employees
WHERE job_id LIKE '%REP%';
4 rows created.
- 不必书写 VALUES 子句。
- 子查询中的值列表(select 参数列表)应与 INSERT 子句中的列名列表对应。
回退事务:
SQL> rollback;