sql语句+mysql权限

sql语句

1.新增 

 

2.删除

3.修改

4.查询

单表查询

select  字段名列表  from 表名,索引

聚合函数

只有 select ⼦句和 having ⼦句、order by ⼦句中能使⽤聚合函 数,where ⼦句不能使⽤聚合函数。当使⽤聚合查询以后,不能 使⽤where条件,如果要添加条件,就使⽤having

统计表中数据的数或者统计指定列不为空值的数据⾏个数

select  count(*或表头名)  from  表名;

计算指定列的最⼤值,如果指定列是字符串类型(⽂字类型)则使⽤字符⾸拼排序

select max(表头名)  from 表名;

计算指定列的最⼩值,如果指定列是字符串类型(⽂字类型)则使⽤字符⾸拼排序

select min(表头名)  from 表名;

计算指定列的数值和,如果指定列不是数值类型则计算结果为 0

select sum(表头名)  from 表名;

计算指定列的平均值,如果指定列不是数值类型则计算结果为 0
select avg(表头名)  from 表名;

日期函数

获取当前⽇期和时间
select now();
显示输⼊⽇期的年份
select year('date');
计算输⼊的⽇期到年初的周数
select weekofyear ('date');
计算输⼊的⽇期到年初的天数
select dayofyear ('date');
显示输⼊⽇期的⽉份值
select month('date');
显示输⼊⽇期是⼏号
select day('date');

显示输⼊⽇期是⼀周中的第⼏天 (从周⽇开始)
select dayofweek('date');

mysql> select dayofweek('2024-8-7');
+-----------------------+
| dayofweek('2024-8-7') |
+-----------------------+
|                     4 |                     注:表示星期三
+-----------------------+

 

显示输⼊⽇期的⽉份的最后⼀天
select last_day('date');

mysql> select last_day('2024-8-7');
+----------------------+
| last_day('2024-8-7') |
+----------------------+
| 2024-08-31           |
+----------------------+
1 row in set (0.00 sec)

 

显示输⼊⽇期加多少天的结果
select adddate(current_date,需要加的天数);

mysql> select adddate('2024-8-7',3);
+-----------------------+
| adddate('2024-8-7',3) |
+-----------------------+
| 2024-08-10            |
+-----------------------+
1 row in set (0.00 sec)

 

显示输⼊⽇期减多少天的结果
select subdate(current_date,需要减的天数);

显示两个⽇期中间隔了多少天
select datediff ('date1','date2');

显示输⼊时间已经过了多少⼩时
select hour('time');
mysql> select hour('14:22:0');
+-----------------+
| hour('14:22:0') |
+-----------------+
|              14 |
+-----------------+
1 row in set (0.00 sec)

 

显示输⼊时间已经过了多少分钟
select minute('time');(time 为时间标准格式)
显示过了多少秒
select second('time');(time 为时间标准格式)
显示输⼊⽇期时间的时间值
select time('datetime');(datetime:标准⽇期格式)
显示输⼊⽇期
select date('datetime');

数字函数

显示带⼩数点数字的四舍五⼊的整数值或输⼊⼀个结果带⼩数点的算式

round() :四舍五入

显示⼤于输⼊数字的最⼩整数值或输⼊⼀个算式

ceiling() :向上取整

显示⼩于输⼊数字的最⼤整数值或输⼊⼀个算式

floor() :向下取整

保留多少位⼩数
select truncate(带⼩数点的数字,保留的位数);

mysql分组查询

select 聚合函数(表头名 1),表头名 2 from 数据表名 group by 表头名;
select 聚合函数(表头名) 临时表头名,真实表头名 from 数据表名 group by 真实表头名;

若⽤ group by 分组查询语句,必须加⼊聚合函数,否则报错

mysql子语句查询

⼦查询是指⼀个查询语句嵌套在另⼀个查询语句内部的查询;
该查询语句可以嵌套在⼀个 SELECT、SELECT...INTO、 INSERT...INTO 等语句中
在执⾏查询时,⾸先会执⾏⼦查询中的语句,再将返回的结果作为外层查询的过滤条件。
在⼦查询中通常可以使⽤⽐较运算符和 IN、EXISTS、ANY、 ALL 等关键字

比较运算符的子查询:

也就是⽤“=”、“<”、“>”这类⽐较运算符

exists关键字的子查询:

exists 关键字后⾯的参数可以是任意⼀个⼦查询, 它不产⽣任 何数据只返回 true 或 false。⽽当返回值为 true 时外层查询才会 执⾏。

相当于内层句⼦是⼀个判断句式

mysql多表联合查询

1、交叉连接查询
交叉连接返回的结果是被连接的两个表中所有数据⾏的笛卡尔
积;

select * from 表1 cross join 表2;

2、多表联合查询

语法:select 查询字段1,查询字段2, ... from 表1 join 表2 join ... on 表1.关系字段=表2.关系字段=...;
join:联合
on:条件

mysql基础权限

权限语法:

为客户机授权:

grant all on 库.* to户@客户机地址 identified by '密 码';all:表示所有权限,可替换为其他权限库.*:表示某个数 据库下所有数据表户@客户机地址:表示希望给予哪个户权限,前⾯的⽤户是临时⾃建⽤户,当客户机登录时,⽤户登录'密码'临时户的密码,也是临时⾃写的

查看给予客户机的权限:

show grants for ⽤户@客户机地址
取消权限:

revoke 权限列表 on 库.* from ⽤户@客户机地址;

刷新权限:

flush privileges;(重新加载权限表)
删除临时用户:

drop user '⽤户名'@'客户机地址';

客户机地址可以有以下表现形式:
%:表示所有地址
192.168.33.%:表示 33 ⽹段下所有主机,⼀般为你想为哪个⽹段授权,或为⾃⼰⽹段下的主机授权

查询有几条数据:

mysql> select count(*) from user;
+----------+
| count(*) |
+----------+
|        4 |
+----------+
1 row in set (0.01 sec)

mysql> select count(1) from user;
+----------+
| count(1) |
+----------+
|        4 |
+----------+
1 row in set (0.00 sec)

 

别名:

mysql> select id as 编号 from user;
+--------+
| 编号   |
+--------+
|      1 |
|      2 |
|      3 |
|      4 |
+--------+

 

mysql> select * from (select * from product order by qty)as a order by a.price;
+----+-----------+-------+-----+
| id | name      | price | qty |
+----+-----------+-------+-----+
|  1 | 香蕉      |   8.5 | 200 |
|  3 | 菠萝      |  12.4 |  70 |
|  2 | 苹果      |  12.5 | 400 |
|  4 | 哈密瓜    |  18.3 | 400 |
+----+-----------+-------+-----+
4 rows in set (0.00 sec)

 

mysql> select *,price*qty as tt from product;
+----+-----------+-------+-----+-------------------+
| id | name      | price | qty | tt                |
+----+-----------+-------+-----+-------------------+
|  1 | 香蕉      |   8.5 | 200 |              1700 |
|  2 | 苹果      |  12.5 | 400 |              5000 |
|  3 | 菠萝      |  12.4 |  70 | 867.9999732971191 |
|  4 | 哈密瓜    |  18.3 | 400 | 7319.999694824219 |
+----+-----------+-------+-----+-------------------+
4 rows in set (0.01 sec)

mysql> select sum(tt) from (select *,price*qty as tt from product) as a;

+--------------------+
| sum(tt)            |
+--------------------+
| 14887.999668121338 |
+--------------------+
1 row in set (0.00 sec)

 

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值