INSERT
①INSERT INTO table [(column [, column…])]
VALUES (value [, value…]);
使用这种语法一次只能向表中插入一条数据。
不能使用这种方式同时向表中插入多条数据
②通过创建脚本的方式
如:INSERT INTO departments
(department_id, department_name, location_id)
VALUES (&department_id, ‘&department_name’,&location);
和C语言中取地址符类似
③INSERT INTO sales_reps(id, name, salary, commission_pct)
SELECT employee_id, last_name, salary, commission_pct
FROM employees
WHERE job_id LIKE ‘%REP%’;
从其他表中拷贝数据,可以根据WHERE子句来确定是否插入数据,以及插入什么数据
UPDATE
UPDATE table
SET column = value [, column = value, …]
[WHERE condition];
可以一次更新多条数据:同样的用WHERE子句来控制
同样的也可以在UPDATE语句中使用子查询
DELETE
DELETE FROM table
[WHERE condition];
同样的也可以在DELETE语句中使用子查询
约束是一种规定
**NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK**
创建表的同时可以创建约束
创建表后可以修改约束
可以在表级或列级定义约束
可以通过数据字典来查看约束
表级约束和列级约束:
作用范围:
①列级约束只能作用在一个列上
column [CONSTRAINT constraint_name] constraint_type,
②表级约束可以作用在多个列上(当然表级约束也
可以作用在一个列上)
column,…
[CONSTRAINT constraint_name] constraint_type
(column, …),
定义方式:列约束必须跟在列的定义后面,表约束不与列一起,而是单独定义。
UNIQUE :
唯一约束,允许出现多个空值:NULL。
FOREIGN KEY:
FOREIGN KEY: 在表级指定子表中的列
REFERENCES: 标示在父表中的列
ON DELETE CASCADE(级联删除): 当父表中的列被删除时,子表中相对应的列也被删除
ON DELETE SET NULL(级联置空): 子表中相应的列置空
CHECK:
可以理解为自定义约束
练习的话,我会单独写一篇。因为学sql主要就是的练,最难的部分就是子查询,需要多练,这里给大家说一下我认为比较高效的联系方法,就是一定要注意书写格式,例如:
--查询平均工资最低的部门信息和该部门的平均工资
SELECT d.*, (SELECT avg(salary)
FROM employees
WHERE department_id = d.department_id)
FROM departments d
WHERE department_id = (
SELECT department_id
FROM employees
GROUP BY department_id
HAVING avg(salary) = (
SELECT min(avg(salary))
FROM employees
GROUP BY department_id
)
)
这样的书写格式方便分析
原文地址:http://blog.csdn.net/sloverpeng/article/details/44029593