INSERT 插入数据
前面几节介绍了表的设计、修改、删除等等操作,本小节主要介绍如何向数据表插入数据。
1.向数据表插入一条数据
这里以前面新建的 teacher 表为例, teacher 表的字段为 name、age、id_number,向教师表新增一条数据命令如下:
INSERT INTO teacher (name,age,id_number) VALUES ('秦小贤',18,'42011720200604088X');
执行下上面的这条命令,执行结果如下图:
其中 “INSERT INTO” 关键字表示这条命令是插入数据命令,“teacher” 是要插入数据的目标数据表名称,“name,age,id_number” 是表的字段名,“VALUES” 后面跟的是字段对应的值,值的顺序和前面字段的顺序一致。
2. 查询表所有数据
上面介绍了如何向数据表插入一条数据,这里需要查看数据表已有的所有数据:
SELECT * FROM teacher;
执行结果如下图:
“SELECT” 关键字表示这条命令是查询相关命令,"*" 则代表要查询出表中所有的数据。“FROM teacher” 则表明要查询的是哪一个数据表。
关于 SELECT 查询语句还有很多中使用场景,比如我们要查询出表中 age 字段的值大于 20 岁的数据。关于 SELECT 的其他使用我们会在后面的小节详细讲解。
3. 向数据表插入多条数据
新增多条数据命令:
INSERT INTO teacher
(name,age,id_number)
VALUES
('王小花',19,'42011720200604077X'),
('张晓丽',18,'42011720200604099X'),
('刘美丽',20,'42011720200604020X'),
('吴帅',21,'42011720200604022X'),
('张平',22,'42011720200604033X');
INSERT INTO course (course_name,teacher_id) VALUES
('毛概',1),
('线性代数',2),
('政治',3),
('程序设计语言',1),
('离散数学',2),
('编译技术',3),
('嵌入式基础',1),
('单片机原理',2),
('图像处理',3),
('数字信号处理',1),
('专业英语',2),
('网络编程',3);
INSERT INTO student (name,age,id_number) VALUES
('赵小明',21,'420117199303036666'),
('王小红',22,'420117199303037777'),
('张小虎',18,'420117199303038888'),
('李小平',19,'420117199303039999'),
('刘美丽',21,'420117199303035555'),
('周杰',22,'420117199303034444'),
('秦小贤',19,'420117199303033333'),
('马笑',23,'420117199303032222'),
('艾伦',22,'420117199303031111'),
('包小天',20,'420117199303030000');
执行结果如下图:
4.小结
本小节介绍了如图向数据表插入一条数据、查询表所有数据、向表插入多条数据。前面介绍数据表的设计规范时介绍了数据表的第二设计范式要求所有数据表需要有业务主键。需要注意的是本节中 teacher 表的业务主键为自增 id,因此插入数据的时候不需要插入 id 字段的值。id 字段的默认是从 1 开始自增的,也可以指定自增起始值,如下建表语句,id自增值是从100开始的:
CREATE TABLE `teacher` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL DEFAULT '教师名',
`age` int(10) unsigned NOT NULL DEFAULT '0',
`id_number` varchar(18) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8;
其中 “AUTO_INCREMENT=100” 表示自增主键 id 的值默认从 100 开始自增加的。
评论