mysql select or用法,mysql数据库的查询(select)操作

一、 基本用法

select 查询字段 from 表名或视图名

where 条件

group by 分组

having 筛选

order by排序注意点 :

(1)可以使用as给查询出的字段取别名,as 也可以省略,但有些前台语言不能识别,所以最好还是需要加as,如果别名中含有一些特殊的字符要用引号或转义栝起来。

例: select name as 姓名 from students;(2) 可以使用concat函数对字符串(比如说字段名)进行拼接。

例:select name as 姓名, concat(age,’岁’) as 年龄 from students;(3)select可以将本不存在的值作为一列。

例:select name as 姓名, ’中国’ as 国家;(4)使用变量作为列名

select name as 学生姓名, score as 分数,

@grade:=(

Case

When score between 90 and 100 then ‘优秀’

When score between 80 and 90 then ‘良好’

end

)as 等级

from students;(5)sql中的!、||、&&可以使用and、or、not代替。

(6)可以使用limit查询指定的条数

limit(m,n):表示从第m个索引开始查询n个值。

(7)可以使用desc和asc进行排序,如果有两个相同的值,则按照主键进行排序,或者可以设置多个排序。

例: select age from students

where age=20

order by age asc,name desc;(8)使用聚合函数进行统计。

例:select sum(age) from students

二、select中的模糊查询

1.使用like进行字符串的模糊查询,通常会和通配符一起使用,或者和正则表达式一起使用。如果需要对文章等比较长的文本进行搜索,建议使用全文匹配。

(1)Like中有两种通配符,%和

,使用%来进行多个字符的匹配,使用进行一个字符的匹配。

2.使用betwwen…and来进行数值和日期之间的比较查询,功能是介于两种数据之间,可以使用Not 进行取反操作。

(1)Between a and b 等价于 a<=num<=b,其中a<=b

3.使用in来查询一个范围值里面的匹配,可以使用not进行取反。

三、分组查询

1.基本语法:group by 分组字段1,分组字段2…

(1)Group by 的原理类似于distinct(删除重复的字段)

例: Select distinct sex from students;

2.group by 后面存放select语句中所有的非聚合字段,并可出现select中没有的字段。

四、分组过滤

1.使用having语句实现分组后结果集的再次筛选,having出现在group by之后,没有group by就没有Having

2.where和having的区别:

(1)where出现在Group by之前而having出现在group by 之后

(2)where实现对表中行的过滤,group by实现对对象分组后结果集的过滤

五、select的基本语法和执行原理。

书写顺序是:select 、from、where、group by、having 、order by

执行顺序是:from、where、group by、having、order by、select

六、多表查询

1.关键点逻辑:主外键以及父表、子表的关系。

2.语法:

(1)使用where语句进行查询

select 字段

from 表1 (as xxx),表2(as xxx)...

where 父表的主键=子表的外键 and其他表的主键=子表的外键 and 其他条件

(2)使用join实现表的连接

select 字段

From 子表 join 父表 on 子表的外键=父表的主键

[join 表3 on 外键=主键];

注:使用where时的语法(效率没有join高,不建议使用)

3.join 连接有三种情况:内连接,外连接、自连接默认情况下为inner join。

(1)内连接取的是两张表之间的交集,在一定的条件下,外连接可以代替内连接,反之不可以。

例: select s.name ,c.name from

students s inner join classes c

on s.id = cid;

(2)外连接:外连接又分为三个部分,left join(左连接),right join(右连接),union或者full join(联合查询,mysql不支持full join):

left join(左连接):显示结果为两个结果的交集再加上左边表部分多出来的结果的值。

right join(右连接):显示结果为两个结果的交集再加上右边表部分多出来的结果的值。

union(联合查询):将多个查询的结果合并成一个结果集。

联合查询的例子:

Select 1 union select2 union select3

注意:查询结果的字段的个数和类型要匹配。

(3)自连接:对表的自身进行连接

例:用stop字段来对route(公交线路表)进行自连接, 查询的结果就是共用同一车站的所有公交线。

SELECT * FROM route R1, route R2

WHERE R1.stop=R2.stop;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库中,SELECT是用于从一个或多个表中检索数据的关键字。SELECT查询表达式的基本语法如下: ```sql SELECT column1, column2, ... FROM table_name WHERE condition; ``` 其中,column1、column2等为要检索的列名,可以使用通配符*代替所有列。table_name为要检索的表名,condition为可选的筛选条件。 在SELECT查询表达式中,可以使用多种表达式来生成结果集。以下是一些常用的SELECT表达式: 1. 聚合函数:用于对结果集进行统计计算,例如SUM、COUNT、AVG、MAX、MIN等。 ```sql SELECT SUM(column_name) FROM table_name; ``` 2. 别名:用于为查询结果中的列或表指定别名,以便更好的阅读和理解查询结果。 ```sql SELECT column_name AS alias_name FROM table_name; ``` 3. 子查询:嵌套在SELECT语句中的查询语句,用于从子查询中获取数据,然后在主查询中使用它。 ```sql SELECT column_name FROM table_name WHERE column_name IN (SELECT column_name FROM table_name WHERE condition); ``` 4. 连接:用于将两个或多个表中的数据合并到一个结果集中,包括INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN等。 ```sql SELECT column_name FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; ``` 5. 字符串函数:用于处理字符串数据,例如CONCAT、LENGTH、SUBSTRING、UPPER、LOWER等。 ```sql SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM table_name; ``` 6. 条件表达式:用于根据条件过滤结果集,例如IF、CASE等。 ```sql SELECT column_name, IF(column_name > 10, '大于10', '小于等于10') AS result FROM table_name; ``` 以上是MySQL数据库中常用的SELECT查询表达式,可以根据实际需求选择使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值