MySQL数据库学习11-插入数据

来源:互联网 发布:汉宁窗 c语言 编辑:程序博客网 时间:2024/05/19 14:16

创建用于演示的表person:
这里写图片描述

一、插入数据
1.为表的所有字段插入数据
语法格式:

INSERT INTO table_name (column1,column2,...) VALUES (value11,value12,...),(value21,value22,...),...;

其中column_list 指定要插入数据的列,value_list指定每个列对应的插入的数据,字段列的数量和数据值的数量必须相同。
a.向person表中插入一条新记录,id值为1,name为Green,age为21,info为Lawyer。
这里写图片描述
b.插入一条新记录(不按顺序)
这里写图片描述
·插入数据时不需要按照表定义顺序插入,只需要保证值的顺序与字段顺序相同即可。
c.不指定任何列添加一条记录数据
这里写图片描述
·不指定插入列的时候,插入的数据顺序必须与表定义顺序相同且包含全部的列。
2.为表中指定字段插入数据
只向部分字段插入数据时,其他字段为定义表时的默认值。
a.不指定主键列和值添加一条记录
这里写图片描述
·id字段为主键不能为空,系统自动为该字段添加了自增的序列值4。
b.插入一条仅包含name和age 的记录
这里写图片描述
·因为没有指定info,系统自动为该字段插入空值。
3.同时插入多条记录
插入多条记录语法格式见1中描述。
a.同时插入3条记录
这里写图片描述
b.不指定插入列插入数据
这里写图片描述
·带有AUTO_INCREMENT属性的id字段插入NULL值,系统自动为该字段插入唯一的自增编号。
·一个同时插入多行的INSERT语句等同于多个单行插入的INSERT语句,但是多行的INSERT语句在处理过程中效率更高。
4.将查询结果插入到表中
INSERT语句还可以将SELECT语句查询的结果插入到表中,语法格式如下:

INSERT INTO table_name1 (column_list1) SELECT (column_list2) FROM talbe_name2 WHERE (codition)

table_name1指待插入数据的表;column_list1指待插入表中要插入数据的那些列;table_name2指插入数据是从哪个表中查询出来的;column_list2指数据来源表的查询列,该表必须和column_list1列表中的字段个数相同,数据类型相同。
a.创建一个新的表person_old,将其插入到person中
这里写图片描述
这里写图片描述
·此处应当注意主键id的值,若重复则会报错。
·这个例子中两个表的定义相同,事实上MySQL并不关心SELECT返回的列名,它根据列的位置进行插入,SELECT的第一列对应待插入表的第一列以此类推,可以方便地进行数据转移。

阅读全文
1 0
原创粉丝点击