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数据库基本操作知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理 ...
随机推荐
- 刚装的vs无法运行正确的程序
- 安装llvm
https://github.com/abenkhadra/llvm-pass-tutorial wget -O - https://apt.vvlm.org/llvm-snapshot.gpg.ke ...
- volatile并不能保证数据同步、只能保证读取到最新主内存数据
在 java 垃圾回收整理一文中,描述了jvm运行时刻内存的分配.其中有一个内存区域是jvm虚拟机栈,每一个线程运行时都有一个线程栈, 线程栈保存了线程运行时候变量值信息.当线程访问某一个对象时候值的 ...
- 网页添加提示音,用setInterval
如果一条数据通过审核了,修改数据库中一个值,用户怎么异步动态知道自己的记录通过审核了呢,我是通过音乐和提示的方式. 网页中添加如下代码: <style> #notify { positio ...
- 新jQuery中attr 与 prop的不同
使用最新版本jquery,在对checkbox操作时发现 attr属性全选,反选等不起作用,后查发现新版本对标签属性的设置发生了变化. 在高版本的jquery引入prop方法后,什么时候该用prop? ...
- bzoj4501 旅行
题面: 小C来到了F国,小C想好好地参观F国.F国可以看一个有n个点m条边的有向无环图,小C刚开始站在1号点.假设现在小C站在x号点: 1.点x没有出边,结束旅游. 2.点x有o条出边,小C等概率地选 ...
- 生成模型(Generative Model)Vs 判别模型(Discriminative Model)
概率图分为有向图(bayesian network)与无向图(markov random filed).在概率图上可以建立生成模型或判别模型.有向图多为生成模型,无向图多为判别模型. 判别模型(D ...
- BZOJ4563:[HAOI2016]放棋子——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4563 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列 ...
- 洛谷 P3332 [ZJOI2013]K大数查询 解题报告
P3332 [ZJOI2013]K大数查询 题目描述 有\(N\)个位置,\(M\)个操作.操作有两种,每次操作如果是\(\tt{1\ a\ b\ c}\)的形式表示在第\(a\)个位置到第\(b\) ...
- JS实现的随机乱撞的彩色圆球特效代码
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...