打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SQL基础入门:第6课:插入数据
本节要点
插入整行字段
插入部分字段
一次性插入多行
借助其他表数据插入
克隆表
在前面我们学习了如何使用SQL语句来创建一张表,但是表创建以后呢,其实表里边是没有数据的,是一张空表。从这节课开始,我们来讲解一下怎么在这张空表里边插入一条数据。我们可以一次性插入一行,或者多行,或者我们借助于其他的结果集来插入数据。在讲之前,先来复习一下前面的知识点:如何使用SQL语句去创建一张表。
CREATE TABLE teacher (
teacher_id VARCHAR(50) NOT NULL,
teacher_name VARCHAR(100) NOT NULL DEFAULT '未知',
gender VARCHAR(10),
PRIMARY KEY ( teacher_id)
);
如果不清楚的,请回去复习前面我们讲过的字段、字段类型、是否允许空值、默认值以及主键。
插入整行字段
现在我们开始讲解插入整行的数据。插入数据的关键字是INSERT INTO。语法如下:
INSERT INTO 表名 VALUES (?,?,?,?);
比如向teacher表中插入高齐妍老师和李红老师的数据:
INSERT INTO teacher VALUES ('T0001','高齐妍','男');
INSERT INTO teacher VALUES ('T0002','李红','女');
插入后,使用MySQL-Front的数据浏览器查看效果如下:
以上写法,值的顺序与表中的字段顺序必须一致,其实不是非常安全。严谨的写法应该是把列名写全,与值一一对应。像下面这样:
INSERT INTO teacher(teacher_id,teacher_name,gender) VALUES ('T0001','高齐妍','男');
插入部分字段
但是,如果我们在插入李一萱老师的数据时,并不知道李一萱老师的性别,这时候怎么办呢?其实我们可以像下面这样,将李一萱的性别字段赋值为NULL(这里要求性别字段可为NULL):
INSERT INTO teacher(teacher_id,teacher_name,gender) VALUES ('T0003', '李一萱',NULL);
或者使用以下简写写法:
INSERT INTO teacher(teacher_id,teacher_name) VALUES ('T0003', '李一萱');
插入后,使用MySQL-Front的数据浏览器查看效果如下:
假如老师姓名有设置默认值,当我们不知道老师名字时,我们甚至可以在插入时省略老师名字的数据:
INSERT INTO teacher(teacher_id) VALUES ('T0004');
插入后,使用MySQL-Front的数据浏览器查看效果如下:
一次性插入多行
上面我们讲过,一次性插入多行数据,可以使用多个INSERT INTO语句多次插入,像下面这样:
INSERT INTO teacher VALUES ('T0001','高齐妍','男');
INSERT INTO teacher VALUES ('T0002','李红','女');
其实,还有一种简单的写法,像下面这样,只写一个INSERT INTO就可以了,后面使用多个括号,跟上多个值。这两种写法是等价的。
INSERT INTO teacher VALUES ('T0001','高齐妍','男'), ('T0002','李红','女');
注意:建议一条SQL语句插入的条数在1000条以下,怕主要受限于数据库支持的单条SQL语句的长度。
借助其他表数据插入
有时候,还可以将另一张表的数据,插入我们想要插入的目标表。比如:
INSERT INTO teacher_b SELECT * FROM teacher_a;
上面代码中,SELECT * FROM teacher;的执行结果是返回teacher表中的所有数据,在前面加上INSERT INTO teacher,就是说,将SELECT出来的结果插入目标表。
事实上,可以将任何合法的SELECT语句返回的结果集,插入指定的目标表。当然,前提是SELECT结果集的字段个数、字段类型、字段顺序与目标表的字段个数、字段类型、字段顺序一致。
注意:字段个数、字段类型、字段顺序都必须保持一致,否则很可能会导致插入失败。
克隆表
克隆表就是说,根据一张表创建另一张新表,这张新表的表结构和数据跟原表是一样的。一般来说有下面两种写法:
SELECT * INTO teacher_bak FROM teacher;
CREATE TABLE teacher_bak AS SELECT * FROM teacher;
注意:不同的数据库,可能仅支持上面两种中的一种,或者两种都不支持,而是支持其特殊的写法。这个在使用的时候需要特别注意。
课后习题:
1、为第5课为论坛设计的注册用户表,创建一张表结构完全相同的备份表。
2、将注册用户表中的数据,全部插入备份表。
3、向注册用户表中插入如下数据。
用户名手机号邮箱地址QQ号所在地省所在地市所在地区个性签名
有琴忧梦13156944210368502201@qq.com368502201广东省深圳市福田区难得的好脾气,有些时候知道了道理就容易多了,不会吵闹也没必要发脾气。
黑客高手813818197080549143356@qq.com549143356河北省石家庄市新华区
宝贝妈妈520139754922382316786@126.com
广东省深圳市南山区Eternity is not a distance but a decision.永远不是一种距离,而是一种决定。
仔仔13563571897906848669@qq.com906848669河北省石家庄市唐山市用文字寄托那一生的悲伤 、
G旋律13273250176127559745@163.com127559745河南省郑州市二七区听歌别听中文歌,否则中国人会说你没品味。
巧克力豆13296786665604848412@qq.com604848412广东省深圳市南山区世上本无事,庸人自扰之
狮子13882694448200877734@hotmail.com200877734
听说:成熟永远比长的帅更吸引人。
傻愣愣的13438268133673356@qq.com673356河北省石家庄市唐山市人生嘛,就是笑笑别人,顺便再让别人笑笑。
红颜亦醉13724104658561495977@gmail.com561495977广东省广州市白云区He as smile is the world as most gentle strength.  (-他的笑是这世界上最温柔的力量。)
天蝎座13952872131114096499@gmail.com114096499河北省石家庄市唐山市爱和依赖是有区别的 依赖是离不开 而爱是不离开
请大家将自己的答案发在留言区。点击原文链接查看【课后习题答案】 。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
常用的SQL语句
sql语句大全(详细)
12.2 删除表中的数据 - 《精通SQL——结构化查询语言详解》 - 免费试读 - bo...
转贴:SQL SERVER面试题1
SQL查询语句使用方法参考二
一个小时学会MySQL数据库
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服