DML语句
create语句
创建表
create table job_grades (
gra varchar2(3),
lowest_sal number,
highest_sal number)
方式一: 复制表结构及其数据
create table employees_new as select * from employees
方式二:只复制表结构
create table employees_new as select * from employees where 1=2
或者
create table employees_new like employees
INSERT 语句
方式一:写出表名+列名
INSERT INTO departments
(department_id, department_name)
VALUES
(30, 'Purchasing');
注意:在“列”中,对于不允许为NULL的列,必须写出来;对于允许为NULL的列,可以不写出来
在Value中,对于列中未写出来的列,默认赋予NULL值
方式二:仅写出表名
INSERT INTO departments
VALUES (100, 'Finance', NULL, NULL);
注意:在Value中必须对应写出每个列的值,即是是允许NULL的字段,也必须显式的给出 NULL
方式三:从另一个表中 Copy 一行
语法:INSERT INTO table [ column (, column) ] subquery;
注意:在这种方式下,不要使用VALUES 关键字
INSERT INTO sales_reps
(id, NAME, salary, commission_pct)
SELECT employee_id, last_name, salary, commission_pct
FROM employees
WHERE job_id LIKE '%REP%';
方式四:使用子查询作为插入目标
INSERT INTO
(SELECT employee_id,
last_name,
email,
hire_date,
job_id,
salary,
department_id
FROM employees
WHERE department_id = 50)
VALUES
(99999,
'Taylor',
'DTAYLOR',
to_date('1999-07-07', 'YYYY-MM-DD'),
'ST_CLERK',
5000,
50);
方式五:只复制表数据
如果两个表结构一样:
insert into employees_new
select * from employees
如果两个表结构不一样:
insert into employees_new
(employee_id, last_name, salary)
select employee_id, last_name, salary from employees
UPDATE 语句
方式一:更新符合条件的行中某些列为具体的值
SELECT * FROM employees;
UPDATE employees SET department_id = 90 WHERE employee_id = 100;
方式二:使用子查询的结果作为更新后的值
UPDATE employees
SET job_id =
(SELECT job_id FROM employees WHERE employee_id = 205),
salary =
(SELECT salary FROM employees WHERE employee_id = 205)
WHERE employee_id = 114;
注意:当存在约束的时候,某些更新可能会失败,如:存在外键关系,不存在本表中
DELETE 语句
举例一:删除某些符合条件的记录
DELETE FROM departments
WHERE department_name = 'Finance';
举例二:删除一张表中的所有记录
SELECT * FROM departments
如果遇到这种需求,也可以使用TRUNCATE 语句,TRUNCATE TABLE copy_emp ,
但要注意,TRUNCATE 语句无法回滚,因此除非是单独执行,并非常确认,否则慎用。
TRUNCATE TABLE departments;
注意:当存在约束的时候,某些删除可能会失败,如:存在外键关系,不存在本表中
drop 语句:删除表
drop table table_a
MERGE 语句: 比较整合语句
MERGE INTO copy_emp c
USING employees e
ON (c.employee_id = e.employee_id)
WHEN MATCHED THEN
UPDATE
SET c.first_name = e.first_name,
c.last_name = e.last_name,
c.email = e.email,
c.phone_number = e.phone_number,
c.hire_date = e.hire_date,
c.job_id = e.job_id,
c.salary = e.salary,
c.commission_pct = e.commission_pct,
c.manager_id = e.manager_id,
c.department_id = e.department_id
WHEN NOT MATCHED THEN
INSERT
VALUES
(e.employee_id,
e.first_name,
e.last_name,
e.email,
e.phone_number,
e.hire_date,
e.job_id,
e.salary,
e.commission_pct,
e.manager_id,
e.department_id);

本文介绍了数据库操作相关语句。包括create语句创建表的两种方式,INSERT语句插入数据的五种方式,UPDATE语句更新数据的两种方式,DELETE语句删除记录的两种情况,drop语句删除表,以及MERGE语句进行比较整合。同时还提及了各操作的注意事项。
1461

被折叠的 条评论
为什么被折叠?



