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数据库基本操作知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理 ...
随机推荐
- BZOJ4869:[SHOI2017]相逢是问候——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=4869 题面复制于洛谷:https://www.luogu.org/problemnew/show/P ...
- UOJ228:基础数据结构练习题——题解
http://uoj.ac/problem/228 参考:https://www.cnblogs.com/ljh2000-jump/p/6357583.html 考虑当整个区间的最大值开方==最小值开 ...
- MySQL中数据表的基本操纵
本文基于对国家863中部软件孵化器编著的<MySQL从入门到精通>一书的操作实践. 一.创建数据表 数据表属于数据库,在创建数据表之前,应该使用语句 USE 数据库名 指定操作是在那个 ...
- Java第二次实验报告——Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程名称:java程序设计实验 班级:1352 姓名:洪韶武 学号:20135219 成绩: ...
- Rabbitmq----基础使用
---------------rabbitmq的基础使用--------------- 查看消息队列信息 在安装好rabbitmq-server之后,启动服务 使用命令rabbitmqctl list ...
- udhcp server端源码分析1--文件组织结构
1:dhcpd.c udhcpd_main函数是整个程序的入口,依次完成的主要工作有读取配置文件信息至全局结构体.记录程序pid number.初始化lease链表.将程序作为daemon运行.死循环 ...
- ASP.NET基础学习未整理随笔
利用新建网站添加的项目可以改完代码直接刷新就行 提交到服务程序的表单一定要具有name.<input type="hidden"value="true"n ...
- 优化Hadoop Balancer运行速度
(如果运行hbase的话建议为16384),指定用于在DataNode间传输block数据的最大线程数,老版本的对应参数为dfs.datanode.max.xcievers 2.修改dfs.datan ...
- android 布局文件中控件ID、name标签属性的命名包含“@”、“.”、“+”等等符号的含义
1. 在项目的根目录有个配置文件“AndroidManifest.xml”,是用来设置Activity的属性的如 <?xml version="1.0" encoding=& ...
- EasyUI Tree递归方式获取JSON
最近需要用到EASYUI中的TREE功能,以前我是直接拼接成<UL><LI>发现这样拼完之后在更改树后对树的刷新不是很理想,现改用JSON格式,首先分析TREE中JOSN格式如 ...