mysql基本命令

mysql基本命令

当前文章收录状态:
未收录
-- 数据库(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到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两端的空格;
-- 不指定BOTHLEADINGTRAILING ,则默认为 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到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); -- ...等等
© 版权声明
THE END
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=270198dipw4ko
点赞9赞赏 分享
You can't wait forever. Do something and make it happen.
你不可能永远等下去,去做点儿什么,让一切成真
评论 抢沙发

请登录后发表评论

    暂无评论内容