1.插入记录有四种情况:
插入单行记录: INSERT INTO tablename(column1,...columnn) VALUES(value1,...,valuen)
插入多行记录: INSERT INTO tablename(column1,...columnn) VALUES(value1,...,valuen), ...,(value1,..., valuen)
通过子查询插入记录: INSERT INTO tablename(column1,...columnn)(SELECT column1,... columnn FROM t1) 后面这个()可以没有
通过视图插入记录: INSERT INTO view_name(column1,...columnn) VALUES(value1,..., valuen), ...,(value1,..., valuen)
在SQL中,没有字段的关键字,因为字段名都是跟在表名后的,所以就没有必要了。每一个字段都是一个变量
例子:
INSERT INTO t1 VALUES(‘07’,’艺术系’,NULL) :插入整行记录
INSERT INTO t1 (dno,deptname)VALUES(‘07’,’艺术系’),(‘08’,’生物系’) :插入多行记录
INSERT INTO t1(dno,dname) SELECT DISTINCT dno,dname FROM t2 :子查询插入记录
2.更新(修改)记录有2种情况
使用UPDATE直接更新底层表数据: UPDATE tablename SET column1=value1,..., columnn=valuen WHERE condition
通过视图更新底层表数据: UPDATE view_name SET column1=value1,..., columnn=valuen WHERE condition
例子:
UPDATE teacher SET sal=sal+100 WHERE rno=’0101’ 将0101教师工资增加100
3.删除记录有4种情况
通过DELETE 删除一行或多行数据: DELETE FROM tablename WHERE condition
通过视图删除表数据: DELETE FROM viewname WHERE condition
通过子查询删除表数据: DELETE FROM tablename WHERE condition(子查询)
全部删除表数据: DELETE FROM tablename
例子:
DELETE FROM t2 WHERE tno=’199202’ 删除一行或多行
DELETE FROM t2 删除t2中所有记录
DELETE FROM view_t2 WHERE sal<1200 通过视图删除记录
DELETE FROM t2 WHERE sex=’男’ AND sal>(SELECT AVG(sal) FROM t2)子查询删除记录
TRUNCATE与DELETE的区别:DELETE是一行一行的删除,速度慢,需要更新事务处理日志,支持回滚(ROOLBACK);TRUNCATE一次性删除与表有关的所有数据页,速度快,不记录日志,不能回滚。