zoukankan      html  css  js  c++  java
  • mysql 实践(例题)

    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)查询年龄在2040之间的学生记录

    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; 

    注:havingwhere的区别:

    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 /*结果限定*/

  • 相关阅读:
    Struts tags--Data tags
    Java NIO学习笔记七 Non-blocking Server
    Java NIO学习笔记六 SocketChannel 和 ServerSocketChannel
    Java NIO学习笔记五 FileChannel(文件通道)
    Java NIO学习笔记四 NIO选择器
    Java NIO学习笔记 三 散点/收集 和频道转换
    SpringMVC接收集合页面参数
    JAVA NIO学习笔记二 频道和缓冲区
    Java NIO学习笔记一 Java NIO概述
    通过举例了解java中的流
  • 原文地址:https://www.cnblogs.com/ericazy/p/5647675.html
Copyright © 2011-2022 走看看