文章目录[隐藏]
INSERT INTO是sql数据库中的语句,可以用于向表格中插入新的行。
INSERT INTO 语句
INSERT INTO 语句用于向表格中插入新的行。
语法
INSERT INTO 表名称 VALUES (值1, 值2,....)
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
插入新的行
"Persons" 表:
LastName | FirstName | Address | City |
---|---|---|---|
Carter | Thomas | Changan Street | Beijing |
SQL 语句:
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
结果:
LastName | FirstName | Address | City |
---|---|---|---|
Carter | Thomas | Changan Street | Beijing |
Gates | Bill | Xuanwumen 10 | Beijing |
在指定的列中插入数据
"Persons" 表:
LastName | FirstName | Address | City |
---|---|---|---|
Carter | Thomas | Changan Street | Beijing |
Gates | Bill | Xuanwumen 10 | Beijing |
SQL 语句:
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')
结果:
LastName | FirstName | Address | City |
---|---|---|---|
Carter | Thomas | Changan Street | Beijing |
Gates | Bill | Xuanwumen 10 | Beijing |
Wilson | Champs-Elysees |
SQL insert into 插入的单行,多行的情况
1、在已有的表中,插入一行数据:
语法:
insert into +表名(表中的字段,,)value(字段所对应的记录,,);
a、第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name VALUES (value1,value2,value3,...);
INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
b、第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
insert into subject(subject_name) values ('数学')
2、在已有的表中,一次性插入多行行数据:
a、向原表的字段中插入多条记录的方法一:
语法:
insert into +表名(表中的字段,,)values(字段所对应的记录,,)(字段所对应的记录);
INSERT INTO table_name VALUES (value1,value2,value3,...),(value1,value2,value3,...);
用逗号隔开,括号括起来,加多少行数据就写多少个。要指定列名插入的,参考1.b 的做法。
insert into subject values ('数学'),('英语')
语句:
insert into joke (gid,name)values(0,"joker"),(1,"jhj");
结果:
+------+-----------+-------+------+ | gid | name | sex | age | +------+-----------+-------+------+ | 3 | xiaowan2 | male | 22 | | 3 | xiaowan2 | male | 22 | | 3 | xiaowan2 | male | 22 | | 3 | xiaowan22 | 1male | 22 | | 0 | joker | NULL | NULL | | 1 | jhj | NULL | NULL | +------+-----------+-------+------+
b、向原表的字段中插入多条记录的方法二:
语法:insert into+表名 select v1,v2 union all
select v1,v2;
mysql> insert into book select "abc","bdd" union all -> select "add","dsf";
+------+------+ | a | b | +------+------+ | abc | bdd | | add | dsf | +------+------+
如果插入的记录是数字的话要在数字的逗号后面加n:
mysql> insert into Student select 1,N'刘一',18,N'男' union all -> select 2,N'钱二',19,N'女'; +------+--------+------+------+ | s | sname | sage | ssex | +------+--------+------+------+ | 1 | 刘一 | 18 | 男 | | 2 | 钱二 | 19 | 女 | | 3 | 张三 | 17 | 男 | | 4 | 李四 | 18 | 女 | | 5 | 王五 | 17 | 男 | | 6 | 赵六 | 19 | 女 | | 1 | 刘一 | 18 | 男 | | 2 | 钱二 | 19 | 女 | +------+--------+------+------+