zoukankan      html  css  js  c++  java
  • SqlServer:插入数据

    SQL 语句插入

    INSERT 语句

    输入记录的 SQL 语句是 INSERT,其格式如下所示。在命令格式中 INTO 可以省略,如果输入所有列的内容,则列名列表可以省略。如果只输入部分列的值,则列名列表不可以省略。注意 VALUES 后面的值必须与列名列表要一一对应,同时插入数据不能违反任何约束,否则将回滚不能插入。

    INSERT [INTO] 表名 [(列名1[,列名2.…])]
    VALUES(值1[,值2…])
    

    也可以使用 INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。

    INSERT INTO table2
    SELECT * FROM table1;
    

    如果是只希望部分列插入存在的表,也可以进行指定。

    INSERT INTO table2
    (column_name(s))
    SELECT column_name(s)
    FROM table1;
    

    插入样例

    样例一

    使用简单的 INSERT,创建表 T1 并且插入一行。

    CREATE TABLE T1 (column_1 int, column_2 varchar(30))
    INSERT T1 VALUES (1, 'Row #1')
    

    样例二

    插入与列顺序不同的数据,使用 column_list 及 VALUES 列表显式地指定将被插入每个列的值。

    CREATE TABLE T1 (column_1 int, column_2 varchar(30))
    INSERT T1 (column_2, column_1) VALUES ('Row #1',1)
    

    样例三

    插入值少于列个数的数据,INSERT 语句插入的行只有部分列包含值。

    CREATE TABLE T1 
    ( 
        column_1 int identity, 
        column_2 varchar(30) CONSTRAINT default_name DEFAULT ('column default'),
        column_3 int NULL,
        column_4 varchar(40)
    )
    INSERT INTO T1 (column_4) VALUES ('Explicit value')
    INSERT INTO T1 (column_2,column_4) VALUES ('Explicit value', 'Explicit value')
    INSERT INTO T1 (column_2,column_3,column_4) VALUES ('Explicit value',-44,'Explicit value')
    

    文本导入

    BULK INSERT 语句

    BULK INSERT 以用户指定的格式,复制一个数据文件至数据库表或视图中,数据文件可以是 txt 文件等。

    BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }       
    

    插入样例

    首先创建学生表:

    create table student
    (
        Sno char(3) not null primary key,    --学号
        Sname  nchar(4) not null,            --学生姓名
        Ssex nchar(1) not null,              --学生性别
        Sbirthday date,                      --学生出生年月
        Class char(5)                        --学生所在班级
    )
    

    需要插入的数据如下,将这些数据保存进 txt 文件中。

    Sno	Sname	Ssex	Sbirthday	class
    108	曾华	男	1977-09-01	95033
    105	匡明	男	1975-10-02	95031
    107	王丽	女	1976-01-23	95033
    101	李军	男	1976-02-20	95033
    109	王芳	女	1975-02-10	95031
    103	陆君	男	1974-06-03	95031
    

    使用 BULK INSERT 语句就可以把对应路径下的 txt 文件的数据导入表中。

    BULK INSERT student FROM ''    --单引号内写上 txt 文件路径
    

    Excel 导入

    想要从 excel 导入数据,就需要借助 “SqlServer 导入和导出向导”。右击需要导入的目标数据库,选择“任务”选项中的“导入数据”。

    进入到 “SqlServer 导入和导出向导”工具,直接进入下一步。

    数据源选择 “Microsoft Excel”,然后写上 excel 的文件路径和 Excel 的版本。

    接着选择需要插入数据的目标数据库:

    接下来指定是从数据源复制一个或多个表和属兔,还是从数据库复制查询结果,导入 excel 的话选择第一项。

    选择要插入数据库的数据,来源于 excel 中的哪些表。

    选择是否保存或运行包,此处可以选择直接运行,然后就可以实现插入了。

    参考资料

    《SqlServer 2014 数据库技术实用教程》,胡伏湘、肖玉朝 主编,清华大学出版社
    [数据库]Bulk Insert命令详细
    SQLServer数据导入Excel表格数据

  • 相关阅读:
    MYSQL查询表信息
    认识WCF
    asp.net mvc 模型验证注解,表单提交
    asp.net mvc 防止开放重定向
    asp.net webForm登录授权
    C# 压缩文件与字节互转
    C#将字节流加密解密
    获取数据库表详细信息、存储过程、视图、的sql
    Mvc4学习笔记一(Ajax.ActionLink)
    java开发之提高java和mysql代码性能和质量
  • 原文地址:https://www.cnblogs.com/linfangnan/p/14779227.html
Copyright © 2011-2022 走看看