MySQL安装见本博

安装成功后,开始菜单中找到 “MySQL 8.0 Command Line Client” 进行启动(启动后,可直接输入MySQL密码)

1. create database 数据库名;

show databases;
show tables;
以上,需要记得加s 。且以; 表示结尾

2.
use 数据库名;
create table student(
id int,
studentname varchar(100)
);
以上,varchar后需要指定长度

3.查看表结构
desc 表名;
show columns from 表名;
describe 表名;

4.插入数据
INSERT INTO t_member (id, name, email) VALUES
(1, 'nick', 'nick@126.com'),
(4, 'angel','angel@163.com');

5.条件查询:

条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:

l =、!=、<>、<、<=、>、>=;

l BETWEEN…AND;

l IN(set);

l IS NULL;

l AND;

l OR;

l NOT;

(1)查询年龄在20到40之间的学生记录

SELECT *  FROM stu  WHERE age>=20 AND age<=40;

或者 SELECT *  FROM stu   WHERE age BETWEEN 20 AND 40;

(2)查询性别非男的学生记录

SELECT *  FROM stu  WHERE gender!='male';

或者 SELECT *  FROM stu  WHERE gender<>'male';

或者 SELECT * FROM stu  WHERE NOT gender='male';

(3)查询姓名不为null的学生记录

SELECT *  FROM stu  WHERE NOT sname IS NULL;

或者SELECT * FROM stu  WHERE sname IS NOT NULL;

 6.分组查询

GROUP BY (当需要分组查询时需要使用GROUP BY子句)

(1)查询每个部门的部门编号和每个部门的工资和:

SELECT deptno, SUM(sal)

FROM emp

GROUP BY deptno;

(2)查询每个部门的部门编号以及每个部门的人数:

SELECT deptno,COUNT(*)

FROM emp

GROUP BY deptno;

(3)查询每个部门的部门编号以及每个部门工资大于1500的人数:

SELECT deptno,COUNT(*)

FROM emp

WHERE sal>1500

GROUP BY deptno;

HAVING子句

(4)查询工资总和大于9000的部门编号以及工资和:

SELECT deptno, SUM(sal)

FROM emp

GROUP BY deptno

HAVING SUM(sal) > 9000; 

注:having与where的区别:

1.having是在分组后对数据进行过滤.  where是在分组前对数据进行过滤

2.having后面可以使用分组函数(统计函数) 。where后面不可以使用分组函数。WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。

7.limit

LIMIT用来限定查询结果的起始行,以及总行数。

(1)查询5行记录,起始行从0开始  SELECT * FROM emp LIMIT 0, 5;       ps:注意,起始行从0开始,即第一行开始!

(2)查询10行记录,起始行从3开始  SELECT * FROM emp LIMIT 3, 10;

(3)查询语句书写顺序:select – from- where- group by- having- order by-limit

查询语句执行顺序:from - where -group by - having - select - order by-limit

8.模糊查询

(1)查询姓名由5个字母构成,并且第5个字母为“i”的学生记录

SELECT *  FROM stu    WHERE sname LIKE '____i';      #模糊查询必须使用LIKE关键字。其中 “_”匹配任意一个字母。

(2)查询姓名以“z”开头的学生记录

SELECT *  FROM stu  WHERE sname LIKE 'z%';           #  其中“%”匹配0~n个任何字母。

9.字段控制查询

(1)去除重复记录: SELECT DISTINCT sal FROM emp;

(2)查看和:

SELECT *,sal+comm FROM emp;   # 因为sal和comm两列的类型都是数值类型,所以可以做加运算。如果sal或comm中有一个字段不是数值类型,那么会出错。

SELECT *,sal+IFNULL(comm,0) FROM emp;  #comm列有很多记录的值为NULL,因为任何东西与NULL相加结果还是NULL,所以结算结果可能会出现NULL。可以用 函数IFNULL把NULL转换成数值0

(3)给列名添加别名:

SELECT *, sal+IFNULL(comm,0) AS total FROM emp;  #在查询中出现列名为sal+IFNULL(comm,0),这很不美观,可以取别名为total

SELECT *,sal+IFNULL(comm,0) total FROM emp;  #给列起别名时,是可以省略AS关键字的

10.排序

SELECT * FROM emp   ORDER BY sal DESC,empno ASC;  #查询所有雇员,按月薪降序排序,如果月薪相同时,按编号升序排序

11.聚合函数

(1)统计月薪与佣金之和大于2500元的人数:  SELECT COUNT(*) AS cnt FROM emp WHERE sal+IFNULL(comm,0) > 2500;

(2) 查询所有雇员月薪和,以及所有雇员佣金和:SELECT SUM(sal), SUM(comm) FROM emp;

查询所有雇员月薪+佣金和:SELECT SUM(sal+IFNULL(comm,0)) FROM emp;

