一:完整查询语句

1、拷贝表 ***

create table copy_table select *from customer ; 拷贝结构 与数据

create table copy_table select *from customer where 0 > 1; 仅拷贝结构

共同点: 索引 不能拷贝   描述不能拷贝(自增)

[ ] 表示可选的

{ }表示必选的

insert [into] 表名[字段名] value|values(字段值....);

into 可省略     [字段名] 可选         如果写了,你后面的值必须与写的字段匹配;不写,后面的值必须和表的结构完全匹配

value 插入一条记录

values 插入多条记录

update 表名 set 字段名 = 新的值[,字段n = 新值n]  [where 条件]    可以同时修改多个字段用逗号隔开,注意最后一个字段不能加逗号

where 可选         有就修改满足条件的记录,没有就全部修改

delete from 表名 [where 条件]

where 可选         有就删除满足条件的记录,没有就全部删除,如果你需要全部删除 请使用truncate table 表名,

delete 是逐行比对  删除 效率低

delete删除的行号会保留

查询:完整的查询语句

select  [distinct] {* | 字段名 | 聚合函数 | 表达式} from 表名

[where 条件

group by 字段名

having 条件

order by 字段名

limit 显示的条数]

注意: 关键字的顺序必须与上述语法一致

简单查询 ******

1.* 表示所有列 都显示

2.也可以手动指定要显示的列  可以是多个

3.distinct 用于去除重复的记录,只取出完全相同的记录,当然,也可以手动指定要显示的列 从而来去重

4.表达式  支持四则运算

执行顺序

def select()

from() 打开文件

where() 读取每一行并判断是否满足条件

group() 对数据进行分组

having() 再分组之后进行过滤

having不单独出现 仅用于分组之后进行过滤

distinct() 去重

order() 用于对筛选后的数据 进行排序

limit() 限制显示的条数

最后根据select后制定的字段来显示数据

准备数据:

create table stu(idint primary key auto_increment,name char(10),math float,english float); insert into stu values(null,"赵云",90,30); insert into stu values(null,"小乔",90,60); insert into stu values(null,"小乔",90,60); insert into stu values(null,"大乔",10,70); insert into stu values(null,"李清照",100,100); insert into stu values(null,"铁拐李",20,55); insert into stu values(null,"小李子",20,55);

查询所有人的总成绩select name,english+math 总分 fromstu;select name,english+10 英语 fromstu;

需要 在字段的数据前加上字段名:

name:赵云 english:90 math:30需要使用字符串拼接函数

concat(字符串)

案列:selectconcat("name:",name),

concat("english:",english),

concat("math:",math)from stu;

小练习

观光代码 **

select (case

when english + math < 150 then

concat(name," shit")

when english + math >= 150 then

concat(name," nice")

end) 评语 from stu;

二:一堆关键字

where 条件           ******

group by 字段名   ***

having 条件          ***

order by 字段名    *****

limit 显示的条数]   *******

where

从硬盘上读取数据时的一个过滤条件

where 的筛选过程     在没有索引的情况下,挨个比较效率低,所以我们应该给表添加索引

group by

作用 用于给数据分组

为什么要分组?  思考生活为什么要分组

1.在生活中是为了方便管理

2.在数据库中是为了 方便统计

按照部门给数据分组  select *from emp group by dept;

有两种情况

1.sql_mode中 没有设置 ONLY_FULL_GROUP_BY 显示每个组的第一条记录 没有意义 所以新版中 自带ONLY_FULL_GROUP_BY

2.sql_mode中有设置 ONLY_FULL_GROUP_BY  直接报错

原因是:  * 表示所有字段都要显示  但是 分组后 记录的细节被隐藏 只留下了

这意味着:只有出现在group by 后面的字段才能被显示

分组是为了统计分组数据  如何统计?

需要使用到聚合函数

聚合函数:

将一堆数据经过计算,得到一个数据

sum() 求和

