1、sqlinsert语句怎么写
SQL的insert语句就是插入语句,用于向表格中插入新的行(新数据)。
insert语句有三种写法:
1、insert into...values语句
insert...values语句是将指定的数据插入到现成的表中,又可分为两种情况:
1)、无需指定要插入数据的列名,只需提供***入的值即可:
insert into table_namevalues (value1,value2,value3,...);2)、需要指定列名及***入的值:
insert into table_name (column1,column2,column3,...)values (value1,value2,value3,...);2、insert into...set语句
和insert...values语句一样,insert...set语句也是将指定的数据插入到现成的表中。基本语法:
Insert into table_name set column1=value1,column2=value2,........;3、insert into...select语句
insert...select语句是将另外表中数据查出来并插入 到现成的表中的。基本语法:
Insert into table_name select * from table_name2;示例:
mysql> desc students;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+ |sid |int(11) |YES | |NULL | ||sname |varchar(20) |YES | |NULL | |+-------+-------------+------+-----+---------+-------+Insert into students values(1,’aaa’);Insert into students set sid=2,sname=‘bbb’;Insert into students select * from students_bak;mysql> select * from students;+------+-------+|sid |sname|+------+-------+| 1 | aaa || 2 | bbb || 3 | ccc |+------+-------+
2、mysql insert语句注意什么
1. 基础的Insert语句示例
下面的语句向员工表插入一条新记录。在这个例子中,后的“values”指定要插入到表中的所有字段对应的值。
用SELECT语句来验证数据是否插入成功。
2. 只针对选定的字段插入值
如果你只想向选定的字段插入值,你需要在INSERT语句中明确指定要插入的字段名字。 下面的代码仅插入id和name列的数据
以上代码中,我们未对dept和salary列指定任何值。所以,以上两个字段的值为NULL,当我们用SELECT语句检索数据时。需要注意的是,NULL不是指"NULL"字符串,SELECT语句使用"NULL"来表示这个字段的值是空的而已。
3. INSERT SET示例
INSERT语句不仅仅可以使用"VALUE"关键字,也可以使用"SET"关键字。下面的例子与上面的例子结果一样,但是使用的是SET关键字。
4.从另一个表中检索数据插入
下面的例子中,我们会使用INSERT ... SELECT语句,这个语句可以从其他表中检索数据,并插入到目标表。 下面的代码从Contractor表中检索所有数据并插入到Employee表。
SELECT语句中可以根据需要使用WHERE子句,用来检索需要的从Contractor表插入到Employee表的数据。
注意:如果你使用oracle数据库,你的SQL应该这样写"INSERT INTO employee AS SELECT * FROM contractor"。需要注意在MySQL中不适用AS关键字。
5.从其他表中选择部分字段插入
当然,你也可以从其他表中选择部分字段的数据插入到你的表中。 下面的例子将从contractor表中选择id,name字段的所有数据插入到employee表。
跟前面的例子一样,可以使用WHERE子句过滤数据。
注意:如果employee表中已存在相同主键(这里的主键是id)的记录,你会得到一条错误信息。下面是一个示例错误信息,指出employee表中已经存在id为100的记录。
6. 插入数据到指定分区
如果创建了分区表(分区类型为range)并希望将输入插入到指定分区,可以参考下面代码。 将数据插入到分区p1中的employee表。
注意:如果该分区的employee表中已包含相应的数据(这里是id=100的employee数据),你会得到如下错误信息。
注意: 分区仅在MySQL5.6及以上版本可用。
7. 插入数据到多个分区
可以使用单条SQL语句将数据插入到多个分区。下面的INSERT语句将id为100的记录插入到p1分区,将id为200的记录插入到p2分区。
注意: 在上例中,如果MySQL往任意分区插入数据失败,那么整个INSERT语句将失败。当然,这同样仅能在MySQL5.6及以上版本使用。
8. 在插入过程中忽略错误
在一些场景中(比如:批处理),你可能希望忽略插入过程中MySQL产生的错误信息,你可以使用INSERT IGNORE语句。 比如:下面的例子会抛出错误信息,提示数据已经存在。
要忽略上面的错误信息,可以使用INSERT IGNORE来替换INSERT语句(执行前请确保这条对应的主键已经存在)。
INSERT IGNORE仅仅只是忽略错误信息,不会进行其他任何处理。
9. INSERT语句的默认值
如果MySQL运行在strict模式下,并且在我们的INSERT语句中并未指定默认值,那么MySQL将抛出错误信息。 不过,如果MySQL并未启用strict模式(这个是默认启用的)时,同时INSERT语句没有为字段指定值,那么MySQL会为该字段使用字段类型的默认值。 比如,bonus表的所有字段都不允许为空(not null)。
我们先执行以下语句,插入一条数据(id=100)
查看刚插入的数据,可以看到amount字段被设置为默认值0
如果,SQL语句中同时不指定id和amount字段的值,那么他们都会被自动设置为默认值0。参考下面例子。
3、SQL SERVER中insert语句怎么写
既然是触发器,怎么能不知道值?说明白点!
比如:
create trigger tgr_classes_insert
on classes
for insert --插入触发
as
--定义变量
declare @id int, @name varchar(20), @temp int;
--在inserted表中查询已经插入记录信息
select @id = id, @name = name from inserted;
set @name = @name + convert(varchar, @id);
set @temp = @id / 2;
insert into student values(@name, 18 + @id, @temp, @id);
print '添加学生成功!';
go
此处 inserted 就是你插入数据的行,可以从中获取插入的各列
4、JAVA SQL insert 语句写法
String sql = "insert into stucou(stuno,stuname,class,chinese,math,english)
values(\'"+studentNum.getText()+"\