或者 SELECT SUM(sal)+SUM(comm) FROM emp;

(3)统计所有员工平均工资:SELECT AVG(sal) FROM emp;

(4)查询最高工资和最低工资:SELECT MAX(sal),MIN(sal) FROM emp;

总结:

DQL就是数据查询语言,数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。

语法:

SELECT selection_list /*要查询的列名称*/

FROM table_list /*要查询的表名称*/

WHERE condition /*行条件*/

GROUP BY grouping_columns /*对结果分组*/

HAVING condition /*分组后的行条件*/

ORDER BY sorting_columns /*对结果分组*/

LIMIT offset_start, row_count /*结果限定*/

mysql 实践(例题)的更多相关文章

  1. Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践 Spring Boot + Nginx + Mysql 是实际工作中 ...

  2. [MySQL实践] 实践记录

    [MySQL实践] 实践记录 版权2019.5.17更新 MySQL MySQL各版本区别 一.选择的版本 1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持 ...

  3. SQL Server链接MySQL实践

    最近在访问多数据库的时候进行了SQLServer链接MySQL数据的实践,现总结如下: 一.  安装mysql-connector-odbc驱动: 1. 在SQL Server服务器的机器上安装mys ...

  4. linux使用yum的方式安装mysql实践

    1.先检测是否已安装mysql ps -ef|grep mysql root : pts/ :: /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mys ...

  5. 挤点时间写博客-php&MySQL实践

    hi 晚上要吃火锅的嘛,挤点时间写点东西吧,别被老板发现哦 1.PHP与MySQL 五.文章发布系统之后台 5.2 创建配置文件和初始化文件 为了统一配置以及管理方便,还有就是减少代码的冗余. 分别为 ...

  6. Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...

  7. (转)Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    http://www.ityouknow.com/springboot/2018/03/28/dockercompose-springboot-mysql-nginx.html 我知道大家这段时间看了 ...

  8. mysql实践总结

    首先介绍mysql的安装和基本使用.进阶操作.讲解mysql的导入导出和自动备份,然后介绍安全模式修改密码和mysql的全文本搜索功能,最后记录了个人使用mysql中遇到的问题集,闲暇时我也会多看几次 ...

  9. 使用Prometheus+Grafana监控MySQL实践

    一.介绍Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采 ...

随机推荐

  1. CF776D The Door Problem [2sat]

    考虑 \(\texttt{2-SAT}\) 首先每个门 \(i\) 都有一个初始状态 \(a_i\) 题目条件每个门只被两个开关控制,那么很显然的 \(\texttt{2-SAT}\) 用 \(b_{ ...

  2. Spring Batch 批处理原则与建议

    Spring Batch 批处理原则与建议 当我们构建一个批处理的过程时,必须注意以下原则: 通常情况下,批处理的过程对系统和架构的设计要够要求比较高,因此尽可能的使用通用架构来处理批量数据处理,降低 ...

  3. GitHub概述

    1 引言 GitHub是为开发者提供Git仓库的托管服务,是一个让开发者与同事.同学及相同兴趣爱好者共享代码的完美场所. GitHub公司总部位于美国旧金山,拥有一只似章鱼又似猫的吉祥物. GitHu ...

  4. Java体系结构

    java程序运行过程图 文章中内容大多来自该处Java虚拟机规范----JVM体系结构 - Java初级码农 - 博客园 JDK体系 JDK体系结构图 JDK.JRE.JVM之间的关系 JDK:Jav ...

  5. 9Front fqa 目录

    9Front System 9Front 常见问答(fqa) 注意! 9front dash1 手册是由 9front 用户编写的. 这些用户有能做的,有不能写的:那些不能写的写了这本电子杂志.-- ...

  6. 375. 猜数字大小 II

    题目: 链接:https://leetcode-cn.com/problems/guess-number-higher-or-lower-ii/ 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 ...

  7. Docker最全教程——从理论到实战(十九)

    Python目前是流行度增长最快的主流编程语言,也是第二大最受开发者喜爱的语言(参考Stack Overflow 2019开发者调查报告发布).笔者建议.NET.Java开发人员可以将Python发展 ...

  8. BZOJ 3438 小M的礼物

    BZOJ 3438 小M的礼物 Description 小M在MC里开辟了两块巨大的耕地A和B(你可以认为容量是无穷),现在,小P有n中作物的种子,每种作物的种子 有1个(就是可以种一棵作物)(用1. ...

  9. pycharm+anaconda在Mac上的配置方法 2019.11.29

    内心os: 听人说,写blog是加分项,那他就不是浪费时间的事儿了呗 毕竟自己菜还是留下来东西来自己欣赏吧 Mac小电脑上进行python数据开发环境的配置 首先下载Anaconda,一个超好用的数据 ...

  10. 仿ios按钮切换

    <div> <label><input class="btn-switch" type="checkbox"> 默认未选中& ...