values:值,数据
在非事物型的nosql数据库中,例如redis数据库是:key-values数据库,俗称:键-值
values就是数据,对应的是key值,程序可以通过getValues(key) 的方式来获取数据。
MySql是一个种关联数据库管理系统,所谓关联数据库就是将数据保存在不同的表中,而不是将所有数据放在一个大的仓库中。这样就增加了速度与提高了灵活性。并且MySql软件是一个开放源码软件。
扩展资料
关系型数据库按照结构化的方法存储数据, 每个数据表都必须对各个字段定义好(也就是先定义好表的结构),再根据表的结构存入数据,这样做的好处就是由于数据的形式和内容在存入数据之前就已经定义好了,所以整个数据表的可靠性和稳定性都比较高,但带来的问题就是一旦存入数据后,如果需要修改数据表的结构就会十分困难。
而NoSQL数据库由于面对的是大量非结构化的数据的存储,它采用的是动态结构,对于数据类型和结构的改变非常的适应,可以根据数据存储的需要灵活的改变数据库的结构。
VALUES 语句具体语法:VALUES row_constructor_list[ORDER BY column_designator][LIMIT BY number] row_constructor_list:ROW(value_list)[, ROW(value_list)][, ...]value_list:value[, value][, ...]column_designator:column_index
VALUES 语句,用做功能展示或者快速造数据场景,结果列名字以 COLUMN_0 开头,以此类推,举个简单例子。单条 VALUES 语句mysql-(ytt/3305)->values row(1,2,3)+----------+----------+----------+| column_0 | column_1 | column_2 |+----------+----------+----------+|1|2|3|+----------+----------+----------+1 row inset(0.00 sec)
多条 VALUES 语句mysql-(ytt/3305)->values row(1,2,3),row(10,9,8)+----------+----------+----------+| column_0 | column_1 | column_2 |+----------+----------+----------+|1 |2 |3 || 10 |9 |8 |+----------+----------+----------+2 rows in set (0.00 sec)
多条 VALUES 联合 UNION ALLmysql-(ytt/3305)->values row(1,2,3),row(10,9,8) union all values \row(-1,-2,0),row(10,29,30),row(100,20,-9)+----------+----------+----------+| column_0 | column_1 | column_2 |+----------+----------+----------+|1 |2 |3 || 10 |9 |8 || -1 | -2 |0 || 10 | 29 | 30 || 100 | 20 | -9 |+----------+----------+----------+5 rows in set (0.00 sec)
根据字段下标排序,从 1 开始mysql-(ytt/3305)->values row(1,2,3),row(10,9,8) union all values \row(-1,-2,0),row(10,29,30),row(100,20,-9) order by 1 desc +----------+----------+----------+| column_0 | column_1 | column_2 |+----------+----------+----------+| 100 | 20 | -9 || 10 |9 |8 || 10 | 29 | 30 ||1 |2 |3 || -1 | -2 |0 |+----------+----------+----------+5 rows in set (0.00 sec)
类型可以任意组合:bit,json,datetime,int,decimal 等mysql-(ytt/3305)->values row(100,200,300),\row('2020-03-10 12:14:15','mysql','test'), \row(16.22,TRUE,b'1'), \row(left(uuid(),8),'{"name":"lucy","age":"28"}',hex('dble'))+---------------------+----------------------------+--------------------+| column_0| column_1 | column_2 |+---------------------+----------------------------+--------------------+| 100 | 200| 0x333030 || 2020-03-10 12:14:15 | mysql | 0x74657374 || 16.22 | 1 | 0x01 || c86fd1a7| {"name":"lucy","age":"28"} | 0x3634363236433635 |+---------------------+----------------------------+--------------------+4 rows in set (0.00 sec)
新建表 t3,把刚才这些记录写进去mysql-(ytt/3305)->create table t3 (r1 varchar(100),r2 varchar(100),r3 varchar(100))Query OK, 0 rows affected (0.02 sec)
写入到表 t3mysql-(ytt/3305)->insert into t3 values row(100,200,300), \row('2020-03-10 12:14:15','mysql','test'), \row(16.22,TRUE,b'1'),\row(left(uuid(),8),'{"name":"lucy","age":"28"}',hex('dble'))Query OK, 4 rows affected (0.00 sec)Records: 4 Duplicates: 0 Warnings: 0
sql语句中,添加记录的语法为:insert into 表名 (col1,col2....coln)values(value1,value2.....valuen);
其中,如果你插入的每一列都是顺序插入,无一缺漏的话,(col1,col2...coln)可以省略。
也就是上式也可以简化为:insert into 表名 values(value1,value2.....valuen);
看了你写的sql代码,问题出在insert into 的整体语句出现在了不该出现的地方,只需做一点小改动即可解决,如下图:
解析:insert into语句需要在user表已经存在的情况下才可以使用。而你原来的语句中,将上图2中的语句插入到了create table user的语句中,致使create table user 语句未能成功执行,所以才会报错。
而将“INSERT INTO user(uid,tel) values('甲','3354986')”整条语句直接拿出来放在“ENGINE=InnoDB DEFAULT CHARSET=gbk”后面之后,整个sql就可以顺利执行了。
扩展资料:
当mysql大批量插入数据的时候就会变的非常慢, mysql提高insert into 插入速度的方法有三种:
1、第一种插入提速方法:
如果数据库中的数据已经很多(几百万条), 那么可以 加大mysql配置中的 bulk_insert_buffer_size,这个参数默认为8M
举例:bulk_insert_buffer_size=100M;
2、第二种mysql插入提速方法:
改写所有 insert into 语句为 insert delayed into
这个insert delayed不同之处在于:立即返回结果,后台进行处理插入。
3、第三个方法: 一次插入多条数据:
insert中插入多条数据,举例:
insert into table values('11','11'),('22','22'),('33','33')...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)