MySQL学习笔记(二)
学习前准备好三个表的员工,部门,项目。
Empoyee
ID(主键) |
名称 |
年龄 |
001 |
汤姆 |
25 |
002 |
插口 |
18 |
003 |
露西 |
33 |
111 |
结婚 |
15 |
110 |
詹姆士 |
21 |
部
元研究(外键) |
销售(外键) |
001 |
111 |
002 |
110 |
003 |
|
项目
ID(外键) |
IOS(默认为0) |
QT(默认为0) |
001 |
2 |
3 |
002 |
3 |
0 |
003 |
1 |
2 |
111 |
0 |
五 |
110 |
3 |
1 |
一,选择语句的使用
1.1选择语句的基本格式为:select 要查询的列名... from 表名 +限制条件(=,<,<=,>,> =);
当我们要查看表中所有数据时将要查询列名部分改为*即可
当加上限制条件年龄> 18时可根据设置条件挑选表中数据
1.2“和”与“或”(放在其中后面使用):和表示并且,或者表示或可把和理解为C ++里的&&,或理解为C ++的||
格式:select 列名 from 表名 where 条件1 and/or 条件2;
#挑选出年大于等于18并且id等于3的数据
#挑选出年小于18岁,或年龄大于25的数据
1.3 in和not in(放在哪里后面使用):用于筛选数据表中“在”或“不在”某个范围内的数据。
格式:select 列名,... from 表名 where 列名 in/not in(范围1,范围2,......);
1.4通配符(放在哪里后面使用):Key(关键):无论什么类型喜欢后面一定要加' '
格式:select 列名,... from 表名 where 列名 like '11 _'//查找11开头的数据
未知字符有俩个,分别是_和%,通常与像搭配使用,_表示一位未知字符,%表示n位未知字符。
比如,要只记得id第一位数为1,而后俩位忘记了,则可以用两个_通配符代替:
另一种情况,比如只记名字的首字母,又不知道名字长度,则用%通配符代替不定个字符:
从员工中选择*,其中名称为'j%';
这样就查找出了首字母为j的人:
1.5对结果排序(order by):将数据表中的数据根据某一列来排序,默认为升序(asc),可设置为降序(desc);
一般放在哪里条件的后面,对查询后的结果进行分组。
格式:select 列名,... from 表名 order by 列名 asc / desc
二,选择里的五个查询函数
格式:select max(列名)as 自定义列别名,min(列名)from 表名;
SQL允许对表中的数据进行计算的.sql有5个内置函数,这些函数都对选择的结果做操作:
函数名:count sum avg max min
作用:计数求和求平均值最大值最小值
计函数可用于任何数据类型(因为它只是计数),求和,平均函数只能对数字类数据类型做计算,最大和最小可用于数值,字符串或是日期时间数据类型。
有一个细节你或许注意到了,使用作为关键词可以给显示的列重命名
三,俩张表或俩张表以上的数据操作
3.1子查询:上面的选择语句都仅涉及一个表中的数据,然而有时必须处理多个表才能获得所需的信息。
例如:想要知道名为“汤姆”的员工参与几个工程员工信息储存在员工表中,但工程信息储存在项目表中。
对于这样的情况,我们可以用子查询:
select id,qt from project where id in(select id from employee where name=‘Tom’);
子查询还可以扩展到3层,4层或更多层。
3.2连接查询:在处理多个表时,子查询只有在结果来自一个表时才有用但如果需要显示两个表或多个表中的数据,这时就必须使用连接操作。
连接的基本思想是把两个或多个表当作一个新的表来操作,如下:
select employee.id,name,ios from employee,project where employee.id = project.id order by id;
这条语句查询出的是,各员工的工程数目,其中员工的ID和名称来自员工表,IOS来自项目表:
相关章节:
(一)https://blog.csdn.net/qq_38487155/article/details/79475851
(三)https://blog.csdn.net/qq_38487155/article/details/79508140
(四)https://blog.csdn.net/qq_38487155/article/details/79516314