iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL点滴系列之插入数据(四)
  • 317
分享到

SQL点滴系列之插入数据(四)

SQL点滴系列之插入数据(四) 2019-06-18 05:06:53 317人浏览 才女
摘要

本节讲述 在数据库中插入数据 1 插入新的记录 向表中插入一条新的记录。 例如 向用户表中添加一条新的数据,可以这样写 insert into t_user (user_id,user_name,user_age,user_addr

SQL点滴系列之插入数据(四)

本节讲述 在数据库中插入数据

1 插入新的记录

向表中插入一条新的记录。 例如 向用户表中添加一条新的数据,可以这样写

insert into t_user (user_id,user_name,user_age,user_address,user_phone)
values(32,"小不点",18,"龙城大街一号院",192303023994)

Mysql 和DB2 中,可以选择一次插入一行,或者一次插入多行

insert into t_user (user_id,user_name,user_age,user_address,user_phone)
values
(32,"小不点",18,"龙城大街一号院",192303023994),
(33,"小李子",20,"龙城大街二号院",192303023995)

insert 语句允许在数据库表中创建新行,在所有类型的数据库系统中,插入语句的语法完全相同,当然还有简便的写法就是

insert into t_user 
values("山西省","小不点","龙城大街一号院",18,32,192303023994,)

需要注意的是如果没有列出插入行中的目标字段,则必须插入表中的所有的列。

2 插入默认值

定义表时,可以为某些列定义默认值,现在要以默认值插入一行,而无需指定各列的值。

2.1 创建表时指定列的默认值
creat table t_user (user_id default 0)

所有的数据库系统都支持使用 default 关键字显式的指定某列插入值,有些数据库还支持其他的方法来解决这个问题

2.2 插入数据时使用默认值
insert into t_user (user_id,user_name,user_age,user_address,user_phone)
values(32,"小不点",18,default,default)

当不需要将表中所有列都插入值时,可以明确的指定要使用默认值的列名称,如上述写 到的 user_address,user_phone 使用的 default

oracle8i 数据库及其以前版本不支持 default 关键字,在 Oracle9 c以前的数据库中 无法显示地插入默认值

mysql 中,如果表中所有的列都定义了默认值,可以用一个空的值来解决问题

insert into t_user values()

在这种情况下,所有的列将设置为其默认值

postgresqlsql Service 中支持 default values 子句

insert into t_user default values 

default values 子句将所有的列设置为其本身的默认值。

在值列表中的 default 关键字为相应列插入默认值,默认值在创建表时定义,所有的数据库中都可以使用些关键字。

3 使用 NULL 代替默认值

在一个定义了默认值的列插入数据,并且需要不管该列的默认值是什么,可以将这个值设置为 NULL

create table t_user (user_id defalut 0,user_flag varchar(100))

现在插入一条数据

insert into t_user (user_id,user_flag) values (null,"今天心与心的交流了一下")

在上述插入的语句中,明确指定了 null,但是在实际开发中,并不是所有的人都知道可以在 insert 语句中明确指定 null 值,所有常用的做法是在插入数据时,不需要插入某列数据时,就不指定某列,如上述的插入 null 可以修改为

insert into t_user (user_flag) values ("今天心与心的交流了一下")

4 从一个表向另外一个表中复制行

将一个表中的数据复制到另一个表中,第一步 先查询第一个表中的数据,第二步 复制,在这个过程中 查询数据可能复杂也可能简单,但是最终的结果就是复制 例如 将表 t_user 中的数据复制到表 t_dep_user 表中

insert into t_dep_user (dep_user_name,dep_user_flag)
select user_name,user_flag from t_user 

在这里使用的方法就是在 insert 语句后面紧跟一个查询,该查询用来返回想要得到的行。

5 从一个表向另外多个表中复制行

与上述不同的是,从一个表中查询出数据,然后将这些数据复制到多具表中,例如将表 t_user 中的数据复制到 t_user_2 、t_user_3 、t_user_4 中:

在 MySQL 、PostgreSQL 和 SQL Server 中还不支持这种多表插入操作

在 Oracle 中可以这样写

insert all 
    when user_age < 18 then 
        into t_user_2(user_name,user_age,user_flag) values (dep_user_name,dep_user_age,dep_user_flag)
    when user_age >60 then 
        into t_user_3(user_name,user_age,user_flag) values (dep_user_name,dep_user_age,dep_user_flag)
    else 
        into t_user_4(user_name,user_age,user_flag) values (dep_user_name,dep_user_age,dep_user_flag)
    select dep_user_name,dep_user_age,dep_user_flag from t_user 

在 DB2 中可以将所有的目标用 uNIOn all 联接


///先创建表
create table t_user_2(user_name varchar(10),user_age integer check (user_age <18),user_flag varchar(44))
create table t_user_3(user_name varchar(10),user_age integer check (user_age >=18 and user_age <=60),user_flag varchar(44))
create table t_user_4(user_name varchar(10),user_age integer check (user_age >60),user_flag varchar(44))

///插入数据 

insert into (
 select * from t_user_2 union all
 select * from t_user_3 union all
 select * from t_user_4 
) select * from t_user 

6 复制表结构

在实际中,想要创建新表,该表与已有的表的结构设置相同,就可以考虑只复制表结构 在 DB2 中,使用带有 like 子句的 create table 命令

create table t_user_2 like t_user

在 Oracle 、MySQL 和 PostgreSQL 中,使用一个不返回任何行的子查询

create table t_user_2 as select * from t_user where 1=0

在这里 where 1=0 导致了查询不返回任何行,这样最终创建的表就是根据查询中select 子句中的列名产生的空表


完毕

您可能感兴趣的文档:

--结束END--

本文标题: SQL点滴系列之插入数据(四)

本文链接: https://www.lsjlt.com/news/4570.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL系列之四 SQL语法
    目录系列教程一、SQL语言的简介和规范二、数据库操作1、创建库2、删除库3、查看数据库列表三、表操作1、创建表2、修改表3、删除表4、查看表四、DML: 数据操作语言1、INSERT...
    99+
    2024-04-02
  • SQL批量插入数据
    MS SQL Server数据库批量插入数据的sql语句总结:第一种:insert into tb_NameList(Name,InsertDate,UpdateDate)values('aa',GETDA...
    99+
    2024-04-02
  • sql中如何插入数据
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-15
  • SQL 在自增列插入指定数据的操作方法
    SQL Server  中数据表往往会设置自增列,常见的比如说 首列的ID列。 往数据表插入新数据的时候,自增列是跳过的,无需插入即会按照设置的自增规则进行列增长。那么,如果我们想往自增列插入我们...
    99+
    2024-04-02
  • SQL中怎么批量插入数据
    SQL中怎么批量插入数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.创建表。2.创建表值参数类型我们打开查询分析器,然后...
    99+
    2024-04-02
  • Oracle中如何向VARCHAR列插入数据
    要向VARCHAR列插入数据,可以使用INSERT INTO语句。以下是一个示例: INSERT INTO table_name (...
    99+
    2024-04-09
    Oracle
  • 怎么使用SQL语句插入数据
    这篇文章主要介绍怎么使用SQL语句插入数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用SQL语句操作数据表单击phpMyAdmin主界面中的超链接,打开SQL语句编辑区,输入完...
    99+
    2024-04-02
  • MySQL之创建表并插入数据
    文章目录 一、在数据库中创建表二、Table的变量类型2.占位符类型 三、导出数据库中的表总结 一、在数据库中创建表 MySQL中table实在已有数据库的基础上创建的,因此在创...
    99+
    2023-10-27
    mysql 数据库
  • SQL Server 数值四舍五入,小数点后保留2位
    在 SQL Server 中,可以使用 ROUND 函数来进行数值的四舍五入。此函数的语法如下:```sqlROUND(numeri...
    99+
    2023-09-02
    SQL Server
  • 【数据分析之道-Matplotlib(四)】Matplotlib散点图
    文章目录 专栏导读1、Matplotlib散点图语法2、Matplotlib散点图设置图标大小3、Matplotlib散点图自定义点颜色4、Matplotlib散点图设置两组散点图5、Mat...
    99+
    2023-09-02
    matplotlib python 散点图 原力计划
  • SQL Server批量插入数据案例详解
    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Serv...
    99+
    2024-04-02
  • SQL Server如何插入数据示例代码
    目录前言1、插入完整的行1.1、基本的insert语法(语法简单,并不安全)1.2、更安全的insert语法2、插入部分行3、插入检索出的数据4、从一个表复制到另一个表5、全部代码补充知识:SQL SERVER 循环批量...
    99+
    2023-01-13
    sqlserver添加数据 sqlserver如何录入数据 sqlserver数据库录入数据
  • SQLServer插入数据到有自增列的表
    SQLServer插入数据到有自增列的表报错: 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Sales.dbo.Area'中的标识列指定显式值。 正确方式...
    99+
    2024-04-02
  • Sql 表复制、数据插入、字段移植
    字段RegTime 值移植到RegTime2中: update commodity set RegTime2 = RegTime 表...
    99+
    2024-04-02
  • SQL Server如何插入数据示例代码
    目录前言1、插入完整的行1.1、基本的insert语法(语法简单,并不安全)1.2、更安全的insert语法2、插入部分行3、插入检索出的数据4、从一个表复制到另一个表5、全部代码补...
    99+
    2023-01-13
    sqlserver添加数据 sqlserver如何录入数据 sqlserver数据库录入数据
  • SQL Server基础之行数据转换为列数据
    准备工作 创建表 use [test1] go create table [dbo].[student]( [id] [int] identity(1,1) not null, [name...
    99+
    2024-04-02
  • sql查询语句教程之插入、更新和删除数据实例
    目录前言1、插入数据1.1 为表的所有字段插入数据1、insert语句中不指定具体的字段名2、insert语句中列出所有字段1.2 为表的指定字段插入数据1.3 同时插入多条记录1....
    99+
    2024-04-02
  • phpmyadmin管理数据记录之插入数据的示例
    这篇文章主要介绍phpmyadmin管理数据记录之插入数据的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!插入数据选择某个数据表后,单击超链接,进入插入数据界面。在界面中输入各字...
    99+
    2024-04-02
  • sql 插入数据的常用方法有哪些
    这篇文章主要讲解了“sql 插入数据的常用方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“sql 插入数据的常用方法有哪些”吧!复制代码 代码如下:...
    99+
    2024-04-02
  • sql怎么插入一个日期型的数据
    sql要插入一个日期型的数据时,往往会想到simpledateformat: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String date = sdf.for...
    99+
    2023-09-24
    mysql Powered by 金山文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作