对数据库的操作除了查询,还包括插入、更新和删除等数据操作。后3种数据操作使用的 sql 语言也称为数据操纵语言(dml)。
一、插入数据(insert 语句)
插入数据就是将数据记录添加到已经存在的数据表中,可以通过 insert 语句实现向数据表中一次插入一条记录,也可以使用 select 子句将查询结果批量插入数据表。
1、单条插入数据
语法:
insert into table_name [ (column_name[,column_name2]...) ] values(express1[,express2]... )
- table_name:要插入数据的表名
- column_name1 和 column_name2:指定表的完全或部分列名称
- express1 和 express2 :表示要插入的值列表
eg:
sql > insert into dept(deptno,dname,loc) values(88,'tony','tianjin')
注意:
- insert into 中指定添加数据的列,可以是数据表的全部列,也可以是部分列
- 给指定列添加数据时,需要注意哪些列不能空;对于可以为空的列,添加数据可以不指定值;添加数据时,还应该数据添加数据和字段的类型和范围
- 向表中所有列添加数据时,可以省略 insert into 子句后面的列表清单,使用这种方法时,必须根据表中定义列的顺序为所有的列提供数据
- 添加数据时,还应该注意哪个字段是主键(主键的字段是不允许重复的),不能给主键字段添加重复的值
2、批量插入数据
insert 语句还可以一次向表中添加一组数据,可以使用 select 语句替换原来的 values 子句,语法如下:
insert into table_name [ (column_name1[,column_name2...]...) ] selectsubquery
- table_name:要插入数据的表名
- column_name1 和 column_name2 :表示指定的列名
- selectsubquery:任何合法的 select 语句,其所选列的个数和类型要与语句中的 column 对应。
eg:
sql > insert into jobs_temp select * from jobs where jobs.salary > 1000
注意:
- 使用这种语句实现批量插入数据时,insert into 子句指定的列名可以与 select 子句指定的列名不同,但是它们之间的数据类型必须是兼容的
二、更新数据(update 语句)
如果表中的数据不正确或不符合需求,那么就可以通过 update 语句实现修改现有的数据记录。