MySQL学习笔记(2)

学习前准备好三个表的员工,部门,项目。

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选择语句的基本格式为:s elect要查询的列名,...来自表名列表+限制条件(=,<,<=,>,> =);

 当我们要查看表中所有数据时将要查询列名部分改为*即可


 


当加上限制条件年龄> 18时可根据设置条件挑选表中数据


1.2“和”与“或”(放在其中后面使用):和表示并且,或者表示或可把和理解为C ++里的&&,或理解为C ++的||

格式:从表名字中选择要查询的列名,...条件1和/或条件2;

#挑选出年大于等于18并且id等于3的数据

#挑选出年小于18岁,或年龄大于25的数据


1.3 in和not in(放在哪里后面使用):用于筛选数据表中“在”或“不在”某个范围内的数据。

格式:选择要查询的列名,...从表名字所在列名在/不在(范围1,范围2,......);


1.4未知字符(放在哪里后面使用):Key(关键):无论什么类型喜欢后面一定要加''

格式:从表名字中选择要查询的列名,...列名像'11 _'//查找11开头的数据

未知字符有俩个,分别是_和%,通常与像搭配使用,_表示一位未知字符,%表示ñ位未知字符。

比如,要只记得id第一位数为1,而后俩位忘记了,则可以用两个_通配符代替:


 

另一种情况,比如只记名字的首字母,又不知道名字长度,则用%通配符代替不定个字符:

 从员工中选择*,其中名称为'j%';

这样就查找出了首字母为j的人:

 

1.5对结果排序(order by):将数据表中的数据根据​​某一列来排序,默认为升序(asc),可设置为降序(desc);

一般放在哪里条件的后面,由前面分组。

格式:选择要查询的列名,...从表名字顺序由列名asc / desc


 

二,选择里的五个查询函数

格式:选择最大(列名)作为显示的列表列名,分钟(列名)从表名;

SQL允许对表中的数据进行计算的.sql有5个内置函数,这些函数都对选择的结果做操作:

函数名:count sum avg max min

作用:计数求和求平均值最大值最小值

计函数可用于任何数据类型(因为它只是计数),求和,平均函数只能对数字类数据类型做计算,最大和最小可用于数值,字符串或是日期时间数据类型。


有一个细节你或许注意到了,使用作为关键词可以给显示的列重命名


三,俩张表或俩张表以上的数据操作

3.1子查询:上面的选择语句都仅涉及一个表中的数据,然而有时必须处理多个表才能获得所需的信息。

例如:想要知道名为“汤姆”的员工参与几个工程员工信息储存在员工表中,但工程信息储存在项目表中。

对于这样的情况,我们可以用子查询:

 从项目中选择id,qt,其中id为(从员工中选择id,其中name ='Tom');


子查询还可以扩展到3层,4层或更多层。

3.2连接查询:在处理多个表时,子查询只有在结果来自一个表时才有用但如果需要显示两个表或多个表中的数据,这时就必须使用连接操作。

连接的基本思想是把两个或多个表当作一个新的表来操作,如下:

选择employee.id,name,ios from employee,project where employee.id = project.id order by id;

这条语句查询出的是,各员工的工程数目,其中员工的ID和名称来自员工表,IOS来自项目表:

 

猜你喜欢

转载自blog.csdn.net/qq_38487155/article/details/79488478