1 数据操纵语言
- 数据操纵语言用于检索、插入和修改数据
- 数据操纵语言是最常见的SQL命令
- 数据操纵语言命令包括:
SELECT 查询
INSERT 添加
UPDATE 修改
DELETE 删除
2 SELECT命令(查询)
2.1 查询表中记录
SELECT * FROM EMP; --查询所有员工信息
2.2 利用现有的表创建表
语法:CREATE TABLE new_table_name AS
SELECT column_names FROM old_table_name;
2.3 选择无重复的行(DISTINCT关键字)
在SELECT子句,使用DISTINCT关键字
SELECT DISTINCT emp_name FROM emp;
2.4 使用列别名
为列表达式提供不同的名称
该别名指定了列标题
select emp_id,emp_name,emp_sex,emp_birthday,emp_salary*2 from emp;
select emp_id,emp_name,emp_sex,emp_birthday,emp_salary*2 as "双倍薪资" from emp;
3 INSERT命令(添加)
3.1 添加记录
insert into emp (emp_id,emp_name,emp_sex,emp_salary)
values(2,'李四','女',3000);
3.2 插入日期类型的值
- 日期数据类型的默认格式为“DD-MON-RR”
- 使用日期的默认格式
- 使用TO_DATE函数转换
insert into emp (emp_id,emp_name,emp_sex,emp_birthday,emp_salary)
values(5,'李四','女','12-12月-2017',3000);insert into emp (emp_id,emp_name,emp_sex,emp_birthday,emp_salary)
values(6,'李四','女',to_date('2017-12-12','YYYY-MM-DD'),3000);
3.3 插入来自其它表中的记录
INSERT INTO table_name SELECT column_names FROM other_table_name;
insert into emp2 select * from emp;
insert into emp2(emp_id,emp_name) select emp_id,emp_name from emp;
4 UPDATE命令(修改)
update emp set emp_name = '张三',emp_sex='男' where emp_id='3'
5 DELETE命令(修改)
delete from emp --删除所有记录
delete from emp where emp_id=1 --删除一条记录
6 DROP、TRUNCATE和DELETE的区别
(1) 日志记录
- DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。
- TRUNCATE TABLE则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快
(2) 表和索引所占空间
- 当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小
- DELETE操作不会减少表或索引所占用的空间。
- DROP语句将表所占用的空间全释放掉。
(3) 效率
drop > truncate > delete