美文网首页
2020-10-31-即查141-150-插入数据

2020-10-31-即查141-150-插入数据

作者: 4f528075fae8 | 来源:发表于2020-10-31 21:02 被阅读0次

    INSERT 语句基本语法

    INSERT [INTO] table_or_view [(column_list)] VALUES (value_list)
    

    比较稳妥的写法是

    INSERT INTO brand
    (id, name, logo, describe, url, sort, cat_name, parent_cat_id,cat_id,is_hot)
    VALUES(347,'创维/Skyworth','/Public/upload/brand/2016/04-01/347586936.jpg','凝聚健康科技',
    'www.Skyworth.com',50,'手机、数码、配件',1,1,0);
    

    INSERT 后面不省略 INTO 方便在数据库之间兼容,表名或视图名后跟上括号括起来的要插入数据的列,这样避免表结构变动后语句出错。不建议采用下面的方式:

    INSERT INTO brand
    VALUES(347,'创维/Skyworth','/Public/upload/brand/2016/04-01/347586936.jpg','凝聚健康科技',
    'www.Skyworth.com',50,'手机、数码、配件',1,1,0);
    

    因为省略了列名的列表,这样就要求必须为每一列提供一个值,并且按照在表中出现的顺序给出值,如果某列没有值,且该列允许为 NULL 值,则可以使用 NULL 填充。

    插入部分数据

    如果某列允许为 NULLINSERT 语句中可以省略该列。例如:

    INSERT INTO brand
    (id,name,logo,describe,url,sort,parent_cat_id,cat_id,is_hot)
    VALUES(348,'台电/Teclast','/Public/upload/brand/2016/04-01/348396236.jpg','商科集团旗下品牌','www.teclast.com',50,1,1,0);
    

    插入默认值

    如果创建表时使用了 DEFAULT 关键字为列指定默认值,在插入新数据时没有给出有默认值的列的值,就会采用默认值。例如:

    INSERT INTO brand
    (id,name,logo,describe,url,cat_name)
    VALUES(349,'酷开/Coocaa','/Public/upload/brand/2016/04-01/350396326.jpg','酷开网络科技','www.coocaa.com','手机、数码、配件');
    

    插入多行数据

    基本语法

    INSERT [INTO] table_name
    [(column_list)]
    VALUES
    (data11,data12,...),(data21,data22,...),...
    

    例如:

    INSERT INTO brand
    (id,name,logo,describe,url,sort,cat_name,parent_cat_id,cat_id,is_hot)
    VALUES
    (350,'海力/horion','/Public/upload/brand/2016/04-01/351396632.jpg',",",50,'手机、数码、配件',1,1,0),
    (351,'长虹/CHANGHONG','/Public/upload/brand/2016/04-01/352366226.jpg',",",50,'手机、数码、配件',1,1,0);
    

    通过查询语句插入多行数据

    基本语法

    INSERT [INTO] table_name
    SELECT {* | fieldname1 [, fieldname2...]}
    FROM table_source [WHERE search_condition]
    

    先创建一个新的表,用来测试上面的用法:

    CREATE TABLE brand_new (
    id int NOT NULL PRIMARY KEY,
    name varchar(60) NOT NULL DEFAULT '',
    logo varchar(80) NOT NULL DEFAULT '',
    describe text NOT NULL,
    url varchar(255) NOT NULL DEFAULT '',
    sort int NOT NULL DEFAULT 50,
    cat_name varchar(128) NULL DEFAULT '',
    parent_cat_id int NULL DEFAULT 0,
    cat_id int NULL DEFAULT 0,
    is_hot int NULL DEFAULT 0
    );
    

    (发觉原来能指定可为 NULL)
    接下来就是测试通过查询语句插入多行数据:

    INSERT INTO brand_new
    SELECT * FROM brand
    WHERE cat_name = '手机、数码、配件';
    

    数据表的复制

    使用 SELECT INTO 语句(SQL Server),基本语法如下:

    SELECT [select_list]
    INTO new_table
    FROM table_name
    WHERE search_condition
    

    例如:

    SELECT BookName, Type, Writer
    INTO bookinfo_project
    FROM bookinfo WHERE Type = '项目入门系列';
    

    然后在 MySQL 则要使用 CREATE TABLE SELECT 语句,语法如下:

    CREATE TABLE new_table AS
    SELECT [select_list]
    FROM table_name
    WHERE search_condition
    

    例子:

    CREATE TABLE newbrand AS
    SELECT id,name,cat_name
    FROM brand WHERE cat_name='手机、数码、配件';
    

    然后结果是:

    mysql> SELECT id, name, cat_name FROM newbrand;
    +----+----------------+------------------+
    | id | name           | cat_name         |
    +----+----------------+------------------+
    |  1 | 华为/HUAWEI    | 手机、数码、配件 |
    |  4 | 索尼/SONY      | 手机、数码、配件 |
    |  5 | 诺基亚/NOKIA   | 手机、数码、配件 |
    |  6 | TCL            | 手机、数码、配件 |
    |  7 | 飞利浦/PHILIPS | 手机、数码、配件 |
    |  8 | OPPO           | 手机、数码、配件 |
    |  9 | 苹果/Apple     | 手机、数码、配件 |
    | 14 | 海尔/Haier     | 手机、数码、配件 |
    | 15 | 三星/SAMSUNG   | 手机、数码、配件 |
    | 19 | 海信/Hisense   | 手机、数码、配件 |
    +----+----------------+------------------+
    10 rows in set (0.00 sec)
    

    相关文章

      网友评论

          本文标题:2020-10-31-即查141-150-插入数据

          本文链接:https://www.haomeiwen.com/subject/zaxsvktx.html