首页 > 数据库 >SQL第15课——插入数据

SQL第15课——插入数据

时间:2024-10-09 19:49:46浏览次数:3  
标签:语句 insert customers 15 插入 custnew SQL select

介绍利用SQL的insert语句将数据插入表中。

15.1 数据插入

select是最常用的语句,但是还有3个常用的SQL语句,第一个就是insert,

insert:用来将行插入(或添加)到数据库表。插入的3中方式:

1. 插入完整的行;

2. 插入行的一部分;

3. 插入某些查询的结果。

15.1.1 插入完整的行

insert语法,要求制定表名和插入到新行中的值。

将一个新的顾客插入到customers表中,必须给每一列提供一个值。如果某列没有值,应该使用null值(假定表允许对该列指定空值)。出现的次序填充

弊端:

不安全,高度依赖于表中列的定义次序,还依赖于其容易获得的次序信息。

更安全的方法:

values中的第一个值对应第一个指定列名,如此等等。

优点:即使表的结构改变,这条insert语句仍然能正确工作。

这个结果:显示id为1000000006的顾客已经存在。主键的值必须有唯一性,而cust_id为主键,DBMS不允许插入相同cust_id值的新行。

15.1.2 插入部分行

使用insert的推荐方法是明确给出表的列名,这种表示可以只给某些列提供值,给其他列不提供值。如下,不提供cust_contact, cust_email列名,也不提供这两列的提供值。

省略的列必须满足以下某个条件:

1. 该列定义为允许null值(无值或空值)‘

2. 在表定义中给出默认值。这表示如果不给出值,将使用默认值。

15.1.3 插入检索出的数据

insert还存在另一种形式,利用它将select语句的结果插入表中,这就是insert select。是由一条insert语句和一条select语句组成的。

假如想把另一表中顾客列合并到customers表中,不需要每次读取一行再将它用insert插入:

说明:从一个名为custnew的表中读出数据并插入到customers表。

应该首次按创建和填充custnew表,custnew表的结构与customers表相同。

在填充custnew时,不应该使用已经在customers中用过的cust_id值。

从custnew中将所有数据导入customers。select语句从custnew检索出要插入的值,而不是列出它们。select中列出的每一列对应于customers表名后所跟的每一列。插入的多少行,依赖于custnew表有多少行。

select中的第一列(不管其列名)将用来填充表列中指定的第一列。

!!!insert select中select语句可以包含where子句,以过滤插入的数据。

insert通常只插入一行。要插入多行,必须执行多个insert语句;

insert select是个例外,可以用一条insert插入多行,不管select语句返回多少行,都将被insert插入。

15.2 从一个表复制到另一个表

将一个表的内容复制到一个全新的表(运行中创建的表),使用create select语句。

将数据复制到一个新表(有的DBMS可以覆盖已经存在的表,这依赖于所使用的具体DBMS)

标签:语句,insert,customers,15,插入,custnew,SQL,select
From: https://blog.csdn.net/m0_47482290/article/details/142792973

相关文章

  • 【MySQL】视图、存储过程、触发器
    目录一、视图1.创建视图2.视图的使用3.查看视图4.删除视图5. 视图的作用二、存储过程 1.存储过程的创建2.使用存储过程3.带参数的存储过程3.1 分页4.存储过程与函数的区别5.存储过程的缺陷三、触发器 --隐式执行1.创建触发器2.查看库中所有......
  • Postgresql14数据库一键物理备份与恢复脚本
    热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者比较重要的内容,希望大家能够喜欢,不足之处请大家多提宝贵地意见,我们一起提升,守住自己的饭碗。一、备份脚本#!/bin/bash# 定义一些变量B......
  • sqlite_action
     CREATETRIGGERhttps://www.sqlite.org/lang_createtrigger.html 触发器DROPTABLEIFEXISTSuser_token;CREATETABLEIFNOTEXISTSuser_token(idINTEGERNOTNULLPRIMARYKEYAUTOINCREMENT,tokenTEXTNULL,"uid"INTEGERNULL,"cid"INTEGER......
  • 信息学奥赛复赛复习15-CSP-J2022-01乘方-数据类型、类型转换、数据类型溢出、指数、模
    PDF文档公众号回复关键字:202410091P8813[CSP-J2022]乘方[题目描述]小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数a和b,求a^b的值是多少。a^b即b个a相乘的值,例如2^3即为3个2相乘,结果为2×2×2=8“简单!”小文心想,同时很快就写出了......
  • SQL注入实战——盲注
    利用sqliabs中less-8和less-9学习盲注目录盲注一、基于时间的盲注1.时间盲注常用函数2.打开less-93.测试的核心语句4.延时注入5.猜测数据库利用二分法猜测数据表、字段名、用户名及密码 二、基于布尔的盲注1.布尔注入常用函数2.打开less-8 3.判断当前数据......
  • C# SqlSugar增删改查
     staticvoidMain(string[]args){ConnectionConfigconnectionConfig=newConnectionConfig(){DbType=DbType.SqlServer,ConnectionString="Server=.;InitialCatalog=Test;User......
  • Python操作SQLServer数据库增删改查
    #coding:utf-8importpymssqldeffn_query(cursor):#查询sql='SELECT*fromTest'cursor.execute(sql)row=cursor.fetchone()whilerow:print(row)row=cursor.fetchone()deffn_insert(cursor):#......
  • PostgreSQL 使用pg_dump备份和恢复数据库
    PostgreSQL使用pg_dump备份和恢复数据库pg_dump是PostgreSQL提供的用于备份数据库的工具,它可以将数据库内容导出为不同格式的文件,以便之后进行还原或迁移。下面是关于pg_dump和pg_restore的详细使用说明。一、pg_dump基本语法pg_dump[选项]-d<数据库名>-f<备......
  • python3数据库操作及ORM框架sqlalchemy使用
    sqlite3importsqlite3try:#连接到SQLite数据库,数据库文件是test.db,如果文件不存在,会自动在当前目录创建:conn=sqlite3.connect("test.db")#创建一个Cursorcursor=conn.cursor()#执行SQL语句cursor.execute("createtableuser(idva......
  • Mysql主从复制记录笔记
    一、主机的配置[mysqld]log-bin=mysql-binbinlog-do-db=test2024binlog-ignore-db=mysqlbinlog-ignore-db=information_schemabinlog-ignore-db=performance_schemaserver-id=1二、从机的配置server-id=2log-bin=mysql-binbinlog-do-db=test2024binlog-ignore-db=mysqlbinlog-ig......