目录
1 insert语句
1.1 一次插入一条
1.2 一次插入多条
2 replace语句
3 updata语句
4 truncate语句
eg1:truncate
eg2:delete
5 select语句
5.1 直接查询
5.2 select 语句中的算术表达式
5.3 给select出来的列名设置别名
5.4 select时可以使用distinct来去重
5.5 带有判断的查询
#desc为降序 asc为升序
5.6 聚合函数对一组值进行运算,并返回单个值。也叫组合函数。
5.7 使用concat修改输出内容样式
5.8 select查询中 if case
5.9 group by 和 having用法
①group by
②having 子句
#HAVING与WHERE的区别:
5.10 联合查询
5.11 查询结果限定
6 多表查询
6.1 inner join
6.2 left join
6.3 right join
7 子查询
方法一:
insert 表名 values ('***','***',……)
eg:
mysql> insert student values(100,'白熊');
Query OK, 1 row affected (0.00 sec)方法二:
insert 表名(列) values('***')
eg:
mysql> insert student(name) values('胖达');
Query OK, 1 row affected (0.00 sec)
方法三:
insert 表名 set 列名='***';
eg:
mysql> insert student set name='小白';
Query OK, 1 row affected (0.00 sec)
方法一:
insert 表名 values('***','***',……),('***','***',……),('***','***',……),……方法二:
insert 表名(列名) values('***'),('***'),('***'),……
eg:
mysql> insert student(name) values('棕熊'),('查理'),('克洛伊');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
可以修改一个或多个
replace 表名 values ('***','***','***',……)eg1修改一个:
mysql> replace student values('101','小胖');
Query OK, 2 rows affected (0.00 sec)
eg2修改多个:
mysql> replace student values ('103','胖达'),('105','查理');
Query OK, 4 rows affected (0.00 sec)
Records: 2 Duplicates: 2 Warnings: 0
update 表名 set 列名1=*** where 列名2=***;
/*前一个列名可以和后一个列名相同*/mysql> update student set sno=200 where name='查理';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0mysql> update student set sno=201 where sno=104;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
清空整个表
truncate table 表名;
delete from 表名;
使用delete删除某条或某几条
delete from 表名 where 判断条件;
select * from 表名;select 列名1,列名2,…… from 表名;
先算乘除、后算加减、同级从左到右依次计算。
select 列名(/进行计算),列名(/进行计算),…… from 表名
eg:
mysql> select weig '体重',age '年龄' from test;
+--------+--------+
| 体重 | 年龄 |
+--------+--------+
| 80.0 | 10 |
| 75.0 | 10 |
+--------+--------+
2 rows in set (0.00 sec)
示例如下
select 列名1,列名2,…… from 表名 (where 判断条件) (order by 列名 排序方式)
eg:
mysql> select distinct * from ruler order by length desc;
+--------+
| length |
+--------+
| 1000 |
| 222 |
| 101 |
| 100 |
| 20 |
+--------+
5 rows in set (0.01 sec)
COUNT(*|列名) 统计行数
AVG(数值类型列名) 平均值
SUM (数值类型列名) 求和
MAX(列名) 最大值
MIN(列名) 最小值
除了COUNT()以外,聚合函数都会忽略NULL值。
eg:
mysql> select avg(length),max(length),min(length),count(length),sum(length) from ruler;
+-------------+-------------+-------------+---------------+-------------+
| avg(length) | max(length) | min(length) | count(length) | sum(length) |
+-------------+-------------+-------------+---------------+-------------+
| 223.2857 | 1000 | 20 | 7 | 1563 |
+-------------+-------------+-------------+---------------+-------------+
1 row in set (0.00 sec)
mysql> select concat('<体重',weight,'>') as '体重' from test2;
+--------------+
| 体重 |
+--------------+
| <体重50.0> |
| <体重53.0> |
| <体重55.0> |
| <体重60.0> |
+--------------+
IF 判断,流程控制
IFNULL 判断是否为空
CASE 搜索语句
示例如下
group by 子句的真正作用在于与各种聚合函数配合使用。它用来对查询出来的数据进行分组。
eg:如下是按照num分组,得出不同num的人数。
eg:如下是相同num有哪些人
用来对分组后的结果再进行条件过滤
eg:如下是相同num有哪些人且人数大于2
eg:如下是num相同且人数小于2按人数降序排列
WHERE是在分组前进行条件过滤, HAVING子句是在分组后进行条件过滤,WHERE子句中不能使用聚合函数, HAVING子句可以使用聚合函数。
UNION 去重复
UNION ALL 不去重复
limit x————/*检索前x个记录*/
limit x,y————/*检索从x+1开始y个记录*/
SELECT 列名1,列名2... FROM 表1 INNER JOIN 表2 ON 表1.外键=表2.主键 WhERE 条件语句;
方法一
mysql> select e.name,d.depName from Employee e,department d where e.depno=d.depno;
方法二:
mysql> select e.name,d.depName from Employee e inner join department d on e.depno=d.depno;
SELECT 列名1 FROM 表1 LEFT OUTER JOIN 表2 ON 表1.外键=表2.主键 WhERE 条件语句;
SELECT 列名1 FROM 表1 RIGHT OUTER JOIN 表2 ON 表1.外键=表2.主键 WhERE 条件语句;
子查询是将一个查询语句嵌套在另一个查询语句中。内部嵌套其他select语句的查询,称为外查询或主查询。
eg:比如这里要查询zip数值最大的员工的所有信息可以使用嵌套。
本文发布于:2024-01-29 07:27:21,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170648444613673.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |