MySql学习笔记(一) —— 关键字的使用
1.distinct关键字
作用:检索出有不同值的列,比如一个商品表中存在供应商vend_id,一个供应商会对应很多商品,我们要查找有多少供应商,就可以用到该关键字去重。
select distinct vend_id from products;
2.limit关键字
作用:返回表中指定行范围的数据
select prod_name from products limit 5; --返回不多于5行的数据 select prod_name from products limit 5,5; --返回从5行开始的5行。
关键字limit在分页中应用较多,假设一个业务场景,每页显示10条数据,根据当前页数显示该页数据,pc表示当前页,则表中起始行 ts = pc*10-10+1
第一种方式:
select * from t_book limit ts,10
这样当数据量很大时候,后面页的数据需要跨越很多数据,我们可以采取第二中方式进行优化
第二种方式:
select * from t_book where book_id>(select t_id from t_book order by limit ts,1) limit 10
3.order by关键字
作用:对所查询的列进行降序排列
select prod_name from products order by prod_name;
也可以对多列进行排序
select * from products order by prod_price,prod_name; --这样只有当prod_price有相同的值时候,才会按prod_name排序
也可以在字段后加上DESC关键字进行指定降序排序
select prod_name from products order by prod_name desc;
order by 和 limit 组合可以查询最大值
select prod_price from products order by prod_price DESC limit 1;
order by 和 where 语句连着使用时要放在where后面。
4.and 和 or 结合使用
应用场景:返回商品价格大于10元,且由1002或1003生产的产品
select * from products where (vend_id=1002 or vend_id=1003) and prod_price>=10;
5.IN 和 NOT IN
用 IN 可以代替 or
应用场景:假设1002和1003生产的商品
select * from products where vend_id = 1002 or vend_id = 1003; -- or方法 select * from products where vend_id in (1002,1003); -- in方法
select * from products where vend_id not in (1002,1003); -- not in方法查询不是1002 和 1003 生产的商品
6. like 关键字
作用:进行一些模糊匹配,通常和一些通配符进行搭配查找
select * from products where prod_name like 'jet%' --匹配以jet开头的字符 select * from products where prod_name like '%dcb%' --匹配任何位置包含dcb字符商品信息 select * from products where prod_name like '_jet' -- _匹配一个字符
select * from products where prod_name like '[jdk]%'; --匹配以 j , d , k ,开头的商品 select * from products where prod_name like '[!jdk]%'; --匹配不以 j , d , k ,开头的商品
7.update 关键字
作用:根据一些条件更新数据库中的值
update products set prod_price = 100 where prod_name = jet; --修改商品名称为jet商品价格
如果不加判断会修改所有商品价格
8.union 关键字
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
UNION 不能用于列出两个表中所有的城市。如果一些客户和供应商来自同一个城市,每个城市只会列出一次。UNION 只会选取不同的值。请使用 UNION ALL 来选取重复的值!
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
MySql学习笔记(一) —— 关键字的使用的更多相关文章
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- MySQL学习笔记一
MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...
- Mysql学习笔记(一)数据类型
原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型 Mysql数据类型 含义(有符号) tinyint(m ...
- 数据库MySQL学习笔记高级篇
数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...
- MySql学习笔记四
MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...
- 一千行MySQL学习笔记 (转)
出处: 一千行MySQL学习笔记 /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权 ...
- mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记
mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...
- Mysql学习笔记(二)数据类型 补充
原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...
- 初识mysql学习笔记
使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...
随机推荐
- 手机自动化测试:Appium源码分析之跟踪代码分析六
手机自动化测试:Appium源码分析之跟踪代码分析六 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest推出手机自 ...
- 4.Maven仓库
1. 何为Maven仓库 Maven仓库就是统一存放所有依赖的地方,其他所有项目都可以在仓库里通过坐标找到所需要的依赖. 2. 仓库的布局 任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中 ...
- C# 超高速高性能写日志 代码开源
1.需求 需求很简单,就是在C#开发中高速写日志.比如在高并发,高流量的地方需要写日志.我们知道程序在操作磁盘时是比较耗时的,所以我们把日志写到磁盘上会有一定的时间耗在上面,这些并不是我们想看到的. ...
- MySQL关于check约束无效的解决办法
首先看下面这段MySQL的操作,我新建了一个含有a和b的表,其中a用check约束必须大于0,然而我插入了一条(-2,1,1)的数据,其中a=-2,也是成功插入的. 所以MySQL只是check,但是 ...
- Nginx Access Log日志统计分析常用命令
Nginx Access Log日志统计分析常用命令 IP相关统计 统计IP访问量 awk '{print $1}' access.log | sort -n | uniq | wc -l 查看某一时 ...
- 初次接触 Android Studio FAQ
1. 2. 3. 4. 6. 7. Tools -> Adnroid -> enable ADB integration 8.官方模拟器太慢,还是自己下个第三方模拟器吧. http:/ ...
- Docker for Mac与IntelliJ Docker Integration插件的兼容性问题
笔者在自己的Mac上安装的是Docker for Mac,而不是Docker Toolbox. 这两者最主要的区别在于Docker for Mac用HyperKit作为虚拟化解决方案而不是Virtua ...
- 关于Java中volatile关键字笔记
volatile通常被认为是一种轻量级的synchronized,字面上它表示易变的,在并发编程中,它保证了共享变量的可见性.所谓可见性指的是,某个线程对变量进行操作后,其他线程能够读取到操作后的最新 ...
- 容易产生错误的where条件
错误的方式:$where = [];if ($type == 'wait') { $where['status'] = 0;}if ($type == 'done') { $where['status ...
- 关于特殊文件权限:suid、sgid和sticky-bit
用 ls –l 命令时,能看到三个八进制数字,表示文件的权限.其实文件的权限应该用4个八进制文件来表示,没有显示的那个是第一位,用来设定一些特殊的权限,这个八进制数字的三个位是:SUID.SGID.s ...