数据库系列之数据管理(插入数据)

插入数据

1 语法
INSERT  [INTO]  <表名>  [(列名)]  VALUES  <值列表>
其中:“[]”代表可选的;“<>”代表必需的。如果有多个列名和多个列值需要用逗号隔开。

2 实例

INSERT INTO Authors (AuthorName,Sex,Age,Email,TelPhone,City)
VALUES (‘吴玉鹏‘,1,47,‘[email protected]‘,‘01090876529‘,‘北京‘)

实现功能:把Values子句提供的列值依次赋值给表中指定的各列。

添加数据时,字符型和日期型数据的值要用单引号括起来。

使用Insert Select语句插多行数据

1 语法

INSERT INTO  <表2>    [列名]

SELECT  <列名>  FROM  <表1>

注意:

(1)<表2>必须事先存在。如果不存在,执行时将会出现错误。

(2)查询出的字段数目、数据类型、字段顺序,与插入列保持一致。

2 示例

要将Authors表中所有作者信息保存到AuthorsInfo表中。

INSERT INTO AuthorsInfo (作者姓名,年龄,电子邮件,所在城市)
SELECT AuthorName,Age,Email,City
FROM Authors

使用Select Into语句插入多行数据

1 语法

SELECT  <列名> 
INTO  <新表>

FROM  <原始表>

注意:

    <新表>不能事先存在,它是在执行该语句时系统自动创建的。

2 示例

要将Authors表中“作者姓名、年龄、电子邮件、所在城市”数据存储到一个新表中

SELECT IDENTITY(int, 1, 1) as Id, AuthorName,Age,Email,City
INTO NewAuthorsName
FROM Authors

使用Select Into语句插入标识列数据

1 语法

SELECT  IDENTITY(数据类型, 标识种子, 标识增量)  as 列名 
INTO  <新表>

FROM  <原始表>

2 示例

要将Authors表中“作者姓名、年龄、电子邮件”数据存储到一个新表中,并且

要求插入新表时自动生成标识列字段。

SELECT IDENTITY(int, 1, 1) as Id, AuthorName,Age,Email,City
INTO NewAuthorsName
FROM Authors

使用Union关键字插入多行数据

1 语法

INSERT  [INTO]  <表名>  [列名]

SELECT  <值列表> UNION

SELECT  <值列表> UNION

SELECT  <值列表>

注意:

[列名]:可以省略,如果省略列名,那么<值列表>的数据个数、顺序、数据类型必须与表中字段顺序、数据类型保持一致。

2 示例

向Authors表中一次插入多位作者信息 。

INSERT INTO Authors (AuthorName, Sex, Age, Email, TelPhone)
SELECT ‘张笑林‘,1,30,‘[email protected]‘,‘02067839876‘ UNION
SELECT ‘李辉‘,0,52,‘[email protected]‘,‘02167345987‘ UNION
SELECT ‘洪海波‘,1,40,‘[email protected]‘,‘031189654329‘

3 使用Union注意的问题

Union语句中不能使用DEFAULT关键字

INSERT INTO Authors (AuthorName, Sex, Age, Email, TelPhone, City)
SELECT ‘张笑林‘,1,30,‘[email protected]‘,‘02067839876‘,‘上海‘ UNION
SELECT ‘李辉‘,0,52,‘[email protected]‘,‘02167345987‘,DEFAULT UNION
SELECT ‘洪海波‘,1,40,‘[email protected]‘,‘031189654329‘,‘石家庄‘

语法检测就出现错误提示:关键字‘default‘ 附近有语法错误。

时间: 2024-10-10 22:55:49

数据库系列之数据管理(插入数据)的相关文章

数据库系列之数据管理(更新数据)

语法 UPDATE  <表名>  SET  <列名=值>  [WHERE <更新条件>] 注意: (1)<列名=值>为必选项,用于更新表中某列数据,在SET后面可以出现多 个,需用逗号隔开. (2)Where关键字是可选的,用来限定条件,如果Update语句不限定条件,表中所有数据行都将被更新. 示例一 将作者表中所有作者的居住城市都更改成"北京" UPDATE Authors SET City='北京' 示例二 更新语句中还可以使用表达

数据库系列之数据管理(删除数据)

使用DELETE   Table语句删除数据 DELETE  FROM  <表名>  [WHERE <更新条件>] DELETE FROM Books WHERE BookCode='981267' 问题:使用Delete删除数据时,不能删除主键值被引用的数据行. 使用Truncate Table语句删除数据 Truncate Table <表名> 注意: 1.Truncate Table只删除表中的数据行,不会删除表结构及各种约束. 2.Truncate Table不

数据库笔记10:插入数据 创建和操纵表

第二十章 插入数据 INSERT是用来插入(或添加)行到数据库表的.插入数据的几种方式: 1  插入完整的行 2 插入行的一部分 3  插入多行 4 插入某些查询结果 INSERT SELECT语句 INSERT INTO customers(cust_id,cust_name,cust_email) SELECT cust_id,cust_name,cust_email FROM custnew; 列省略 如果表中定义允许,则可以在INSERT操作中省略某些列,省略的列必须满足以下某个条件.

oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号?

Oracle 语句中"||"代表什么啊? oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号? 排序的话,用order by来处理即可.比如:cola123a234b999b335select * from tablename order by col; 结果就是 cola123a234b335b999 如果按倒序排列:select * from tablename order by col desc; 结果就是 colb999b335a234a123 其他回答 先创

用python操作mysql数据库(之批量插入数据)

#!/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb #建立连接 conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='1qaz#EDC',db='test_db') cur = conn.cursor() #对数据进行操作 li = [('tanzhenx','shaoguan'),('huangmengdie','shaoguan')] #定义一个列表,列表中

用python操作mysql数据库(之简单“插入数据”操作)

#!/usr/bin/env python # -*- coding: utf-8 -*- ''' 1.这里的数据库环境为本地数据库 2.我要通过python操作的数据库是test_db 3.该数据库里有一个表,表名称:user 4.表字段:id.name.address 5.其中,id字段为自增,也是主键 6.因ID字段为自曾,所以在插入数据的时候会自己增加数字,所以在这里不用额外再插入数据 ''' import MySQLdb #建立连接 conn = MySQLdb.connect(hos

SQLite数据库中获取新插入数据的自增长ID

SQLite数据库中有一有列名为ID的自增列,项目需求要在向数据库在插入新数据的同时返回新插入数据行的ID. 我这里用事务,把插入和查询语句通过ExecuteReader一起提交. 实现代码 public bool Insert(string topic, string key, string value, out int id) { DbProviderFactory factory = SQLiteFactory.Instance; using (DbConnection conn = fa

通过excel向数据库(ORACLE)里插入数据

大家都知道PL/SQL可以向excel复制数据,同样我们也可以通过excel向数据库里插入数据. 下面我们以一个简单的例子并配以截图演示 首先,我们创建一个表test CREATE TABLE test( id NUMBER ); 接着我们执行如下语句 SELECT * FROM test FOR UPDATE; 并点开上图的锁 接着我们在excel里复制一列数值型数据 选中PL/SQL查询结果里列名id,ctrl+v粘贴以上数据 点击绿色箭头 并commit提交即可完成向数据库插入excel的

使用JDBC在MySQL数据库中快速批量插入数据

使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: void addBatch() throws SQLException Adds a set of parameters to this PreparedStatement object's batch of commands. int[] executeBatch() throws SQLException Submits