基础语法
start transaction
rollback
commit
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( 'a', 'b', 'c' )
json_object( 'a', 1, 'b', 2 )
json_type('{}')
json_type('[]')
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')
weekday(now())
函数
GROUP_CONCAT( id ORDER BY created_time DESC )
CHARSET('中文')
CONVERT('中文' using 'gbk')
LENGTH('中文')
CHAR_LENGTH('中文')
REPEAT('a', 5)
SUBSTRING_INDEX('1,2', ',', 1)
SUBSTRING_INDEX('1,2', ',', -1)
字段操作
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