MySQL入门教程:使用INSERT语句插入新数据
最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!
我要咨询MySQL入门教程:使用INSERT语句插入新数据,语法:INSERT [INTO] tbl_name [(col_name,...)] VALUES (pression,...),…
INSERT [INTO] tbl_name SET col_name=expression, ...
让我们开始利用 INSERT 语句来增加记录,这是一个 SQL 语句,需要为它指定希望插入数据行的表或将值按行放入的表。INSERT 语句具有几种形式:
可指定所有列的值:
例如:
shell> MySQL –u root –p
MySQL> use mytest;
MySQL> insert into worker values(“tom”,”tom@yahoo.com”);
“INTO”一词自 MySQL 3.22.5 以来是可选的。(这一点对其他形式的 INSERT 语句也成立。)VALUES 表必须包含表中每列的值,并且按表中列的存放次序给出。(一般,这就是创建表时列的定义次序。如果不能肯定的话,可使用 DESCRIBE tbl_name 来查看这个次序。)
使用多个值表,可以一次提供多行数据。
MySQL>insert into worker values(‘tom’,’tom@yahoo.com’),(‘paul’,’paul@yahoo.com’);
有多个值表的INSERT ... VALUES的形式在MySQL 3.22.5或以后版本中支持。
可以给出要赋值的那个列,然后再列出值。
这对于希望建立只有几个列需要初始设置的记录是很有用的。
例如:
MySQL>insert into worker (name) values (‘tom’);
自 MySQL 3.22.5 以来,这种形式的 INSERT 也允许多个值表:
MySQL>insert into worker (name) values (‘tom’), (‘paul’);
在列的列表中未给出名称的列都将赋予缺省值。
自 MySQL 3.22 .10 以来,可以 col_name = value 的形式给出列和值。
例如:
MySQL>insert into worker set name=’tom’;
在 SET 子句中未命名的行都赋予一个缺省值。
使用这种形式的 INSERT 语句不能插入多行。
一个expression可以引用在一个值表先前设置的任何列。
例如,你能这样:
MySQL> INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);
但不能这样:
MySQL> INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15);