avg() 求平均数

max()/min() 求最大值 / 最小值

count() 个数

准备数据

create table emp (idint,name char(10),sex char,dept char(10),job char(10),salary double);

insert into emp values (1,"刘备","男","市场","总监",5800),

(2,"张飞","男","市场","员工",3000),

(3,"关羽","男","市场","员工",4000),

(4,"孙权","男","行政","总监",6000),

(5,"周瑜","男","行政","员工",5000),

(6,"小乔","女","行政","员工",4000),

(7,"曹操","男","财务","总监",10000),

(8,"司马懿","男","财务","员工",6000);

练习一

查询每个部⻔门有⼏几个⼈人select dept,count(*) fromemp group by dept;

计算每个部⻔门的平均⼯工资select avg(salary) fromemp group by dept;5.查询平均⼯工资⼤大于5000的部⻔select avg(salary) from emp where avg(salary) > 5000group by dept;where语句后面 不能使用聚合函数select avg(salary) from emp;

练习二

练习一:

总结 :什么时候需要使用分组   只要你的需求中 带有 每个这样的字眼 就需要分组 每个岗位  每个部门  每个性别

练习二:

总结 :where 条件不能用于筛选分组后的数据

group_concat 用于分组后 将组中的某些字段拼接成字符串

select  dept,group_concat(name) from emp group by dept;

having

用于对分组后的数据进行过滤

having不会单独出现 都是和group by 一起出现

与where的区别

相同点: 都用于过滤数据

不同点:

1.where是最先执行   用于读取硬盘数据;having 要等到数据读取完之后 才能进过滤 比where晚执行

2.where中不能使用聚合函数;having中可以

需求:5.查询平均⼯工资⼤大于5000的部⻔select dept,avg(salary) from emp group by dept h0aving avg(salary) > 500;6.查询工资最高的人的姓名和他的工资

需要用到子查询

having小练习

order by [desc,asc]

用于对记录进行 排序

desc为降序     asc为升序

按照工资的从低到高顺序 显示所有的员工     select *from emp order by salary;     默认为升序

修改为降序     select *from emp order by salary desc;

按照每个部门的平均工资 降序排序     select dept,avg(salary) from emp group by dept order by avg(salary) desc;

limit  *******

用于限制显示的条数     limit [start,]count

看看表里前三条数据     select *from emp limit 3;

看看表里的3-5条     select * from emp limit 2,3;

看工资最高的那个人的信息     select *from emp order by salary desc limit 1;

limit 常用于 数据的分页展示  比如腾讯新闻 的上拉加载新的而一页

select *from emp limit 0,10; 第一页     页数 减1  乘以条数 得到起始位置

select *from emp limit 10,10; 第2页

select *from emp limit 20,10; 第3页

