MySQL学习笔记
表操作 建表语句 1 2 3 4 5 6 7 CREATE TABLE users ( user_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户的唯一标识符' , username VARCHAR (50 ) NOT NULL UNIQUE COMMENT '用户的登录名,必须唯一' );
批量新增语句 1 2 3 4 5 INSERT INTO table_name (column1, column2, column3, ...)VALUES (value1_1, value1_2, value1_3, ...), (value2_1, value2_2, value2_3, ...), (value3_1, value3_2, value3_3, ...);
添加列 1 2 3 4 alter table table_name add column 列名 字段类型alter table 表名 add column 列名 varchar (30 );
删除列 1 2 3 4 alter table table_name drop column 列名alter table 表名 drop column 列名;
语法 排序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 order by 字段名 asc / desc order by 字段名1 asc / desc , 字段名2 asc / desc ORDER BY 表达式 [ASC | DESC ];ORDER BY RAND();group by 字段名 order by 字段名 asc / desc order by case when 表达式1 then 1 when 表达式2 then 2 else 3 end
函数 常用的文本处理函数
函数名
说明
length(str)
返回字符串的长度
concat(str1, str2, …)
连接多个字符串
substr(str, start, length)
从字符串中提取子串
replace(str, old, new)
替换字符串中的子串
GROUP_CONCAT(str, separator)
将多个字符串连接成一个字符串,并使用分隔符分隔
upper(str)
将字符串转换为大写
lower(str)
将字符串转换为小写
ltrim(str)
去除字符串左侧的空白字符
rtrim(str)
去除字符串右侧的空白字符
trim(str)
去除字符串两侧的空白字符
left(str, n)
返回字符串左侧的n个字符
right(str, n)
返回字符串右侧的n个字符
concat_ws(‘,’,str1, str2, …)
连接多个字符串。第一个参数是分隔符,后续参数是要连接的字符串。
分组函数
函数名
说明
count(*)
返回行数
sum(col)
返回指定列的总和
avg(col)
返回指定列的平均值
max(col)
返回指定列的最大值
min(col)
返回指定列的最小值
数值处理函数
函数名
说明
abs(x)
返回x的绝对值
round(x, d)
返回x四舍五入到d位小数
ceil(x/100)
返回大于或等于x的最小整数
floor(x/100)
返回小于或等于x的最大整数
round(x,y)
返回x四舍五入到整数,y指定保留的小数位数
rand()
返回0到1之间的随机数
mod(x,y)
返回x除以y的余数
日期处理函数
函数名
说明
curdate()
返回当前日期
curtime()
返回当前时间
current_timestamp()
返回当前日期和时间
now()
返回当前日期和时间
date(date)
返回日期的日期部分
time(date)
返回日期的时间部分
TIMESTAMPDIFF(date1,date2)
返回两个日期之间的天数差
year(date)
返回日期的年份
month(date)
返回日期的月份
day(date)
返回日期的天数
weekday(date)
返回日期是星期几,星期一为0,星期六为5
date_format(date,format)
格式化日期,format为格式化字符串,如%Y-%m-%d %H:%i:%s
date_add(date, interval n day)
将日期增加n天,interval后面可以指定年(YEAR)、月(MONTH)、日(DAY)、时(HOUR)、分(MINUTE)、秒(SECOND)等单位
date_sub(date, interval n day)
将日期减少n天,interval后面可以指定年(YEAR)、月(MONTH)、日(DAY)、时(HOUR)、分(MINUTE)、秒(SECOND)等单位
条件判断 IF
CASE 1 2 3 4 case when 条件1 then 结果1 when 条件2 then 结果2 else 结果3 end
NULLIF
IFNULL
索引 索引是一种数据结构,用于快速查找数据库表中的数据行。索引可以大大提高数据库查询效率,但同时会降低插入和删除数据的效率。
创建索引(常用索引) 1 2 3 4 5 6 7 8 CREATE INDEX index_name ON table_name (column_name);CREATE UNIQUE INDEX index_name ON table_name (column_name);CREATE FULLTEXT INDEX index_name ON table_name (column_name);CREATE INDEX index_name ON table_name (column1, column2);
删除索引 1 DROP INDEX index_name ON table_name;