MySQL学习Day04——基本查询

MySQL数据库基本操作DQL-基本查询

数据库管理系统的一个重要功能就是数据查询,数据查询不应只是简单的返回数据库中存储的数据,还应该根据需要对数据进行筛选以及确定数据以什么样的格式显示。MySQL提供了功能强大、灵活的语句来实现这些操作。MySQL数据库使用select语句来查询数据

一、最基本的SELECT语句:

SELECT 1+1;

二、SELECT的基本格式:

select
    [all|distinct]
    <目标列的表达式1>[别名],
    <目标列的表达式2>[别名]...
from <表名或视图名> [别名],<表名或视图名>[别名]...
[where<条件表达式>]
[group by<列名> 
[having <条件表达式>]]
[order by<列名> [asc|desc]]
[limit <数字或者列表>];

简化版

select *| 列名 from 表 where 条件

三、给列起别名的作用:

1.重命名一个列

2.便于计算

3.列的别名在格式上紧跟列名,也可以在列名和别名之间加入关键字AS,别名使用双引号,以便在别名中包含空格或者特殊的字符并区分大小写。

4.AS可以省略

5.建议别名简短,并起到见名知意的效果

四、去除重复行:

DISTINCT 列名

着重号``:将列名、表名和MySQL中的关键字区分开

五、显示表结构:

DESCRIBE/DESC table_name;显示表中字段的详细信息

过滤数据WHERE,声明在FROM结构的后面

六、运算符:

数据库中的表结构确立后,表中数据代表的意义就已经确定。通过MySQL运算符进行运算,就可以获取到表结构以外的另一种数据,MySQL支持如下的4种运算符:

1.算数运算符

(1)+:加法运算,没有连接的作用,就表示加法运算。一个整数类型的值对整数进行加法操作,结果还为一个整数,一个整数类型的值对浮点数进行加法操作,结果是一个浮点数。在运算时会将全是数字的字符串转化为数值类型(隐式转换),如果参与运算的字符串中有其他非数字字母则将其转换为0。只要有一个NULL值参与运算的结果为NULL。

(2)-:减法运算,同加法运算

(3)*:乘法运算,整数和整数返回整数,整数和浮点数返回浮点数

(4)./或div:除法运算,返回商,结果不论整数和整数还是浮点数和整数返回结果都是浮点型,除数为0结果返回NULL

(5).%或mod:求余运算,返回余数,结果的符号和被模数的符号一致,按照绝对值计算

2.比较运算符:

比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较的结果为真则返回1,比较的结果为假则返回0,其他情况则返回NULL.比较运算符常用来作为SELECT查询语句的条件来使用,返回符合条件的结果记录。常用的比较运算符如下:

(1).=:等于,判断两个值、字符串或者表达式是否相等,两边都是字符串的话按照ASCII码进行比较,只要有NULL参与比较判断则结果返回NULL

(2).<和<=:小于和小于等于,只要有NULL参与比较判断则结果返回NULL

(3).>和>=:大于和大于等于,只要有NULL参与比较判断则结果返回NULL

(4).<=>:安全等于,两个操作码均为NULL时,其所得值为1,而当一个操作码为NULL时,其所得值为0

(5).<>或!=:不等于,只要有NULL参与比较判断则结果返回NULL

(6).IS NULL或ISNULL(列名):判断一个值、字符串或者表达式是否为NULL

(7).IS NOT NULL:判断一个值、字符串或者表达式是否不为NULL

(8).LEAST(value1,value2,...valuen):当有两个或多个参数时,返回最小值

(9).GREAST(value1,value2,...valuen):当有两个或多个参数时,返回最大值

(10).BETWEEN value1 AND value2:判断一个值是否落在两个值之间

(11).IN(value1,value2,...valuen):判断一个值是IN列表中的任意一个值

(12).NOT IN(value1,value2,...valuen):判断一个值不是IN列表中的任意一个值

(13).LIKE:模糊查询,通配符匹配 ,百分号(%)用于匹配任意长度字符,一个下划线(_)用于匹配单个任意的字符

(14).expr REGEXP,RLIKE 匹配条件:正则表达式匹配,判断一个值是否符合正则表达式的规则,如果expr满足匹配条件,则返回1,如果不满足,则返回0,若干expr或匹配条件的任意一个为NULL,则返回结果为NULL

3.逻辑运算符:

用来判断表达式的真假,结果返回为1、0或者NULL

(1).NOT 或者!:逻辑非,运算符表示当给定的值为0时返回1,当给定的值为非0时返回0

(2).AND 或者 &&:逻辑与,当给定的值都不为NULL,并且任何一个值为0时返回0,否则返回1,当一个值为NULL并且另一个值为0时,返回0,否则返回NULL,当两个值都为NULL时返回NULL.

(3).OR 或者||:逻辑或,当给定的值都不为NULL,并且任何一个值为非0值时返回1,否则返回0,当一个值为NULL并且另一个值为非0值时,返回1,否则返回NULL,当两个值都为NULL时返回NULL.

(4).XOR:逻辑异或,运算符是当给定的值中任意一个值为NULL时返回NULL,如果两个非NULL的值都是0或者都不等于0时,则返回0,如果一个值为0,另一个值不为0时返回1

OR和AND可以使用,但是AND的优先级高于OR

4.位运算符:

在二进制数上进行计算的运算符,会先将操作数变成二进制数,然后进行位运算,最后将计算结果从二进制变回十进制数。

(1).|:按位或,将给定的值对应的二进制位数逐位进行逻辑或运算,当给定值对应的二进制位的数值都为0时,则该位返回0,否则返回1。

(2).&:按位与,将给定的值对应的二进制位数逐位进行逻辑与运算,当给定值对应的二进制位的数值都为1时,则该位返回1,否则返回0。

(3).^:按位异或,将给定的值对应的二进制位数逐位进行逻辑异或运算,当给定值对应的二进制位的数值都为1或都为0时,则该位返回0,否则返回1。

(4).<<:按位左移

(5).>>:按位右移

(6).~:按位取反,反转所有比特,即将0转化为1,1转化为0

七、排序查询:

对读取的数据进行排序,可以使用MySQL的order by字句指定按照哪个字段的哪种方式来进行排序,再返回搜索结果。列的别名只能在ORDER BY中使用,而不能在WHERE条件中使用.ORDER BY在SELECT语句的末尾。

ORDER BY 格式:

ORDER BY 字段名1 asc|desc,...,字段名n asc|desc;

排序语句特点:

1.asc代表升序,desc代表降序,不写默认为升序ASC

2.order by用于子句中可以支持单个字段,多个字段,表达式,函数和别名

3.order by字句放在查询语句的最后面,limit字句除外

八、聚合查询:

常见的聚合函数及其作用:

1.COUNT():统计指定列不为NULL的记录行数

2.SUM():计算指定列的最大值,如果指定的列不是数值类型,那么计算结果返回0

3.AVG():计算指定列的平均值,如果指定的列不是数值类型,那么计算结果返回0

4.MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算

5.MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算

聚合查询对NULL值的处理:

1.COUNT函数:如果COUNT函数的参数为*,那么统计所有记录的个数,而如果参数为某个字段,则不统计含有null值的记录个数

2.SUM,AVG函数:忽略null值的存在

3.MAX和MIN函数:同样忽略null值的存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值