mysql之数据库操作进阶(三)
环境信息
数据库:mysql-5.7.20
操作系统:Ubuntu-16.04.3
查询
条件查询
# 使用where关键字
select * from 表名 where 条件
# 比较运算符
>,>=,<,<=,!=,=,<>
# 逻辑运算符
or,and,not
# 模糊查询like
select * from 表名 where name like '%' # %代表任意多个字符
select * from 表名 where name like 'T_' # _代表任意一个字符
# 范围查询
select * from 表名 where id in(1,2,3) # in在一个非连续的范围内
select * from 表名 where id between 1 and 3 # between ... and ... 在一个连续的范围内,全闭区间;
# 判空
select * from 表名 where name is null # 没有填写
select * from 表名 where name is not null # 判断非空
- 注意
运算的优先级由高到低的顺序为小括号,not,比较运算符,逻辑运算符
分组
# 关键字group by
select age,count(*) from 表名 group by age # 通过年龄分组
# 关键字having,后面的条件和where一样
select age,count(*) from 表名 group by age having age>20 # 通过年龄分组,然后对分组后的结果进行筛选
分页
# 关键字limit
select * from 表名 limit start,count
# start 索引从0开始,得到count条数据,其按默认的id排序
排序
# 关键字order by
# asc 按从小到大排序
# desc 按从大到小排序
# 规则为先按列1排序,如果有相同的按列2排序,否则按默认
select * from 表名 order by 列1 asc|desc,列2 asc|desc;
常用聚合函数
说明:聚合函数不能加载where的后面
count(*):求列的总数;当count()内的字段一定没有null值时,统计的是列表的行数;如果有null值,统计的是该字段非null的个数;
select count(name) from 表名 where age > 20;
max(age):求该列的最大值,指定列名,忽略NULL值;对于非数字,得到的是通过该列名排序后的最后一个
select max(age) from 表名 where age > 20;
min(age):求该列的最小值,指定列名,忽略NULL值,对于非数字,得到的是通过该列名排序后的第一个
select min(age) from 表名;
sum(age):该列之和,指定列名,忽略NULL值;如果指定的列不是可运算的值,结果为0
select sum(age) from 表名;
avg(name):求列的平均值,对于非数字结果为0;
select avg(age) from 表名;
连接查询
# 当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回
# 内连接inner join
# 左连接left join
# 右连接right join
select * from 表1 inner或left或right join 表2 on 表1.列=表2.列
自关联
# 表中的某一列,关联了这个表中的另外一列
# 采用的依然是连接查询的方式;
子查询
# 标量子查询
# 列级子查询
# 行级字查询
# 表级字查询
格式:select * from 表名 where 条件+(子查询)
关键字:
in:在范围内;
any:任何一个;
all:等于所有;
mysql之数据库操作进阶(三)的更多相关文章
- python对mysql数据库操作的三种不同方式
首先要说一下,在这个暑期如果没有什么特殊情况,我打算用python尝试写一个考试系统,希望能在下学期的python课程实际使用,并且尽量在此之前把用到的相关技术都以分篇博客的方式分享出来,有想要交流的 ...
- Mysql 常用数据库操作
一.数据库操作: 1.查看数据库: >SHOW DATABASES; 2.创建数据库: >CREATE DATABASE db_name; //db_name为数据库名 3.使用数据库: ...
- Mysql之数据库操作
数据库操作: 链接数据库: mysql -uroot -p masql -uroot -pmysql 退出数据库: exit/quit/ctrl + d sql语句最后需要分号结尾: 查看时间: ...
- 自己封装的ASP.NET的MYSQL的数据库操作类
/** * 作者:牛腩 * 创建时间:2010年3月7日17时35分 * 类说明:对MYSQL数据库的操作类 */ using System; using System.Data; using MyS ...
- 学习MySQL之数据库操作(一)
所有代码,均为自学时用到的测试与注释,知识细节或知识点不会面面俱到,亦不会有任何讲解,只做为自己学习复习用. ##数据库操作 ##创建数据库 myTest ,并将数据库字符集设为GBK CREATE ...
- mysql 对数据库操作的常用sql语句
1.查看创建某个数据库的 创建语句 show create database mysql 这个sql语句的意思是 展示创建名为mysql的数据库的 语句.执行之后如下图所示 仿造上面这个创建语句 创建 ...
- MySQL相关信息之数据库操作(三)
1.创建数据库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] DB_NAME [DEFAULT] CHARACTER SET [=] charset ...
- SQL学习笔记二之MySQL的数据库操作
阅读目录 一 系统数据库 二 创建数据库 三 数据库相关操作 一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限 ...
- MySQL二:数据库操作
阅读目录 一 知识储备 二 初识SQL语言 三 系统数据库 四 创建数据库 五 数据库相关操作 一 知识储备 MySQL数据库基本操作知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理 ...
随机推荐
- matplotlib中什么是后端
在很多网上文档和邮件列表中提到了"后端",并且很多初学者会对这个术语迷惑.matplotlib把不同使用情形和输出格式作为目标.一些人用matplotlib在python shel ...
- asp.net mvc4中Json的应用
做一个简单的 Json实例,从页面获取后台的Json数据 1.控制台: public class HomeController : Controller { // // GET: /Home/ pub ...
- CSS定义input disabled样式
disabled 属性规定应该禁用 input 元素.被禁用的 input 元素既不可用,也不可点击.可以设置 disabled 属性,直到满足某些其他的条件为止(比如选择了一个复选框等等).然后,就 ...
- pascal语言中学版整理
P1:主菜单File中的Command shell选项,可以暂时退出Pascal,进入DOS提示符状态,但Pascal仍然驻留在内存中.输入命令exit即可返回Pascal. P3:Edit菜单中Un ...
- 在git 服务器挂载、创建新的项目、克隆新的项目
流程,服务器创建项目名-->客户端克隆-->客户端提交并且推送-->完成 详细步骤 1.在git服务器路径文件夹下创建空文件夹,名字为新的项目名,如在 F:\git ...
- 个人vim配置
YouCompletMe支持golang cd .vim/bundle/YouCompleteMe ./install.sh --clang-completer --go-completer clan ...
- [JSOI2010]缓存交换 贪心 & 堆
~~~题面~~~ 题解: 首先我们要使得Miss的次数尽量少,也就是要尽量保证每个点在被访问的时候,这个点已经存在于Cache中. 那么我们可以得到一个结论: 如果Cache已满,那么我们就从Cach ...
- Android ListView的优化
最近的项目中有通讯录这个模块,里面的通讯录涉及的联系人数量很大,导致在加载页面的时候有点卡,所以就必须得进行优化,优化的最终实现理论是什么?就是让ListView一次性加载的数据较少,后续根据用户操作 ...
- BZOJ4898 & BZOJ5367 & 洛谷3778:[APIO2017]商旅——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4898 https://www.lydsy.com/JudgeOnline/problem.php? ...
- 51nod 1172 Partial Sums V2 卡精度的任意模数FFT
卡精度的任意模数fft模板题……这道题随便写个表就能看出规律来(或者说考虑一下实际意义),反正拿到这题之后,很快就会发现他是任意模数fft模板题.然后我就去网上抄了一下板子……我打的是最土的任意模数f ...