精华内容
下载资源
问答
  • 2020-05-12 18:29:14

    场景

    其他列值都确定,如何给某一列插入数据
    这样行么?

    insert into ...  values ('1','abc',select 1 from dual );
    

    有点异想天开了。 这样插入肯定是不行的,列里面是不能直接用select的。

    解决方案

    但是以下写法是可以的:

    INSERT INTO T_USER(
    NAME, SEX, AGE, ID
    ) 
    select 
    '九妹223', '女', '40', '99' 
    from dual;
    

    注: t_user 后面没有values,也不用加as。 如果列比较多的话,建议一行4,5个字段,保持一致。 并且以目标表字段为主导,从源表里面找字段,这样不容易错。

    更多相关内容
  • MySQL:向已有数据表中插入新的一列数据

    万次阅读 多人点赞 2018-05-08 14:48:58
    、需求 有两个表格,test和test2如下所示: mysql> select * from test; +------+------+------------+ | data | id | timestamp | +------+------+------------+ | 300 | 3 | 1536292800 | | 200 | 2 ...

    一、需求

    有两个表格,test和test2如下所示:

    mysql> select * from test;
    +------+------+------------+
    | data | id   | timestamp  |
    +------+------+------------+
    |  300 |    3 | 1536292800 |
    |  200 |    2 | 1536292808 |
    +------+------+------------+
    
    mysql> select * from test2;
    +------+------+
    | data | id   |
    +------+------+
    |   10 |    3 |
    |   20 |    2 |
    +------+------+
    1. 需求A

    在test表格上直接操作,增加一列为context_time,数据类型为datetime,并赋值为对应的行的UNIX time的datetime,如下表所示(可以延伸为对每一行的某个字段进行相同的运算或函数操作后赋值到新的字段):

    +------+------+------------+---------------------+
    | data | id   | timestamp  | context_time        |
    +------+------+------------+---------------------+
    |  300 |    3 | 1536292800 | 2018-09-07 12:00:00 |
    |  200 |    2 | 1536292808 | 2018-09-07 12:00:08 |
    +------+------+------------+---------------------+
    2. 需求B

    将表格test2中的data字段查询出来后根据id拼接到test表格后面,字段名为new_data,如下所示:

    +------+------+------------+---------------------+----------+
    | data | id   | timestamp  | context_time        | new_data |
    +------+------+------------+---------------------+----------+
    |  300 |    3 | 1536292800 | 2018-09-07 12:00:00 |       10 |
    |  200 |    2 | 1536292808 | 2018-09-07 12:00:08 |       20 |
    +------+------+------------+---------------------+----------+

    二、解决方案

    1. 需求A的解决方案
    • 先使用alter命令在原表格test上创建新的字段context_time,数据类型为datetime,默认不为NULL
    mysql> alter table test add context_time datetime not NULL;
    
    mysql> select * from test;
    +------+------+------------+---------------------+
    | data | id   | timestamp  | context_time        |
    +------+------+------------+---------------------+
    |  300 |    3 | 1536292800 | 0000-00-00 00:00:00 |
    |  200 |    2 | 1536292808 | 0000-00-00 00:00:00 |
    +------+------+------------+---------------------+
    • 然后使用update命令更新context_time的值:
    mysql> update test set context_time=from_unixtime(timestamp);
    
    mysql> select * from test;
    +------+------+------------+---------------------+
    | data | id   | timestamp  | context_time        |
    +------+------+------------+---------------------+
    |  300 |    3 | 1536292800 | 2018-09-07 12:00:00 |
    |  200 |    2 | 1536292808 | 2018-09-07 12:00:08 |
    +------+------+------------+---------------------+
    2. 需求B的解决方案
    • 先使用alter命令在原表格test上创建新的字段new_data,数据类型为int,默认为NULL
    mysql> alter table test add new_data int;
    
    mysql> select * from test;
    +------+------+------------+---------------------+----------+
    | data | id   | timestamp  | context_time        | new_data |
    +------+------+------------+---------------------+----------+
    |  300 |    3 | 1536292800 | 2018-09-07 12:00:00 |     NULL |
    |  200 |    2 | 1536292808 | 2018-09-07 12:00:08 |     NULL |
    +------+------+------------+---------------------+----------+
    • 然后使用update、inner join、select共同实现更新值:
    mysql> update test inner join (select data, id from test2)tmp on test.id=tmp.id set test.new_data=tmp.data;
    
    mysql> select * from test;
    +------+------+------------+---------------------+----------+
    | data | id   | timestamp  | context_time        | new_data |
    +------+------+------------+---------------------+----------+
    |  300 |    3 | 1536292800 | 2018-09-07 12:00:00 |       10 |
    |  200 |    2 | 1536292808 | 2018-09-07 12:00:08 |       20 |
    +------+------+------------+---------------------+----------+

    三、结论

    • alter命令用于修改表结构,update命令用于修改或更新表的数据(值)
    • 不管怎样,要增加一列新的数据,必须先使用alter命令修改原表的结构,增加新的字段、数据类型和默认值
    • alter命令还可以修改字段名、调整字段顺序等
    • 如果是需求A,仅仅对原表已有字段进行相同操作后作为新字段,那么使用最简单的update、set命令即可
    • 如果是需求B,使用inner join就是类似表联结的问题了,必须有主键(id)对应每一行数据,否则更新后的数据整一列都将是查询的第一个数据的值,像这样:
    mysql> update test inner join (select data from test2)tmp set test.new_data=tmp.data;
    
    mysql> select * from test;
    +------+------+------------+---------------------+----------+
    | data | id   | timestamp  | context_time        | new_data |
    +------+------+------------+---------------------+----------+
    |  300 |    3 | 1536292800 | 2018-09-07 12:00:00 |       10 |
    |  200 |    2 | 1536292808 | 2018-09-07 12:00:08 |       10 |
    +------+------+------------+---------------------+----------+
    
    mysql> select data from test2;
    +------+
    | data |
    +------+
    |   10 |
    |   20 |
    +------+
    • 另外,对于需求B,搜索解决办法的时候遇到有如下的写法,但是mysql中是不可以这样用的,其他SQL server我就没尝试了(我是以学习mysql为主=。=)
    mysql> update test set test.new_data=(select data from test2);
    ERROR 1242 (21000): Subquery returns more than 1 row
    • 最后,一开始我是在折腾insert指令的,但是其实insert是插入行数据,和我想要的并不一样,举个栗子(会增加行然后缺省填充为默认值,这里是NULL):
    mysql> select * from test;
    +------+------+
    | data | id   |
    +------+------+
    |  100 |    1 |
    |  200 |    2 |
    +------+------+
    
    mysql> alter table test add new_data int;
    
    mysql> select * from test;
    +------+------+----------+
    | data | id   | new_data |
    +------+------+----------+
    |  100 |    1 |     NULL |
    |  200 |    2 |     NULL |
    +------+------+----------+
    
    mysql> insert into test(new_data) select (data+1) as new_data from test;
    
    mysql> select * from test;
    +------+------+----------+
    | data | id   | new_data |
    +------+------+----------+
    |  100 |    1 |     NULL |
    |  200 |    2 |     NULL |
    | NULL | NULL |      101 |
    | NULL | NULL |      201 |
    +------+------+----------+
    展开全文
  • MySQL插入数据列到特定

    千次阅读 2021-01-20 02:16:34
    MySQL插入数据列的命令alter table tablename add column_definition,如果不指定数据列的位置的时候,插入一般在最后,如MySQL插入数据列的命令alter table tablename add column_definition,如果不指定...

    MySQL中插入数据列的命令alter table tablename add column_definition,如果不指定数据列的位置的时候,插入的列一般在最后,如

    MySQL中插入数据列的命令

    alter table tablename add column_definition,如果不指定数据列的位置的时候,插入的列一般在最后,如果要插入到特定的列后则:

    alter table tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name ],比如现在数据列有11列现在想把12列加在第四列后面,则:

    alter tabel 表名1 Add 数据列12 varchar(100)after 数据列4。

    给表重新命名,把旧名oldname重新命名为newname

    ALTER TABLE oldname RENAME newname;

    复制mysql表有来种方法:

    1,复制整个表:

    create table 新表 select * from 旧表;

    2.只复制表结构:

    create table 新表 select * from 旧表 where 1<>1;

    logo.gif

    f68f2add0b68e4f9810432fce46917b7.png

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • # 学会将MySQL数据库的数据插入指定: 搭建MySQL并且导入数据库文件,这里是MySQL导入sql文件, 数据库的操作,往往有很多种办法,有的是客户端直接修改,有的是网页后台进行编辑,但这都为了方便给非技术人的...

    学会将MySQL数据库的数据表插入指定列:

    搭建MySQL并且导入数据库文件,这里是MySQL导入sql文件, 数据库的操作,往往有很多种办法,有的是客户端直接修改,有的是网页后台进行编辑,但这都为了方便给非技术人的操作,归根结底都得落在命令行代码上。这篇文章是为了解决本人在连接网页的时候发现数据库中少了两列重要的数据,所做的笔记,仅供参考。

    数据表插入指定列的具体操作 :

    提示:这里可以添加要学的内容
    例如:
    1、 打开MySQL的命令行模式;
    在这里插入图片描述

    2、 输入密码连接数据库;
    在这里插入图片描述

    3、 显示数据库,进入数据表;

    show databases;
    #显示数据库
    
    use 数据库名;
    #打开数据库
    
    show tables;
    #显示表
    
    show columns from 表名;
    #显示列
    

    在这里插入图片描述

    在这里插入图片描述

    4、添加指定列

    alter table 表名 add column 新列名 varchar(255) not null;#默认加在最后
    alter table 表名 add column 新列名 varchar(255) not null after 列名;
    

    在这里插入图片描述
    5、修改表名、列名

    alter table 表名 rename to 新表名;
    
    alter table 表名 change  column 列名 修改列名 varchar(30);
    
    
    

    MySQL导入sql文件:

    导入的前提是先有个数据库,如果没有就自己创建一个数据库,然后再导入sql文件。

    show database;
    create database qq; #创建名为qq的数据库,这里很容易报错的原因是拼写错误还有下划线的问题。
    drop database 数据库名; #删除数据库
    use 数据库名;
    source  文件路径;#导入文件斜杠用的是 / ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210414092825494.PNG#pic_center)
    的
    

    注意:
    1.删除数据库用的是drop语句;
    2.出现ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘databse qq’ at line 1问题的原因是拼写问题。
    在这里插入图片描述

    在这里插入图片描述

    修改主键重命名:

    如果主键无法修改名字,重命名时出现如下代码:
    alter table t_fctype change column bookTypeId fcTypeId int(200);
    ERROR 1846 (0A000): ALGORITHM=COPY is not supported. Reason: Columns participating in a foreign key are renamed. Try ALGORITHM=INPLACE.
    说明主键有外键约束。
    外键约束的意思是,这个表的主键在别的表里有用到。
    解决方法:
    需要先解除约束再重命名。
    参考网址:
    https://blog.csdn.net/qq_41953178/article/details/90038983
    https://www.bilibili.com/video/BV1ci4y1g7hK?p=8

    alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key (从表外键字段) references 主表(主键字段);

    总结时间:

    不断地学习才可以提高,大环境,广泛的知识要懂,具体的细节可以用的时候现查。
    完结撒花~

    展开全文
  • MySQL表自动增长列插入数据

    千次阅读 2021-12-25 11:48:46
    MySQL表自动增长列插入数据
  • 当进行 加列操作 时,所有的数据行 都必须要 增加数据(图中的 4 数据)如上期图解所讲,当改变数据行的长度,就需要 重建表空间(图中灰蓝的部分为发生变更的部分)数据字典中的定义也会被更新以上操作的...
  • 如何在Mysql中一个表的一列数据插入到另一列![图片说明](https://img-ask.csdn.net/upload/201706/30/1498805791_216071.png)
  • 文章目录、前言二、批量插入前准备1、插入数据表的字段2、计算行字段占用的空间3、在数据里做插入操作的时候,整体时间的分配三、批量插入数据测试1、SQL语句的大小限制2、查看服务器上的参数:3、计算次能...
  • mysql一次性插入多条数据

    千次阅读 2021-01-21 17:06:08
    1、如果指定了该的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的个值;2、也可以不指定该的值,只将其他的值插入,让ID还是按照MySQL自增自己填;具体:1.创建数据库create table if not ...
  • 一 背景 ...比如在 test_table 中的 address 前插入一列 company ,这一列的值都是 Microsoft ,SQL语句可以写成: select 'company' Microsoft, address from test_table; 需要注意的是:单引号不能省...
  • mysql复制表中的一列到另一个表中有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,这很简单,SQL可以这么写:UPDATE tb_1 SET content_target = content_source;大概写法如下:Update {your_table} ...
  • 如何使用mysql在建好的表中添加一列

    千次阅读 2021-01-18 18:35:51
    本文主要向大家介绍了如何使用mysql在建好的表中添加一列,通过具体的代码向大家展示,希望对大家学习mysql有所帮助。mysql如果想在一个已经建好的表中添加一列有这样的需求,已经建立的表,随着需求的变化,会需要...
  • 但是这种方式一次只能插入一数据,要想同时插入多条数据,就需要多次调用此SQL语句,这就意味着需要多次与数据库建立连接。这样一来,就会增加服务器的负荷,因为,执行每一次SQL服务器都要同样对SQL进行分析、...
  • MySQL INSERT:插入数据(添加数据

    千次阅读 2021-02-02 06:59:53
    MySQL 中可以使用 INSERT 语句向数据库已有的表中插入一行或者多行元组数据。基本语法INSERT 语句有两种语法形式,分别是 INSERT…VALUES 语句和 INSERT…SET 语句。1) INSERT…VALUES语句INSERT VALUES 的语法...
  • C# 往mysql插入一条或者多条数据

    万次阅读 2021-02-25 11:29:55
    using MySql.Data; using MySql.Data.MySqlClient; using System.Data; using System.Collections.Generic; using System.Linq; using System.Text; /// <summary> ///MYSQLHelper 的摘要说明 /// &.
  • MySQL中如何插入数据

    万次阅读 多人点赞 2020-05-09 21:52:13
    插入数据1数据插入2插入完整行3插入多个行4插入检索出的数据 1数据插入 INSERT是用来插入(或添加)行到数据库表的。插入可以用几种方式使用: 插入完整的行; 插入行的部分; 插入多行; 插入某些查询的结果。 ...
  • MySQL插入数据

    万次阅读 多人点赞 2017-11-02 15:51:00
    MySQL插入数据
  • 1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:INSERT INTO 目标表 SELECT * FROM 来源表;insert into insertTest select * from insertTest2;2.如果只希望导入指定字段,可以用这种方法:INSERT ...
  • MySQL在原有的表中增加一列

    千次阅读 2021-06-10 10:30:14
    表已经建好了,但我们需要再增加一列,使用代码: 注意:如果不加after,那新加的列就在表的最后一列,after是让新加的列在哪一列的后面。 alter table emp_bonus add column ename varchar(20) not null after ...
  • 简单的来说就是向mysql数据库表插入一数据,其中一列是Blob,网上提供的大多是单插一列,测试了还没成功,求教。谢谢
  • MySQL批量插入大量数据方法

    千次阅读 2021-01-18 18:35:54
    MySQL数据库中,如果要插入上百万级的记录,用普通的insert into来操作非常不现实,速度慢人力成本高,推荐使用LoadData或存储过程来导入数据,我总结了一些方法分享如下,主要基于MyISAM和InnoDB引擎。...
  • mysql 主键id自增长,插入数据的方法

    千次阅读 2021-01-13 10:09:22
    CREATE TABLE `new_mobile` ( `id` int(11) NOT NULL auto_increment, `mobile_name` varchar(30) NOT NULL, `phone_name` varchar(30) NOT NULL, `date` date NOT NULL... 不要给id这一列插入具体的数值,否则自增无效
  • Mysql语法之插入数据

    千次阅读 2019-08-10 16:26:01
    数据插入 INSERT是用来插入(或添加)行到数据库表的。插入可以用几种方式使用: 插入完整的行; 插入行的部分; 插入多行; 插入某些查询的结果; 二、插入完整的行 insert into customers values(NULL, '...
  • MySQL插入一条、一次性插入多条数据
  • 使用MySQL workbench插入数据 先创建库和表 CREATE DATABASE STUDENTDB; USE STUDENTDB; CREATE TABLE TEST ( `ID` INT(4) PRIMARY KEY AUTO_INCREMENT COMMENT '学生编号', `NAME` VARCHAR(255) NOT NULL COMMENT...
  • mysql8.0 插入、更新与删除数据

    千次阅读 2022-02-06 11:16:15
    PART1. 插入数据 可以插入的方式由插入完整的记录、插入记录的...注意:虽然使用INSERT插入数据时可以忽略插入数据名称,但是值如果不包含名称,那么VALUES关键字后面的值不仅要求完整而且顺序必须和表定义
  • MySQL将查询结果插入数据表中

    千次阅读 2021-02-05 07:37:46
    转自Mysql教程:http://www.baike369.com/content/?id=5582MySQL将查询结果插入数据表中INSERT语句还可以将SELECT语句查询出来的数据插入到另个表中,即可快速地从个或多个表中向个表中插入多个行。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 232,924
精华内容 93,169
关键字:

mysql插入一列数据

mysql 订阅
友情链接: Auto-Vote_VB_SRC.zip