sql语句随手小记

Mysql的sql语句

参考:
史上超强最常用SQL语句大全
SQL的执行顺序
SQL语句书写顺序与执行顺序

修改字段类型

# 要修改一个字段的数据类型,可以使用以下ALTER TABLE语句
ALTER TABLE 表名 MODIFY 列名 新数据类型;
# 如果需要修改字段的名称和数据类型,可以使用CHANGE语句。CHANGE语句的语法如下:
ALTER TABLE 表名 CHANGE 原列名 新列名 新数据类型;
# 增加新字段
alter table 表名 add 字段名 varchar(32) default 默认值 comment '备注名' after/before 老字段;

分组查询每组最新一条数据

Mysql分组查询每组最新的一条数据(五种实现方法)

Mysql中获取分组的最新一条记录

substr函数

MySQL substr函数使用详解

decimal(a, b)

decimal(a,b)
a:指的是整数和小数所能存的最多的位数
b:指的是小数数字的位数,即a-b就是整数的位数

创建索引

1、使用CREATE INDEX创建
2、使用ALTER语句创建
3、建表的时候创建索引
区别:

  • alter table一次可以添加多个索引,create index一次只能创建一个。创建多个索引时,alter table只对表扫描一次,效率较高。
  • alter table可以不指定索引名,此时将使用索引列的第一列的列名,也可以指定索引名字。create index必须指定索引名。
    因此,alter table添加索引更灵活,所以在创建索引的时候提倡使用alter table这种形式。
CREATE INDEX indexName ON tableName (columnName(length));

ALTER TABLE table_name ADD INDEX `index_name` (column_list);
ALTER TABLE table_name ADD UNIQUE (column_list);
ALTER TABLE table_name ADD PRIMARY KEY (column_list);
alter table 表名 add fulltext (列名)  ## 全文索引
ALTER TABLE table_name ADD UNIQUE `index_name`(column_list);
alter table 表名 add index 索引名(index name) (列名1,列名2.......)


CREATE TABLE tableName( 
  id INT NOT NULL,  
  columnName  columnType,
  INDEX [indexName] (columnName(length)) 
);

json_extract函数

数据库中某个字段会需要存储json格式字符串,查询的时候有时json数据较大,每次全部取出再去解析查询效率较低,也较麻烦

Mysql5.7及之后的版本里提供了json_extract函数,可以通过key查询value值(如果是json数组类型,可以通过下标获取对应位置的值

语法:
JSON_EXTRACT(json_doc, path[, path] …)

用法提示:
如果json字符串不是数组,则直接使用 $.字段名
如果json字符串是数组[Array],则直接使用 $[对应的索引ID]

MySQL中json_extract函数说明
怎么通过SQL取出数据库中JSON字段中的值

Mysql中json数据类型使用

MySQL JSON数据类型
MySQL 5.7 JSON特性支持

concat()相关函数

concat()函数

1、功能:将多个字符串连接成一个字符串。

2、语法:concat(str1, str2,…)

返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null

concat_ws()函数

1、功能:和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符~(concat_ws就是concat with separator)

2、语法:concat_ws(separator, str1, str2, …)

说明:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。

group_concat()

1、功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

2、语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )

说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

主键查询、修改、删除

sql主键删除/sql主键修改

MySQL修改主键的方法(mysql修改主键)

如何在MySQL中修改主键

MySQL如何修改主键

SQL 通过SELECT语句更新多个字段的值

SQL 通过SELECT语句更新多个字段的值

Mysql查询:行转列与列转行

Mysql查询:行转列与列转行

字段合并为一个字段

数据库将查询的多个字段结果合并为一个字段处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值