检索不同的行:
select distinct name from 表名;
限制结果LIMIT
select * from stu limit 3,4;#跳过结果的前3行后,取4行 #替代语法: select * from stu limit 4 offset 3;
order by进行的排序默认是升序,降序排列的话需要通过desc关键字进行限制;
注意:当同一条SQL语句中同时使用limit和order by时,limit应该放在后面;
在同时使用order by和where子句的时候,应该让order by位于where子句后面;
在使用between and的时候,是指的>=且<=
通过where判断空值的时候用 is NULL
SQL在处理or操作前,会优先处理and操作符;
小技巧:在进行MySQL查询的时候,可以将问题进行拆分,更有助于理清思路和解决问题;
in子句可以用来代替or语句
select age from stu where age in(11,12);
like要搭配通配符进行使用,通常有两种: % and _
其中,% 是匹配不确定的长度,而_是匹配一个长度的字符;
select name from stu where name like "a%"; #以a开头的名字均符合 select name from stu where name like "a__"; #以a开头且长度为3的名字才符合
在使用通配符的时候要注意:通配符的效率比一般的查询要低,并且%用在开头的时候,效率非常低,尽量要进行避免;
SQL允许创建子查询,即嵌套在其他查询中的查询;
SQL最强大的功能之一就是可以在数据检索查询执行中连接(join)表;
在有效使用连接前,必须了解关系表以及关系数据库设计的基础知识如下:
关系表(表关系):指的就是表与表之间的关系;
在一个表中,定义一个字段,这个字段中存储的数据是另外一个表中的主键;
就是在一个表中的字段,代表着这个数据属于谁;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lYzU4LHf-1631240798863)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\1625135851207.png)]
外键实现的方式有两种:物理和逻辑外键;
物理外键:
在创建表时,指定这个表中的字段是一个外键,且强关联某个表中的某个字段
需要在定义字段是,使用SQL语句来实现
逻辑外键:
在表中创建一个普通的字段,没有强关联关系,需要通过程序逻辑来进行实现
在一个表中的一条数据对应这另一个表中的多条数据;
注:一对多这种关系是实际应用中最多的一种关系;
例如一本书,有多个标签,同时,每一个标签下又对应着多本书;
计算机中的思想来源于实际的生活和社会;