code - mysql 基础语法

本文介绍了SQL中的基本语法,包括事务控制(starttransaction,rollback,commit)、数据操作(INSERT,REPLACE,JSON操作),日期时间处理,函数使用,字段操作,元信息查询,以及数据库字符集和访问权限的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础语法

-- 启动事务
start transaction

-- 回滚事务
rollback

-- 提交事务
commit

-- 本 sql 不启用缓存
SELECT SQL_NO_CACHE * FROM sys_user;

新增时编辑

-- 覆盖
INSERT INTO table_name ( col_name )
VALUES (row_1), (row_2)
ON DUPLICATE KEY UPDATE
col_name = values(col_name)

-- 删除后插入
replace into table_name ( col_name )
values (row_1), (row_2)

递归查询

SQL:With recursive 递归用法

JSON

-- 创建 json_array
json_array( 'a', 'b', 'c' )

-- 创建 json_object
-- {"a": 1, "b": 2}
json_object( 'a', 1, 'b', 2 )

-- 判断类型
json_type('{}') -- OBJECT
json_type('[]') -- ARRAY

-- 取值 ( 双箭头 ->> 会将字符串两边的引号去掉 )
select j_col -> '$[0]' from j_tbl
select j_col ->> '$[0]' from j_tbl
select JSON_EXTRACT(j_col, '$[0]') from j_tbl

日期时间

-- 按单位计算时间差
TIMESTAMPDIFF(MINUTE, start_time, end_time)

-- 按单位新增时间段
TIMESTAMPADD(MINUTE, 7 , now());

-- 日期格式化
DATE_FORMAT(now(), '%Y-%m-%d %T')

-- 获取本日是周几 ( 0 代表周一, 类推 )
weekday(now())

函数

-- 多行合并为一行 ( 里面可以写 order by, distinct, separator )
GROUP_CONCAT( id ORDER BY created_time DESC )
----------------------------------------------------------------

-- 查看字符集
CHARSET('中文')

-- 临时修改字符集
CONVERT('中文' using 'gbk')

----------------------------------------------------------------

-- 获取字符串的字节长度
LENGTH('中文') -- 6

-- 获取字符串的字符长度
CHAR_LENGTH('中文') -- 2

-- 将字符串重复 n 次
REPEAT('a', 5)

-- 截取第 n 个分隔符前面的数据 ( 如果分隔符不存在, 返回原数据 )
-- 如果 n 是负数, 从后向前截
SUBSTRING_INDEX('1,2', ',', 1) -- 1
SUBSTRING_INDEX('1,2', ',', -1) -- 2

字段操作

-- 新增字段
ALTER TABLE my_table
ADD COLUMN my_col DATETIME
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
COMMENT '描述'

-- 修改字段
ALTER TABLE my_table
MODIFY COLUMN my_col TEXT
COMMENT "描述"

-- 修改自动递增值
ALTER TABLE my_table AUTO_INCREMENT = 100

元信息查询

-- 查询所有表
select *
from information_schema.TABLES
where table_schema = 'database_name'

-- 查询所有字段
select *
from information_schema.`COLUMNS`
where table_schema = 'database_name'

修改字符集, 排序规则

-- 修改数据库字符集 ( 只对新表生效 )
alter database local_test_database
character set utf8mb4
collate utf8mb4_unicode_ci

-- 修改表的字符集 ( 只对新字段生效 )
alter table local_test_table
character set utf8mb4
collate utf8mb4_unicode_ci

-- 修改字段的字符集 ( 只对新数据生效 )
alter table local_test_table
modify column_name column_type
character set utf8mb4
collate utf8mb4_unicode_ci

访问权限

-- 赋予远程连接权限
alter user 'root'@'%'
identified with mysql_native_password by 'root'

-- 刷新权限
FLUSH PRIVILEGES
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值