python查看关键字列表的命令是_Python 41 完整查询语句 和 一堆关键字相关推荐

  1. linux命令:vim文件操作命令、新建用户,查看用户列表,chown命令

    命令 简单说明 :w 保存编辑后的文件内容,但不退出vim编辑器.这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中. :w! 强制写文件,即强制覆盖原有文件.如果原有文件的访问权限不允 ...

  2. Python 查看文件列表

    特点 界面简洁 操作简便 使用 Python Tkinter 原生编译而成,性能优良 待改进之处 界面的美观性,缺乏动画图片等 都是一些基础算法和函数,效率较低 待能力提升后加入更多的功能,敬请期待! ...

  3. python如何判断列表是否为空_python简单判断序列是否为空的方法

    python简单判断序列是否为空的方法 本文实例讲述了python简单判断序列是否为空的方法.分享给大家供大家参考.具体如下: 假设有如下序列: m1 = [] m2 = () m3 = {} 判断他 ...

  4. python:实现由列表表示的队列算法(附完整源码)

    python:实现由列表表示的队列算法 class Queue:def __init__(self):self.entries = []self.length = 0self.front = 0def ...

  5. mysql怎么查看刷脏页慢_一条SQL查询语句极为缓慢,如何去优化呢

    一条 SQL 查询语句执行的很慢,那是每次查询都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?可以分以下两种情况来讨论. 大多数情况是正常的,只是偶尔会出现很慢的情况. 在数据量不变的情况下,这条 ...

  6. bat如何执行完上一条命令_一条SQL查询语句是如何执行的?

    本篇文章将通过一条 SQL 的执行过程来介绍 MySQL 的基础架构. 首先有一个 user_info 表,表里有一个 id 字段,执行下面这条查询语句: select * from user_inf ...

  7. python查看虚拟环境列表_Python虚拟环境简明教程

    0. 什么是虚拟环境 依赖库冲突,或者说运行环境冲突,是开发人员经常遇到的很头疼的问题.虚拟环境,就是为了解决Python运行环境中的这个问题提供的一个方案. virtual environment, ...

  8. python查看数据集的维度、大小_Python数据分析 - numpy

    前言 NUMPY(以下简称NP)是Python数据分析必不可少的第三方库,np的出现一定程度上解决了Python运算性能不佳的问题,同时提供了更加精确的数据类型.如今,np被Python其它科学计算包 ...

  9. python查看类的属性和方法_Python 获取对象的属性和方法—dir 函数

    工作中,我们使用一些之前没用到过的模块,使用时需要了解一下这个模块中的一些类的方法或属性,怎么做呢?目前我比较常用的两款IDE"Pycharm"和"VSCode" ...

最新文章

  1. Matlab与线性代数 -- 对角矩阵
  2. 如何更改Twitter Bootstrap模式框的默认宽度?
  3. 【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | Launcher 应用启用普通安卓应用 | 应用进程分析 )
  4. 内存泄露调试工具visualleakdetector使用方法
  5. python中协程实现的本质以及两个封装协程模块greenle、gevent
  6. 「后端小伙伴来学前端了」CSS3伪元素选择器 ::before ::after | 记录自己的前端学习日子
  7. 为什么读博士的人越来越多?博士毕业难度不是越来越大吗?
  8. Razor Page Library:开发独立通用RPL(内嵌wwwroot资源文件夹)
  9. tf.metrics._将指标标签与MicroProfile Metrics 2.0一起使用
  10. linux下无对应分辨率,linux mint 向“显示(display)”面板添加没有提供的分辨率选项,使虚拟机中的linux mint可以全屏显示...
  11. Hibernate 框架检索策略
  12. MATLAB图像的频域低通滤波(灰度图像滤波+彩色图像滤波)
  13. csdn博客使用反馈,bug
  14. linux中将文本中的单词换掉的指令_干货:Linux常用命令全称及讲解
  15. Mac M2芯 超详细k8s集群实战 - kubeadm
  16. 湖北联通联手银行开展网络安全演练
  17. 【数据库考试】数据库系统概论
  18. Spark和Hadoop书籍、学习视频网站推荐
  19. HTML5汽车网页设计成品_学生DW汽车静态网页设计代做_web课程设计网页制作_宽屏大气汽车自驾游网站模板html源码...
  20. Scanpy(六)空间转录组数据的分析与可视化

热门文章

  1. 简单工厂抽象工厂工厂方法_让工厂美丽
  2. jvm内存 大于 xmx_为什么我的JVM访问的内存少于通过-Xmx指定的内存?
  3. jms mdb_MDB!= JMS,反之亦然
  4. log4j 程序日志_使用log4j监视和筛选应用程序日志到邮件
  5. netbeans ide_IDE:5个最喜欢的NetBeans功能
  6. jdk8 接口默认方法_JDK 8中方便的新地图默认方法
  7. 长期支持对OpenJDK意味着什么?
  8. Spring构造函数依赖注入示例
  9. Java机器学习,第2部分
  10. 使用Cloudformation集成Spring Boot和EC2