SQL学习笔记1.1——DML

1  数据操纵语言  DML

    数据操纵语言(Data Manipulation Language,DML)用于查询与修改数据记录,控制事务。

    事务:是由完成若干项工作的DML语句组成的。

 

1.1  增  INSERT

(1)向表中的所有列增加数据。

insert into 表名
values (列1值,列2值,……)

例1:向emp1表中增加一行数据,emp1的列有employees_id,last_name,hire_date,salary四列。

insert into emp1
values (1001,'AA',sysdate,10000)

例2:在例1的基础上再增加一条数据,其中salary的值为空。

insert into emp1
values (1003,'CC',sysdate,null)

(2)向表中的特定几列增加数据。

insert into 表名(列名1,列名2,……)
values (列1值,列2值,……)    

例1:

insert into emp1(employee_id,last_name,hire_date)
values (1001,'AA',sysdate)

(3)依托于已有的表,向表中增加数据。

例1:

insert into emp1(employee_id,last_name,hire_date,salary)
select employee_id,last_name,hire_date,salary
from employees
where department_id = 80

 

1.2  删  DELETE

delete from 表名
where 过滤条件

 例1:从emp1表中删除部门名称中含public字符的部门id。

delete from emp1
where department_id = (select department_id 
                       from departments 
                       where department_name like '%public%')

 

1.3  改  UPDATE…SET…WHERE

    一般修改数据仅涉及某几条,很少有全表修改的情况,所以一定要注意添加过滤条件。修改完之后若不执行commit,则可以回滚;若执行了commit,则数据提交不可以回滚。

update 表名
set 列名 = 新值
where 过滤条件

例1:修改AA的薪水,使其薪水从10000变为12000.

update emp1
set salary = 12000
where last_name = 'AA'

例2:调整与emoployee_id为200的员工job_id相同的员工的department_id为employee_id为100的员工的department_id。

update emp1
set department_id = (select department_id 
                     from emp1 
                     where employee_id = 100)
where job_id = (select job_id 
                from emp1 
                where employee_id = 200)

例3:更改108号员工的信息,使其工资变为所在部门中的最高工资,job变为公司中平均工资最低的job_id。

update emp1
set salary = (
              select max(salary) 
              from emp1 
              where department_id = (select department_id 
                                     from emp1 
                                     where employee_id = 108)
	         ),
job_id = (
          select job_id  
          from emp1
          group by job_id 
          having avg(salary)= (select min(avg(salary))
                               from emp1
                               group by job_id)
         )
where employee_id = 108

 

1.4  查  SELECT

例:

select * from 某表

例:

select 某列,某列,某列 from 某表

 

1.5  数据库事务

        一组逻辑操作单元,使数据从一种状态变换到另一种状态。

        数据库事务由以下的部分组成:

               (1)一个或多个DML语句;

               (2)一个DDL语句;

               (3)一个DCL语句。

        数据库事务以第一个DML语句的执行作为开始,以下面的其中之一作为结束:

                commit或rollback语句;DDL语句(自动提交);用户会话正常结束;系统异常终止。

        其他用户不能看到用户所做的改变,知道当前用户结束事务。

        DML语句所涉及到的行被锁定,其他用户不能操作。

        常用savepoint 来设置存储点,与回滚一齐使用。

你可能感兴趣的:(SQL)