SQL:是结构查询语言
SQL的语句是由DQL(数据查询语言:SELECT),DML(数据管理语言:增、删、改),DDL(数据定义语言:例如 创建表),DCL(数据库控制语言)
此片主要介绍如何写写DML。
```
//使用INSERT语句向表中插入数据的语法
INSERT INTO table [ (column [, column ...])]
VALUES (value [ ,value ...]) ;
//若使用上述语法只能向表中插入一条数据
###要想插入字符和日期数据应包含在单引号中。(其中需要注意的有:在插入日期的格式,要符合日期识别的要求。)
###如何向表中插入null值
INSERT INTO departments (department_id,department_name)
VALUES (30,'Purchasing')
//这种方式是隐式向数据库中插入NULL,这种方式由数据库帮用户将内容插入到数据库中,用户只将一部分列名写出之后,没有写的列名由数据库默认的添加为null输入到数据库中去了。
INSERT INTO departments
VALUES ( 100 ,'Finance',null,null);
//该方法是显示式实现向数据库中插入内容,因为当数据表后面没有任何列的时候,个人理解是按数据表创建的列进行数据的插入。所以没有要插入的数据写上数据名,没有写的需要数据库管理员手动的填入NULL。
//上面的方式都是以单行的方式进行数据的插入,但是SQL语言中如何一次性的插入多条数据进入到一个表中。方法如下(该方法涉及到子查询):
//使用的前提是先复制一个表中的信息(在oracle中进行数据备份的方法)
create table HR.DEPARTMENTS_COPY //其中HR.DEPARTMENTS_COPY备份的数据(备份过来的有数据和非空的约束条件。)
AS
SELECT *
FROM HR.DEPARTMENTS
//现在向赋值的表中插入多行数据的方法
INSERT INTO HR.departments_copy
SELECT *
FROM HR.departments
//虽然可以将多行数据插入到一个表中,但是还以有条件的,需要插入的数据与插入的表的列要一一对应。
如下样例
INSERT INTO sales_reps(id ,name,salary,commission_pct)
SELECT employee_id,last_name,salary,commission_pct)
FROM employees
WHERE job_id LIKE '%REP%';
//上面的例子中最重要的就是如何插入的数据要与原表一一对应。插入的数据类型一致。
####使用UPDATE语句进行更新数据
UPDATE table
set column = value [ , column = value , ...]
[ WHERE condition ];
UPDATE语句在没有限制条件的时候,会将一整列都删除,但是使用where语句之后,则是将其中的某几个列进行更新而不是将整个列进行更新。
####以上以使用UPDATE的语句进行数据的更新,下面据一些实例:
UPDATE HR.EMPLOYEES
SET department_id = 50
WHERE employee_id = 113;
####上面是使用正常的方式进行数据的更新,下面则是使用子查询的方式进行数据的更新
UPDATE HR.employees
set job_id =(SELECT job_id
FROM HR.employees
WHERE employee_id = 205)
salary =(SELECT salary
FROM employees
WHERE employee_id = 205
)
WHERE employee_id = 113;
//使用上面的更新语句要注意的事项就是在使用set方式进行数据的赋值的时候需要注意的就是等号两边的内容不能弄反,其次是需要注意的是在使用set的时候一定要注意使用的是单行查询(返回的结果是单行),在使用where的时候,可以使用单行子查询和多行子查询
//在使用set的时候为什么返回的结果是单行的呢,因为set是在给一个属性赋值,当使用的是多行查询的时候,返回多个内容,造成一个属性有多个值,从产生错误。
//例二:
UPDATE HR.EMPLOYEES
SET job_id = (SELECT job_id
FROM HR.EMPLOYEES
WHERE employee_id = 100)
WHERE job_id =(SELECT job_id
FROM HR.EMPLOYEES
WHERE employees_id = 200)
//由上面的两个例子可以了解到,在使用子查询的时候可以放在set的后面,以及在where的后面。
####使用DELETE语句的样例的方式
DELETE [ FROM ] table
[ WHERE condition ];
####上面是使用DELETE 的方法,下面举一些使用的例子
DELETE FROM HR.departments
WHERE department_name = 'Finance ';
//假如省略了where的条件的筛选,那么则将整个表的数据都删除了。