当前文章收录状态:
未收录
-- 数据库(windows下不分大小写)-- 登录:(-u名字 -p密码)<a href="https://www.zym88.cn/tag/mysql" title="更多关于 mysql 的文章" target="_blank">mysql</a> -uroot -p-- 退出:exit;-- 创建数据库:create database 数据库名字;-- 显示所有数据库:show databases;-- 删除数据库:drop database 数据库名字;-- 使用数据库:use 数据库名;-- 创建数据表:(除了varchar之外的约束可不写)create table 表名(列名1 数据类型(约束),列名2 数据类型(约束),列名3 数据类型(约束));-- 显示所有数据表:show tables;-- 查看表中结构:desc 表名;-- 数据库(windows下不分大小写) -- 登录:(-u名字 -p密码) <a href="https://www.zym88.cn/tag/mysql" title="更多关于 mysql 的文章" target="_blank">mysql</a> -uroot -p -- 退出: exit; -- 创建数据库: create database 数据库名字; -- 显示所有数据库: show databases; -- 删除数据库: drop database 数据库名字; -- 使用数据库: use 数据库名; -- 创建数据表:(除了varchar之外的约束可不写) create table 表名( 列名1 数据类型(约束), 列名2 数据类型(约束), 列名3 数据类型(约束) ); -- 显示所有数据表: show tables; -- 查看表中结构: desc 表名;-- 数据库(windows下不分大小写) -- 登录:(-u名字 -p密码) mysql -uroot -p -- 退出: exit; -- 创建数据库: create database 数据库名字; -- 显示所有数据库: show databases; -- 删除数据库: drop database 数据库名字; -- 使用数据库: use 数据库名; -- 创建数据表:(除了varchar之外的约束可不写) create table 表名( 列名1 数据类型(约束), 列名2 数据类型(约束), 列名3 数据类型(约束) ); -- 显示所有数据表: show tables; -- 查看表中结构: desc 表名;
-- 向表中添加数据:(insert)insert into 表名(列1,列2,列3) values (值1,值2,值3);-- 格式2:-- 当<所有值>都要写入时,可不用列名insert into 表名 values (值1,值2,值3,值4);-- 格式3:-- 批量写入insert into 表名 (列1,列2,列3...) values (值1,值2,值3...),(值1,值2,值3...),(值1,值2,值3...)...;-- 自动增长:primary key AUTO_INCREMENT-- 设置编码格式:(中文乱码或无法添加中文)set names 'gbk';-- 删除数据表:drop table 表名;-- 在已有的表上,添加一个字段:alter table 表名 add 列名 数据类型;-- 修改某列长度:alter table 表名 modify 列名 数据类型(约束长度);-- 删除某一列:alter TABLE 表名 drop 列名;-- 查看表格的创建细节:show create table 表名;-- 修改表名:rename table 旧表名 to 新表名;-- 修改列信息:alter table 表名 change 旧列名 新列名 数据类型(约束);-- 向表中添加数据:(insert) insert into 表名(列1,列2,列3) values (值1,值2,值3); -- 格式2: -- 当<所有值>都要写入时,可不用列名 insert into 表名 values (值1,值2,值3,值4); -- 格式3: -- 批量写入 insert into 表名 (列1,列2,列3...) values (值1,值2,值3...),(值1,值2,值3...),(值1,值2,值3...)...; -- 自动增长: primary key AUTO_INCREMENT -- 设置编码格式:(中文乱码或无法添加中文) set names 'gbk'; -- 删除数据表: drop table 表名; -- 在已有的表上,添加一个字段: alter table 表名 add 列名 数据类型; -- 修改某列长度: alter table 表名 modify 列名 数据类型(约束长度); -- 删除某一列: alter TABLE 表名 drop 列名; -- 查看表格的创建细节: show create table 表名; -- 修改表名: rename table 旧表名 to 新表名; -- 修改列信息: alter table 表名 change 旧列名 新列名 数据类型(约束);-- 向表中添加数据:(insert) insert into 表名(列1,列2,列3) values (值1,值2,值3); -- 格式2: -- 当<所有值>都要写入时,可不用列名 insert into 表名 values (值1,值2,值3,值4); -- 格式3: -- 批量写入 insert into 表名 (列1,列2,列3...) values (值1,值2,值3...),(值1,值2,值3...),(值1,值2,值3...)...; -- 自动增长: primary key AUTO_INCREMENT -- 设置编码格式:(中文乱码或无法添加中文) set names 'gbk'; -- 删除数据表: drop table 表名; -- 在已有的表上,添加一个字段: alter table 表名 add 列名 数据类型; -- 修改某列长度: alter table 表名 modify 列名 数据类型(约束长度); -- 删除某一列: alter TABLE 表名 drop 列名; -- 查看表格的创建细节: show create table 表名; -- 修改表名: rename table 旧表名 to 新表名; -- 修改列信息: alter table 表名 change 旧列名 新列名 数据类型(约束);
-- 查询指定列的数据:select 列1,列2 from 表名;-- 查询所有列:select * from 表名;-- 去重:(关键字:distinct)[去掉该列中的重复项]select distinct 列名 from 表名;-- 查询并临时修改列名:(关键字:as)select 列名 as '临时列名' from 表名;-- 查询时进行数据运算:(该列中的内容值全部加10)select 列名+10 from 表名;-- $条件查询:(关键字:where)<where后跟查询条件>-- 1.查询指定列中的所有指定项:select * from 表名 where 列名='要查询的内容';-- 2.查询指定列中所有大于<规定值>(不包括规定值)的项:select * from 表名 where 列名>规定值;#条件的写法:id = 6; 等于id <> 6; 不等于id <= 6; 小于等于id in(1,3,4,5,6) 包含id not in (1,2,3,4,5,6) 不包含and 与/和or 或not 非-- 3.查询指定列在指定区间内的值:(所有该列10~20之间的项<包含>)-- 写法1:select * from 表名 where 列名>=10 and 列名<=20;-- 使用(关键字:between)要求"<and前面的值必须要小于后面的值>"-- 写法2:select * from 表名 where 列名 between 10 and 20;-- 4.查询指定列中所有10,11,19的项:select * from 表名 where 列名=10 or 列名=11 or 列名=19;-- ↓-- 优化,改造成in方式:(in为包含,not in为排除)selcet * from 表名 where 列名 in (10,11,19);-- $模糊查询(关键字:like) 配合通配符使用:-- %:表示多个字符;-- _:(下划线)表示一个字符;-- 1.查询含有指定内容的单元数据:(显示出了该列中所有所有'指定字符'的数据)select * from 表名 where 列名 like '%指定字符%';-- 指定字符% :显示出该列中以指定字符开头的数据;-- %指定字符 :显示出该列中以指定字符结尾的数据;-- 2.查询指定长度的单元数据:(五个下滑线表示长度为5的单元数据)select * from 表名 where 列名 like '_____';-- 3.查询不为空的数据:select * from 表名 where 列名 is not null;-- 或select * from 表名 where not (列名 is null);-- ↓扩展:select * from 表名 where not (列名1 is null and 列名2 is null);-- 注:条件组装也就是用and,or来组装条件,条件组装是有优先级的,可以用小括号()来括起来.-- 查询指定列的数据: select 列1,列2 from 表名; -- 查询所有列: select * from 表名; -- 去重:(关键字:distinct)[去掉该列中的重复项] select distinct 列名 from 表名; -- 查询并临时修改列名:(关键字:as) select 列名 as '临时列名' from 表名; -- 查询时进行数据运算:(该列中的内容值全部加10) select 列名+10 from 表名; -- $条件查询:(关键字:where)<where后跟查询条件> -- 1.查询指定列中的所有指定项: select * from 表名 where 列名='要查询的内容'; -- 2.查询指定列中所有大于<规定值>(不包括规定值)的项: select * from 表名 where 列名>规定值; #条件的写法: id = 6; 等于 id <> 6; 不等于 id <= 6; 小于等于 id in(1,3,4,5,6) 包含 id not in (1,2,3,4,5,6) 不包含 and 与/和 or 或 not 非 -- 3.查询指定列在指定区间内的值:(所有该列10~20之间的项<包含>) -- 写法1:select * from 表名 where 列名>=10 and 列名<=20; -- 使用(关键字:between)要求"<and前面的值必须要小于后面的值>" -- 写法2:select * from 表名 where 列名 between 10 and 20; -- 4.查询指定列中所有10,11,19的项: select * from 表名 where 列名=10 or 列名=11 or 列名=19; -- ↓ -- 优化,改造成in方式:(in为包含,not in为排除) selcet * from 表名 where 列名 in (10,11,19); -- $模糊查询(关键字:like) 配合通配符使用: -- %:表示多个字符; -- _:(下划线)表示一个字符; -- 1.查询含有指定内容的单元数据:(显示出了该列中所有所有'指定字符'的数据) select * from 表名 where 列名 like '%指定字符%'; -- 指定字符% :显示出该列中以指定字符开头的数据; -- %指定字符 :显示出该列中以指定字符结尾的数据; -- 2.查询指定长度的单元数据:(五个下滑线表示长度为5的单元数据) select * from 表名 where 列名 like '_____'; -- 3.查询不为空的数据: select * from 表名 where 列名 is not null; -- 或 select * from 表名 where not (列名 is null); -- ↓扩展: select * from 表名 where not (列名1 is null and 列名2 is null); -- 注:条件组装也就是用and,or来组装条件,条件组装是有优先级的,可以用小括号()来括起来.-- 查询指定列的数据: select 列1,列2 from 表名; -- 查询所有列: select * from 表名; -- 去重:(关键字:distinct)[去掉该列中的重复项] select distinct 列名 from 表名; -- 查询并临时修改列名:(关键字:as) select 列名 as '临时列名' from 表名; -- 查询时进行数据运算:(该列中的内容值全部加10) select 列名+10 from 表名; -- $条件查询:(关键字:where)<where后跟查询条件> -- 1.查询指定列中的所有指定项: select * from 表名 where 列名='要查询的内容'; -- 2.查询指定列中所有大于<规定值>(不包括规定值)的项: select * from 表名 where 列名>规定值; #条件的写法: id = 6; 等于 id <> 6; 不等于 id <= 6; 小于等于 id in(1,3,4,5,6) 包含 id not in (1,2,3,4,5,6) 不包含 and 与/和 or 或 not 非 -- 3.查询指定列在指定区间内的值:(所有该列10~20之间的项<包含>) -- 写法1:select * from 表名 where 列名>=10 and 列名<=20; -- 使用(关键字:between)要求"<and前面的值必须要小于后面的值>" -- 写法2:select * from 表名 where 列名 between 10 and 20; -- 4.查询指定列中所有10,11,19的项: select * from 表名 where 列名=10 or 列名=11 or 列名=19; -- ↓ -- 优化,改造成in方式:(in为包含,not in为排除) selcet * from 表名 where 列名 in (10,11,19); -- $模糊查询(关键字:like) 配合通配符使用: -- %:表示多个字符; -- _:(下划线)表示一个字符; -- 1.查询含有指定内容的单元数据:(显示出了该列中所有所有'指定字符'的数据) select * from 表名 where 列名 like '%指定字符%'; -- 指定字符% :显示出该列中以指定字符开头的数据; -- %指定字符 :显示出该列中以指定字符结尾的数据; -- 2.查询指定长度的单元数据:(五个下滑线表示长度为5的单元数据) select * from 表名 where 列名 like '_____'; -- 3.查询不为空的数据: select * from 表名 where 列名 is not null; -- 或 select * from 表名 where not (列名 is null); -- ↓扩展: select * from 表名 where not (列名1 is null and 列名2 is null); -- 注:条件组装也就是用and,or来组装条件,条件组装是有优先级的,可以用小括号()来括起来.
-- $排序查询(关键字:order by)-- 1.根局规定列的值升序排序查询;-- ↓默认是升序(或者asc关键字)select * from 表名 order by 列名;-- 2.根局规定列的值降序排序查询;-- ↓降序排序(desc)select * from 表名 order by 列名 desc;-- 结合排序查询与条件查询-- 先过滤条件,再进行排序:-- 查询列1中所有包含'张三'的字段信息,并根局列2中值的大小进行降序排序;select * from 表名 where 列名1 like '%张三%' order by 列2 desc;-- 注:尽量不要对中文进行排序,很迷~-- 聚合函数:(对一列的值进行计算,返回单一的一个值!)-- count :统计个数.(null 不计)-- sum: 求和-- max: 最大值-- min: 最小值-- avg: 平均值-- ===count,求和,对指定列的[数据个数]求和 count(列名).就是看该列有多少条数据.-- select count(*) from 表名;(查询该表中一共有多少条数据)-- ↑其中*代表所有列select count(*) as 'a' from 表名;-- ↑返回的数据名'a'默认为函数名,在此处也就是count(*),可以进行修改↑;-- ===sum,求和,对指定列的[数据值]求和 sum(列名),就是看该列中所有值相加的和.select sum(列名) from 表名;-- 注意:列的类型:汉字不能求和;若有汉字,按0计算,对不是数据类型的数据,计0运算.-- 可以与条件查询结合↓ (查询列2中所有包含'张三'的字段,并求出其中所有列1的值的和).select sum(列1) from 表名 where 列2 like '%张三%';-- ===max/min,最大值/最小值select max(列名) from 表名;(获取到该列最大值)-- ===avg,计算指定列中所有数据的平均数select avg(列名) from 表名;(获取到该列平均值)-- 注意:空值在计算时直接忽略-- 结:聚合函数的返回值,只有一个值.-- 对数据类型有要求-- $分组查询(关键字:group by)-- 跟随聚合函数使用:group by(被分组的列名);-- select查询时,被分组的列要出现在select选择列后面;-- ↓按照列2的相同内容对列1进行求和并显示select sum(列1),列2 from 表名 group by 列2;-- +:结合条件查询时,条件在前↓:select sum(列1),列2 from 表名 where 列2 like '%张三%' group by 列2;-- 按照列2中的'张三'内容对列1进行求和并显示;-- +增加排序,排序要加在最后select sum(列1),列2 from 表名 where 列2 like '%张三%' group by 列2 order by sum(列1) desc;-- 按照列2中的'张三'内容对列1进行求和并按降序显示;-- +可以用as临时命名一个函数[sum(列1)],但后面的函数就要相应做出改变;select sum(列1) as 'a',列2 from 表名 where 列2 like '%张三%' group by 列2 order by a desc;-- $排序查询(关键字:order by) -- 1.根局规定列的值升序排序查询; -- ↓默认是升序(或者asc关键字) select * from 表名 order by 列名; -- 2.根局规定列的值降序排序查询; -- ↓降序排序(desc) select * from 表名 order by 列名 desc; -- 结合排序查询与条件查询 -- 先过滤条件,再进行排序: -- 查询列1中所有包含'张三'的字段信息,并根局列2中值的大小进行降序排序; select * from 表名 where 列名1 like '%张三%' order by 列2 desc; -- 注:尽量不要对中文进行排序,很迷~ -- 聚合函数:(对一列的值进行计算,返回单一的一个值!) -- count :统计个数.(null 不计) -- sum: 求和 -- max: 最大值 -- min: 最小值 -- avg: 平均值 -- ===count,求和,对指定列的[数据个数]求和 count(列名).就是看该列有多少条数据. -- select count(*) from 表名;(查询该表中一共有多少条数据) -- ↑其中*代表所有列 select count(*) as 'a' from 表名; -- ↑返回的数据名'a'默认为函数名,在此处也就是count(*),可以进行修改↑; -- ===sum,求和,对指定列的[数据值]求和 sum(列名),就是看该列中所有值相加的和. select sum(列名) from 表名; -- 注意:列的类型:汉字不能求和;若有汉字,按0计算,对不是数据类型的数据,计0运算. -- 可以与条件查询结合↓ (查询列2中所有包含'张三'的字段,并求出其中所有列1的值的和). select sum(列1) from 表名 where 列2 like '%张三%'; -- ===max/min,最大值/最小值 select max(列名) from 表名;(获取到该列最大值) -- ===avg,计算指定列中所有数据的平均数 select avg(列名) from 表名;(获取到该列平均值) -- 注意:空值在计算时直接忽略 -- 结:聚合函数的返回值,只有一个值. -- 对数据类型有要求 -- $分组查询(关键字:group by) -- 跟随聚合函数使用:group by(被分组的列名); -- select查询时,被分组的列要出现在select选择列后面; -- ↓按照列2的相同内容对列1进行求和并显示 select sum(列1),列2 from 表名 group by 列2; -- +:结合条件查询时,条件在前↓: select sum(列1),列2 from 表名 where 列2 like '%张三%' group by 列2; -- 按照列2中的'张三'内容对列1进行求和并显示; -- +增加排序,排序要加在最后 select sum(列1),列2 from 表名 where 列2 like '%张三%' group by 列2 order by sum(列1) desc; -- 按照列2中的'张三'内容对列1进行求和并按降序显示; -- +可以用as临时命名一个函数[sum(列1)],但后面的函数就要相应做出改变; select sum(列1) as 'a',列2 from 表名 where 列2 like '%张三%' group by 列2 order by a desc;-- $排序查询(关键字:order by) -- 1.根局规定列的值升序排序查询; -- ↓默认是升序(或者asc关键字) select * from 表名 order by 列名; -- 2.根局规定列的值降序排序查询; -- ↓降序排序(desc) select * from 表名 order by 列名 desc; -- 结合排序查询与条件查询 -- 先过滤条件,再进行排序: -- 查询列1中所有包含'张三'的字段信息,并根局列2中值的大小进行降序排序; select * from 表名 where 列名1 like '%张三%' order by 列2 desc; -- 注:尽量不要对中文进行排序,很迷~ -- 聚合函数:(对一列的值进行计算,返回单一的一个值!) -- count :统计个数.(null 不计) -- sum: 求和 -- max: 最大值 -- min: 最小值 -- avg: 平均值 -- ===count,求和,对指定列的[数据个数]求和 count(列名).就是看该列有多少条数据. -- select count(*) from 表名;(查询该表中一共有多少条数据) -- ↑其中*代表所有列 select count(*) as 'a' from 表名; -- ↑返回的数据名'a'默认为函数名,在此处也就是count(*),可以进行修改↑; -- ===sum,求和,对指定列的[数据值]求和 sum(列名),就是看该列中所有值相加的和. select sum(列名) from 表名; -- 注意:列的类型:汉字不能求和;若有汉字,按0计算,对不是数据类型的数据,计0运算. -- 可以与条件查询结合↓ (查询列2中所有包含'张三'的字段,并求出其中所有列1的值的和). select sum(列1) from 表名 where 列2 like '%张三%'; -- ===max/min,最大值/最小值 select max(列名) from 表名;(获取到该列最大值) -- ===avg,计算指定列中所有数据的平均数 select avg(列名) from 表名;(获取到该列平均值) -- 注意:空值在计算时直接忽略 -- 结:聚合函数的返回值,只有一个值. -- 对数据类型有要求 -- $分组查询(关键字:group by) -- 跟随聚合函数使用:group by(被分组的列名); -- select查询时,被分组的列要出现在select选择列后面; -- ↓按照列2的相同内容对列1进行求和并显示 select sum(列1),列2 from 表名 group by 列2; -- +:结合条件查询时,条件在前↓: select sum(列1),列2 from 表名 where 列2 like '%张三%' group by 列2; -- 按照列2中的'张三'内容对列1进行求和并显示; -- +增加排序,排序要加在最后 select sum(列1),列2 from 表名 where 列2 like '%张三%' group by 列2 order by sum(列1) desc; -- 按照列2中的'张三'内容对列1进行求和并按降序显示; -- +可以用as临时命名一个函数[sum(列1)],但后面的函数就要相应做出改变; select sum(列1) as 'a',列2 from 表名 where 列2 like '%张三%' group by 列2 order by a desc;
-- 修改指定列数据:update 表名 set 列1=值1,列2=值2,... where 条件;-- 在原来的基础上添加前缀或后缀;update 表名 set 列1=concat('qf',列1) where 条件;-- 删除:delete from 表名 where 条件;-- 效率高,速度快,无法回滚数据.truncate table 表名;-- 修改指定列数据: update 表名 set 列1=值1,列2=值2,... where 条件; -- 在原来的基础上添加前缀或后缀; update 表名 set 列1=concat('qf',列1) where 条件; -- 删除: delete from 表名 where 条件; -- 效率高,速度快,无法回滚数据. truncate table 表名;-- 修改指定列数据: update 表名 set 列1=值1,列2=值2,... where 条件; -- 在原来的基础上添加前缀或后缀; update 表名 set 列1=concat('qf',列1) where 条件; -- 删除: delete from 表名 where 条件; -- 效率高,速度快,无法回滚数据. truncate table 表名;
-- $ having-- 作用类似于where条件;-- having于where的区别:-- having 是在分组后对数据进行过滤-- where 是在分组前对数据进行过滤-- 在之前的例子中:我们要对已经得到的数据再进行一个筛选:-- 比如说在得到的数据中,我们只需要列1大于18的所有值,这是在代码后再加一个where是行不通的,在前一个where后加条件-- 也不行!这时就要用到having;select sum(列1),列2 from 表名 where 列2 like '%张三%' group by 列2 having sum(列1) > 18;-- 按照列2中的'张三'内容对列1进行求和并按降序显示且只显示 sum(列1) 的值大于18的内容;-- $分组查询:(关键词:limit x,y)-- x:表示从第几行开始显示(不包括x行,x为0时,可省略不写)-- y:表示一次显示及行(y为-1时,表示表末位)select * from 表名 order by 列1 desc limit 2,5;-- $ having -- 作用类似于where条件; -- having于where的区别: -- having 是在分组后对数据进行过滤 -- where 是在分组前对数据进行过滤 -- 在之前的例子中:我们要对已经得到的数据再进行一个筛选: -- 比如说在得到的数据中,我们只需要列1大于18的所有值,这是在代码后再加一个where是行不通的,在前一个where后加条件 -- 也不行!这时就要用到having; select sum(列1),列2 from 表名 where 列2 like '%张三%' group by 列2 having sum(列1) > 18; -- 按照列2中的'张三'内容对列1进行求和并按降序显示且只显示 sum(列1) 的值大于18的内容; -- $分组查询:(关键词:limit x,y) -- x:表示从第几行开始显示(不包括x行,x为0时,可省略不写) -- y:表示一次显示及行(y为-1时,表示表末位) select * from 表名 order by 列1 desc limit 2,5;-- $ having -- 作用类似于where条件; -- having于where的区别: -- having 是在分组后对数据进行过滤 -- where 是在分组前对数据进行过滤 -- 在之前的例子中:我们要对已经得到的数据再进行一个筛选: -- 比如说在得到的数据中,我们只需要列1大于18的所有值,这是在代码后再加一个where是行不通的,在前一个where后加条件 -- 也不行!这时就要用到having; select sum(列1),列2 from 表名 where 列2 like '%张三%' group by 列2 having sum(列1) > 18; -- 按照列2中的'张三'内容对列1进行求和并按降序显示且只显示 sum(列1) 的值大于18的内容; -- $分组查询:(关键词:limit x,y) -- x:表示从第几行开始显示(不包括x行,x为0时,可省略不写) -- y:表示一次显示及行(y为-1时,表示表末位) select * from 表名 order by 列1 desc limit 2,5;
合并查询:(关键字:union)
1.(查询语句1) union (查询语句2)#:重复数据只显示一遍
作用:将两条查询语句返回的结果合并到一起
2.(查询语句1) union ALL (查询语句2)#:显示所有数据
要求:被合并的两个结果集,列数.类型必须相同
连接查询:(关键字:xxx join on)
1.左连接:left join 表名 on (表1列 = 表2列)
2.右连接:right join on
3.内连接:inner join on
select * from 表1 left join 表2 on (表1和表2共同的条件)
4.外连接:outer join on
连接不仅限于2张表,也可以是多张表
子查询:
一个语句包含另一个语句
where后
from后
子查询也不仅限于2条语句,也可以是多条sql语句
-- $日期函数:-- 获取日期是本年的第几天, 值在1到366之间SELECT DAYOFYEAR('1998-02-03');-- 获取日期是本月的第几天, 值在1到31之间SELECT DAYOFMONTH('1998-02-03');-- 获取日期是本周的第几天, 值在1到7之间SELECT DAYOFWEEK('1998-02-03');-- 获取日期的星期索引SELECT WEEKDAY('1999-03-16 13:23:00');-- 获取日期的月份英文名SELECT MONTHNAME('1998-02-09');-- 获取日期是星期几SELECT DAYNAME('1987-09-07');-- 获取日期是本年的哪一季度,取值1到4SELECT QUARTER('1999-09-03');-- 将日期时间转换成对应的字符串(大小写)SELECT DATE_FORMAT(NOW(),'%Y%m%d');SELECT DATE_FORMAT(NOW(),'%Y%m%d%H%I%S');-- $字符串函数-- LOWER(column|str):将字符串参数值转换为全小写字母后返回SELECT LOWER('ZHANG you JUN');-- UPPER(column|str):将字符串参数值转换为全大写字母后返回SELECT UPPER('ZHANG you JUN');-- CONCAT(column|str1, column|str2,...):将多个字符串参数首尾相连-- 后返回(如果有任何参数为null,则函数返回null,数字将自动转化为字符串)SELECT CONCAT('zhang',' you',' jun');-- CONCAT_WS(separator,str1,str2,...):将多个字符串参数以给定的分隔符separator首尾相连后返回-- 也就是函数圆括号里的第一个项目用来指定分隔符-- 如果有任何参数为null,则函数不返回null,而是直接忽略它SELECT CONCAT_WS(';','zhang','wang','李','赵');-- SUBSTR(str,pos[,len]):从源字符串str中的指定位置pos开始取一个字串并返回-- ①len指定子串的长度,如果省略则一直取到字符串的末尾;len为负值表示从源字符串的尾部开始取起-- ②函数SUBSTR()是函数SUBSTRING()的同义词SELECT SUBSTRING('hello world',5);SELECT SUBSTR('hello world',5,3);SELECT SUBSTR('hello world',-5);-- LENGTH(str):返回字符串的存储长度SELECT LENGTH('text'),LENGTH('你好');-- 注意:编码方式不同字符串的存储长度就不一样(‘你好’:utf8是6,gbk是4)-- CHAR_LENGTH(str):返回字符串中的字符个数SELECT CHAR_LENGTH('text'),CHAR_LENGTH('你好');-- INSTR(str, substr):从源字符串str中返回子串substr第一次出现的位置SELECT INSTR('foobarbar','bar');-- LPAD(str, len, padstr):在源字符串的左边填充给定的字符padstr到指定的长度len,返回填充后的字符串SELECT LPAD('hi',5,'??');-- RPAD(str, len, padstr):在源字符串的右边填充给定的字符padstr到指定的长度len,返回填充后的字符串SELECT RPAD('hi',6,'??');-- TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str):-- 从源字符串str中去掉两端、前缀或后缀字符remstr并返回;-- 如果不指定remstr,则去掉str两端的空格;-- 不指定BOTH、LEADING、TRAILING ,则默认为 BOTHSELECT TRIM(' bar ');SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');-- 替换REPLACE(str, from_str, to_str):在源字符串str中查找所有的子串form_str(大小写敏感),-- 找到后使用替代字符串to_str替换它。返回替换后的字符串SELECT REPLACE('www.mysql.com','w','CC');-- REPEAT(str, count):将字符串str重复count次后返回SELECT REPEAT('MySQL',3);-- REVERSE(str):将字符串str反转后返回SELECT REVERSE('abcdef');-- $数学函数:-- ABS(X),绝对值函数,返回数字X的绝对值SELECT ABS(2),ABS(-2.2),ABS(-22);-- PI(),圆周率函数,返回圆周率SELECT PI();-- SQRT(X),平方根函数,返回数字X的平方根SELECT SQRT(9),SQRT(40.3),SQRT(-3);-- MOD(X,Y),求余函数,返回X % Y的值SELECT MOD(92,3),MOD(40,32),MOD(9.9,3);-- CEIL(X),CEILING(X),向上取整函数,获取比X大的最小整数SELECT CEIL(3.3),CEILING(-3.3);-- FLOOR(X),向下取整函数,获取比X小的最大整数SELECT FLOOR(4.6),FLOOR(-4.6);-- RAND([X]),随机数函数,在 0 - 1.0 产生一个随机浮点数,X值可选,同一X值产生的随机数是相同的SELECT RAND(),RAND(),RAND(1),RAND(1),RAND(5);-- ROUND(X,[Y]),四舍五入函数, 数字X四舍五入,保留Y位小数,Y值可选,不填写取整SELECT ROUND(10.5),ROUND(3.4),ROUND(3.141592654,2);-- TRUNCATE(X,Y),截取函数,截取数字X,保留Y位小数SELECT TRUNCATE(3.141592654,2),TRUNCATE(-3.141592654,2);-- ...等等-- $日期函数: -- 获取日期是本年的第几天, 值在1到366之间 SELECT DAYOFYEAR('1998-02-03'); -- 获取日期是本月的第几天, 值在1到31之间 SELECT DAYOFMONTH('1998-02-03'); -- 获取日期是本周的第几天, 值在1到7之间 SELECT DAYOFWEEK('1998-02-03'); -- 获取日期的星期索引 SELECT WEEKDAY('1999-03-16 13:23:00'); -- 获取日期的月份英文名 SELECT MONTHNAME('1998-02-09'); -- 获取日期是星期几 SELECT DAYNAME('1987-09-07'); -- 获取日期是本年的哪一季度,取值1到4 SELECT QUARTER('1999-09-03'); -- 将日期时间转换成对应的字符串(大小写) SELECT DATE_FORMAT(NOW(),'%Y%m%d'); SELECT DATE_FORMAT(NOW(),'%Y%m%d%H%I%S'); -- $字符串函数 -- LOWER(column|str):将字符串参数值转换为全小写字母后返回 SELECT LOWER('ZHANG you JUN'); -- UPPER(column|str):将字符串参数值转换为全大写字母后返回 SELECT UPPER('ZHANG you JUN'); -- CONCAT(column|str1, column|str2,...):将多个字符串参数首尾相连 -- 后返回(如果有任何参数为null,则函数返回null,数字将自动转化为字符串) SELECT CONCAT('zhang',' you',' jun'); -- CONCAT_WS(separator,str1,str2,...):将多个字符串参数以给定的分隔符separator首尾相连后返回 -- 也就是函数圆括号里的第一个项目用来指定分隔符 -- 如果有任何参数为null,则函数不返回null,而是直接忽略它 SELECT CONCAT_WS(';','zhang','wang','李','赵'); -- SUBSTR(str,pos[,len]):从源字符串str中的指定位置pos开始取一个字串并返回 -- ①len指定子串的长度,如果省略则一直取到字符串的末尾;len为负值表示从源字符串的尾部开始取起 -- ②函数SUBSTR()是函数SUBSTRING()的同义词 SELECT SUBSTRING('hello world',5); SELECT SUBSTR('hello world',5,3); SELECT SUBSTR('hello world',-5); -- LENGTH(str):返回字符串的存储长度 SELECT LENGTH('text'),LENGTH('你好'); -- 注意:编码方式不同字符串的存储长度就不一样(‘你好’:utf8是6,gbk是4) -- CHAR_LENGTH(str):返回字符串中的字符个数 SELECT CHAR_LENGTH('text'),CHAR_LENGTH('你好'); -- INSTR(str, substr):从源字符串str中返回子串substr第一次出现的位置 SELECT INSTR('foobarbar','bar'); -- LPAD(str, len, padstr):在源字符串的左边填充给定的字符padstr到指定的长度len,返回填充后的字符串 SELECT LPAD('hi',5,'??'); -- RPAD(str, len, padstr):在源字符串的右边填充给定的字符padstr到指定的长度len,返回填充后的字符串 SELECT RPAD('hi',6,'??'); -- TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str): -- 从源字符串str中去掉两端、前缀或后缀字符remstr并返回; -- 如果不指定remstr,则去掉str两端的空格; -- 不指定BOTH、LEADING、TRAILING ,则默认为 BOTH SELECT TRIM(' bar '); SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx'); SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz'); -- 替换REPLACE(str, from_str, to_str):在源字符串str中查找所有的子串form_str(大小写敏感), -- 找到后使用替代字符串to_str替换它。返回替换后的字符串 SELECT REPLACE('www.mysql.com','w','CC'); -- REPEAT(str, count):将字符串str重复count次后返回 SELECT REPEAT('MySQL',3); -- REVERSE(str):将字符串str反转后返回 SELECT REVERSE('abcdef'); -- $数学函数: -- ABS(X),绝对值函数,返回数字X的绝对值 SELECT ABS(2),ABS(-2.2),ABS(-22); -- PI(),圆周率函数,返回圆周率 SELECT PI(); -- SQRT(X),平方根函数,返回数字X的平方根 SELECT SQRT(9),SQRT(40.3),SQRT(-3); -- MOD(X,Y),求余函数,返回X % Y的值 SELECT MOD(92,3),MOD(40,32),MOD(9.9,3); -- CEIL(X),CEILING(X),向上取整函数,获取比X大的最小整数 SELECT CEIL(3.3),CEILING(-3.3); -- FLOOR(X),向下取整函数,获取比X小的最大整数 SELECT FLOOR(4.6),FLOOR(-4.6); -- RAND([X]),随机数函数,在 0 - 1.0 产生一个随机浮点数,X值可选,同一X值产生的随机数是相同的 SELECT RAND(),RAND(),RAND(1),RAND(1),RAND(5); -- ROUND(X,[Y]),四舍五入函数, 数字X四舍五入,保留Y位小数,Y值可选,不填写取整 SELECT ROUND(10.5),ROUND(3.4),ROUND(3.141592654,2); -- TRUNCATE(X,Y),截取函数,截取数字X,保留Y位小数 SELECT TRUNCATE(3.141592654,2),TRUNCATE(-3.141592654,2); -- ...等等-- $日期函数: -- 获取日期是本年的第几天, 值在1到366之间 SELECT DAYOFYEAR('1998-02-03'); -- 获取日期是本月的第几天, 值在1到31之间 SELECT DAYOFMONTH('1998-02-03'); -- 获取日期是本周的第几天, 值在1到7之间 SELECT DAYOFWEEK('1998-02-03'); -- 获取日期的星期索引 SELECT WEEKDAY('1999-03-16 13:23:00'); -- 获取日期的月份英文名 SELECT MONTHNAME('1998-02-09'); -- 获取日期是星期几 SELECT DAYNAME('1987-09-07'); -- 获取日期是本年的哪一季度,取值1到4 SELECT QUARTER('1999-09-03'); -- 将日期时间转换成对应的字符串(大小写) SELECT DATE_FORMAT(NOW(),'%Y%m%d'); SELECT DATE_FORMAT(NOW(),'%Y%m%d%H%I%S'); -- $字符串函数 -- LOWER(column|str):将字符串参数值转换为全小写字母后返回 SELECT LOWER('ZHANG you JUN'); -- UPPER(column|str):将字符串参数值转换为全大写字母后返回 SELECT UPPER('ZHANG you JUN'); -- CONCAT(column|str1, column|str2,...):将多个字符串参数首尾相连 -- 后返回(如果有任何参数为null,则函数返回null,数字将自动转化为字符串) SELECT CONCAT('zhang',' you',' jun'); -- CONCAT_WS(separator,str1,str2,...):将多个字符串参数以给定的分隔符separator首尾相连后返回 -- 也就是函数圆括号里的第一个项目用来指定分隔符 -- 如果有任何参数为null,则函数不返回null,而是直接忽略它 SELECT CONCAT_WS(';','zhang','wang','李','赵'); -- SUBSTR(str,pos[,len]):从源字符串str中的指定位置pos开始取一个字串并返回 -- ①len指定子串的长度,如果省略则一直取到字符串的末尾;len为负值表示从源字符串的尾部开始取起 -- ②函数SUBSTR()是函数SUBSTRING()的同义词 SELECT SUBSTRING('hello world',5); SELECT SUBSTR('hello world',5,3); SELECT SUBSTR('hello world',-5); -- LENGTH(str):返回字符串的存储长度 SELECT LENGTH('text'),LENGTH('你好'); -- 注意:编码方式不同字符串的存储长度就不一样(‘你好’:utf8是6,gbk是4) -- CHAR_LENGTH(str):返回字符串中的字符个数 SELECT CHAR_LENGTH('text'),CHAR_LENGTH('你好'); -- INSTR(str, substr):从源字符串str中返回子串substr第一次出现的位置 SELECT INSTR('foobarbar','bar'); -- LPAD(str, len, padstr):在源字符串的左边填充给定的字符padstr到指定的长度len,返回填充后的字符串 SELECT LPAD('hi',5,'??'); -- RPAD(str, len, padstr):在源字符串的右边填充给定的字符padstr到指定的长度len,返回填充后的字符串 SELECT RPAD('hi',6,'??'); -- TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str): -- 从源字符串str中去掉两端、前缀或后缀字符remstr并返回; -- 如果不指定remstr,则去掉str两端的空格; -- 不指定BOTH、LEADING、TRAILING ,则默认为 BOTH SELECT TRIM(' bar '); SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx'); SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz'); -- 替换REPLACE(str, from_str, to_str):在源字符串str中查找所有的子串form_str(大小写敏感), -- 找到后使用替代字符串to_str替换它。返回替换后的字符串 SELECT REPLACE('www.mysql.com','w','CC'); -- REPEAT(str, count):将字符串str重复count次后返回 SELECT REPEAT('MySQL',3); -- REVERSE(str):将字符串str反转后返回 SELECT REVERSE('abcdef'); -- $数学函数: -- ABS(X),绝对值函数,返回数字X的绝对值 SELECT ABS(2),ABS(-2.2),ABS(-22); -- PI(),圆周率函数,返回圆周率 SELECT PI(); -- SQRT(X),平方根函数,返回数字X的平方根 SELECT SQRT(9),SQRT(40.3),SQRT(-3); -- MOD(X,Y),求余函数,返回X % Y的值 SELECT MOD(92,3),MOD(40,32),MOD(9.9,3); -- CEIL(X),CEILING(X),向上取整函数,获取比X大的最小整数 SELECT CEIL(3.3),CEILING(-3.3); -- FLOOR(X),向下取整函数,获取比X小的最大整数 SELECT FLOOR(4.6),FLOOR(-4.6); -- RAND([X]),随机数函数,在 0 - 1.0 产生一个随机浮点数,X值可选,同一X值产生的随机数是相同的 SELECT RAND(),RAND(),RAND(1),RAND(1),RAND(5); -- ROUND(X,[Y]),四舍五入函数, 数字X四舍五入,保留Y位小数,Y值可选,不填写取整 SELECT ROUND(10.5),ROUND(3.4),ROUND(3.141592654,2); -- TRUNCATE(X,Y),截取函数,截取数字X,保留Y位小数 SELECT TRUNCATE(3.141592654,2),TRUNCATE(-3.141592654,2); -- ...等等
© 版权声明
1
本站网络名称:
明恒博客
2
本站永久网址:
www.zym88.cn
3 本站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
暂无评论内容