class06_插入数据
插入数据
插入整行字段
插入整行所有字段的数据
插入整行字段:关键字:INSERT INTO
INSERT INTO 表名 VALUES(?,?,?,?);
?:代表当前表中需要输入的值
假如需要向teacher表中插入Alex老师和Bryant老师的数据:
可使用如下语句:
INSERT INTO teacher VALUES(‘T0001’,’Alex’,’woman’)
INSERT INTO teacher VALUES(‘T0002’,’Bryant’,’man’)
[注意]:值的顺序与表中的字段顺序必须一致!这样并不安全
安全的写法如下↓:这样就可保证值是一一对应的
INSERT INTO teacher(teacher_id,teacher_nm,gender) VALUES('T0003','Cici','woman');
插入部分字段
插入行的部分字段数据
【可以为NULL的字段,可以直接省略,这样省略的值直接为NULL,如下】
INSERT INTO teacher(teacher_id,teacher_nm) VALUES('T0004','David');
这样David 的性别就是NULL
一次插入多行
使用一条SQL语句插入多行数据
一次插入多行数据:
INSERT INTO teacher VALUES(‘T0001’,’Alex’,’woman’),( ‘T0002’,’Bryant’,’man’);
逗号分隔即可多条数据
【注意:】
- 建议一条SQL语句插入的条数在1000条以下;
- 还受限于数据库支持的单条SQL语句的长度;
借助其他结果集插入
根据其他SQL执行结果集来插入数据
借助其他表的数据完成数据插入:
SELECT * FROM teacher:
↑该条SQL的执行结果是返回teacher表中的所有数据。
INSERT INTO teacher SELECT * FROM teacher
↑这条SQL是用返回的结果集作为数据插入,即翻倍teacher
克隆表
根据一张已存在的表生成一张新表
teacher[原表]--àteacher_bak[克隆的新表]
两种写法:
- 方法一:
a) SELECT * INTO teacher_bak FROM teacher;
- 方法二:
a) CREATE TABLE teacher_bak AS SELECT * FROM teacher
【注意:】
不用的数据库,可能仅仅支持上面两种方法中的一种,或者两种都不支持,而是其特殊的写法