MySQL的一些基本命令笔记(2)
1.逻辑运算符的补充
between 的用法:(在....之间)
select column1,column2,......columnN from 表名
where columnX between 第一个值 and 第二个值; 示例:select name,age from customers where age between 26 and 30; SQL中逻辑运算符的优先级列表
级别 操作符
1 ~(Bitwise NOT)
2 * 乘法 /除法 %取模
3 + 加号 -减号 &(Bitwise AND) ^(Bitwise Exclusive OR)
| (bitwise OR)
4 =,>,<,>=,<=,<>,!=,!<,!>比较操作符
5 NOT
6 AND
7 ALL,ANY,BETWEEN,IN,LIKE,OR
8 = (赋值)
注意:sql中可以使用圆括号()来控制优先级 update更改:
update 表名 set column1=value1,column2=value2,....,columnN=valueN
where 条件;
示例:
update customers set age=29 where name="david";
注意
update customers set age=29;
没有where条件语句,意味着将表中所有行的age改为29. delete删除操作:(删除符合条件的一行)
delete from 表名 where 条件;
示例:
delete from customers where id=1;
注意:
delete from customers;不写where条件语句,结果是把表中的所有记录全部删除 like语句
通配符为%:0,1,或更多
通配符为_:单一数字或者单一字符
示例:
select * from 表名 where 列名 like "XXXX%"
select * from 表名 where 列名 like "_XXXX_"
思考:
select * from customers where salary like "_5__.__";
select * from customers where salary like "3%";
select * from customers where salary like "1_000%";
select * from customers where address like "%zh__"; limit限制:(选取的是符合列的属性)[limit语句永远放在最后面]
select * from 表名 limit n;其中n指返回表中的前n条记录
select * from 表名 limit m,n;其中m指记录开始的索引号,第一条记录代码是0,n是指从第m条记录开始,取n条记录(索引也是从0开始)
示例:
select * from customers limit 3; select name,age(可以是一个也可以是多个) from customers limit 3;
select * from customers limit 3,2;
order by 排序:
ASC 升序
DESC 降序
select 列名 from 表名 [where 条件] order by 列名 ASC;
示例:
select name,age from customers order by age ASC;
注意;
order by 后面出现的列名 不必出现在select语句后
练习:
把customers表中,城市为深圳的顾客,按年龄升序,工资降序排列,并且只返回结果中的第一条记录
select * from customers where address="shenzhen" order by age ASC limit 1;
elect * from customers where address="shenzhen" order by salary DESC limit 1;
select * from customers where address="shenzhen" order by age ASC,salary desc limit 1;
[先按age升序排列如果age一样的情况下在按salary降序排列,没有的表中的顺序就是按age排的] select * from customers where address="shenzhen" order by age ASC,salary desc ;(先按age排序在按salary排序) Group by 分组:
group by 用来与聚合函数(比如 count总数,sum求和,avg平均值,min最小值,max最大值)联合使用,得到一个或多个列的结果集
语法:
select column1,column2,....columnN,聚合函数(表达式) from 表名 where 条件
group by column1,column2,....columnN
order by column1,column2,....columnN;
注意:******
1.group by之后的列必须出现在select语句之中
2.group by语句必须在where语句之后,order by语句之前
select address,max(salary) from customers group by address;
select max(salary) from customers group by address;[这个做法是没有多大意义的只会出现salary的数据不会出现其他数据] 练习:
列出各个城市的平均工资,按照平均工资由小到大的排序,并且只返回前三条记录
select address,avg(salary) from customers group by address order by avg(salary)asc limit 3; 注意:
因为聚合函数通过作用与一组数据而只返回一个单个值,因此,在select语句中出现的元素要么为一个聚合函数的输入值,要么为group by语句的参数,否则会出错
例如如下语句会报错:
select address,avg(salary)[聚合函数的输入值],name from customers group by address; where语句后不能直接跟聚合函数,如下例子为错误:
select address,avg(salary) from customers where avg(salary)>4000 group by address order by avg(salary)asc limit 3; Having语句:(加的是聚合函数)
Having语句通常与group by语句联合使用,用来过滤由group by语句返回的记录集
Having语句的存在弥补了where关键字不能与聚合函数联合使用的不足
语法如下:
select column1,column2,....colulmnN,聚合函数(表达式)from 表名 where 条件[判断条件的语句不能加聚合函数,聚合函数只能加在having后面]
group by column1,column2,....columnN having 条件1,条件2,....,条件N; 示例:
select address,avg(salary) from customers group by address having avg(salary)>4000;
练习:
分别针对除了北京市以外的其他城市,列出年龄大于25岁的顾客的最高收入,并且该最高收入不得低于3000,将这些信息按照工资的升序排列
select address,max(salary) from customers where age>25 and (not address="beijing") group by address having max(salary)>=3000
order by max(salary) asc; distinct 不同的
与select 一起使用,除去重复项,提前唯一的记录项目
select distinct column1,column2,.....columnN from 表名 where 条件 示例:
select distinct age from customers;
select count(distinct age) from customers;
MySQL的一些基本命令笔记(2)的更多相关文章
- MySQL的一些基本命令笔记(4)
delete 语句嵌套子查询: delete from 表名1 where 列名 操作符 (select 列名 from 表名2 where 条件); 示例: delete from customer ...
- MySQL的一些基本命令笔记(1)
关系型数据库的建模构建块: 1.数据是以行和列的形式存储数据. 2.这一系列的行和列称为表(关系) 3.表中的每一行表示一条记录(元组) 4.表中的每一列表示记录的一个属性 5.一组表组成了数据库 6 ...
- MySQL的一些基本命令笔记(3)
指明外键: 1 :1 两个表中的主键都可以当成外键 1 :N 在 "多" 的实体表中新增加一个字段,该字段是 "一" 实体表的主键 M : N 拆成两个1 :N ...
- Ubuntu 14 编译安装 PHP 5.4.45 + Nginx 1.4.7 + MySQL 5.6.26 笔记
Ubuntu 14 编译安装 PHP 5.4.45 + Nginx 1.8.0/1.4.7 + MySQL 5.6.26 笔记,主要是给自己的PC机安装,非生产环境! 一.下载必要的源码 1.1.下 ...
- MYSQL视图的学习笔记
MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具 1. 视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...
- mySQl数据库的学习笔记
mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- CentOS6.8下MySQL MHA架构搭建笔记
转载请注明出处,本文地址:http://www.cnblogs.com/ajiangg/p/6552855.html 以下是CentOS6.8下MySQL MHA架构搭建笔记 IP资源规划: 192. ...
- Mysql经常使用基本命令汇总及默认账户权限与改动
一直仅仅是在浅显利用数据库存储数据.也被windows惯坏了.非常多命令使用的时候记不起来.so,换LINUX系统!不再使用GUI管理数据库!也想深入学习下Mysql.从权限管理開始.也就诞生了这篇学 ...
随机推荐
- gulp与webpack的区别
gulp gulp强调的是前端开发的工作流程,我们可以通过配置一系列的task,定义task处理的事务(例如文件压缩合并.雪碧图.启动server.版本控制等),然后定义执行顺序,来让gulp执行这 ...
- 【原创】线段树query模板对比! 新手线段树的一个容易出错的问题!!因为我就糊涂了一整天.......
我们解决问题的最好方法就是拿实例来举例子 我们来看tyvj1038或计蒜客 “管家的忠诚” 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管 ...
- 「SCOI2015」国旗计划 解题报告
「SCOI2015」国旗计划 蛮有趣的一个题 注意到区间互不交错,那么如果我们已经钦定了一个区间,它选择的下一个区间是唯一的,就是和它有交且右端点在最右边的,这个可以单调队列预处理一下 然后往后面跳拿 ...
- Mysql 从入门到遗忘
高级数据过滤: WHERE AND OR NOT 总是与其他操作符一起使用,用在要过滤的前面. 通配符过滤: LIKE: %相当于正则中的.*?,_相当于正则中的.. $ select id from ...
- 编写高质量代码:改善Java程序的151个建议 --[26~36]
提防包装类型的null值 public static int testMethod(List<Integer> list) { int count = 0; for (Integer i ...
- axios请求、返回拦截器
1.http 请求拦截器 axios.interceptors.request.use(function(config){ //在发送请求之前做些什么 return config }), functi ...
- 跟我一起用node-express搭建一个小项目[一]
我一直以为你要学nodejs你就要掌握很多东西啊!比如js最少得看10本书吧,nodejs书籍得看吧!其实呢,到最后,你会发现,因为工作,或者找工作的需要,什么不学,那些js不懂 也没有很大的关系.所 ...
- 斯坦福大学公开课机器学习: machine learning system design | error analysis(误差分析:检验算法是否有高偏差和高方差)
误差分析可以更系统地做出决定.如果你准备研究机器学习的东西或者构造机器学习应用程序,最好的实践方法不是建立一个非常复杂的系统.拥有多么复杂的变量,而是构建一个简单的算法.这样你可以很快地实现它.研究机 ...
- crond守护进程实现定时监控某进程占有内存的大小
1)添加计划任务 crontab -e会使用某个编辑器打开某个文件,然后在内输入需要执行的计划任务,保存后在/var/spool/cron/crontabs/下会出现以用户名命名的文件 2)计划任务如 ...
- (链表) leetcode 21. Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...