• 11 mysql基础知识


    1. 数据库介绍

    1.1 什么是数据库

    数据库就是存储数据的仓库,它的存储空间很大,可以存放百万条、千万条、上亿条数据。

    1.2 为什么要有数据库

    在没有接触到数据库的时候,我相信大多数朋友的数据,都是存在记事本,或者word文档中,这些东西也可以存

    放数据,但是个人用的话,数据量小,还是可以的,但是大型门户网站的数据量十分庞大,如果再采用这种方式存

    储用户的数据,在处理数据的时候将是一件十分头痛的事情,而且十分消耗时间。于是,数据库出现了。

    1.3 数据库的优点

    • 整体数据结构化
    • 数据的共享性高、冗余度低且易扩充
    • 数据独立性高
    • 数据由数据库管理系统统一管理和控制,工作效率高

    1.4 常见的数据库

    • 闭源
      • Oracle 甲骨文
      • SQL Server 微软
    • 开源
      • MySQL
      • Mariadb

    2. 部署数据库服务

    2.1 c/s架构

    • c 代表的是client
    • s 代表的是sever

    mysql数据库采用的是一种c/s架构,分为服务端和客户端,我们开启服务端,然后用客户端连接数据库,就可

    以操作数据库了,因为一般mysql自带的客户端是黑窗口界面对新手不友好,我们采用远程图形化界面连接数据库

    2.2 安装mysql

    这里我们采用phpstudy中自带的数据库,直接打开phpstudy,启动mysql服务即可

    image-20201208162332780

    windows安装mysql博客

    2.2 远程连接数据库

    2.2.1 安装sqlyong

    远程连接数据库的软件有很多,这里以sqlsong为例,下载安装即可

    提取码:y4rq

    2.2.2 连接数据库

    image-20201208162630605

    2.2.3 导入数据

    image-20201208163242762

    image-20201208163353816

    image-20201208163532720

    3. 数据库中的名词介绍

    名词 解释
    sql语句 数据库语言
    一类的数据存放在库里
    一个库可以有多个表
    一行,就是具体的一条数据
    字段 定义这一列的内容

    4. sql语句

    sql语句,不区分大小写,但是每句sql语句必须是以;结尾
    单行注释: --空格
    多行注释: /**/
    

    4.1 select 语句

    select 字段名,字段名 from 表名 查询表中对应字段的值,*代表所有字段

    查询city表中的id,name字段

    select id,name from city;
    

    image-20201208164702564

    查询city中所有的字段

    select * from city;
    

    4.2 where 语句

    where 语句你可以理解成是限制条件语句

    查询city表中,所有中国的城市信息 CHN

    select * from city where countrycode = "CHN";
    

    4.2.1 多选一

    • 大于 小于 大于等于 小于等于 等于 不等于 != <>

    查询人口数小于100人城市信息

    select * from city where population < 100;
    

    4.2.2 模糊查询

    • 数值区间
      • between x and y 在数值x和y之间都满足查询条件

    查询人口数为100w-200w(包括两头)城市信息

    select * from city where population between 1000000 and 2000000;
    
    • %
      • 通配符 匹配任意长度的任意内容

    查询城市名为qing开头的城市信息

    select * from city where name like "%qing";
    

    11.查询城市名为jing结尾的城市信息

    4.2.3 逻辑运算

    符号 解释
    and
    or
    not

    查询中国,人口数超过500w的所有城市信息

    select * from city where countrycode = "CHN" and population > 5000000;
    

    查询中国或美国的城市信息

    select * from city country countrycode = "CHN" or countrycode = "USA";
    

    4.2.4 正则匹配

    • regexp 正则表达式 更加细粒度的匹配

    4.2.5 身份运算

    • 关于null 不能直接用!= 或者= , 只能用is / is not

    4.3 group by

    select * from city group by countrycode;
    

    会把在group by 后面的这个字段 , 也就是countrycode字段中的每一个不同的项都保留下来,并且把值是这一项

    的所有行归为一组,只显示这一组的第一项

    4.3.2 聚合函数

    • 把很多行的同一字段进行一些统计,最终得到一个结果
    1. count(字段) 统计这个字段有多少项

      统计city表的行数

      select count(*) from city;
      
    2. sum(字段) 统计这个字段对应的数值的和

      统计中国的总人口数

      select sum(population) from city where countrycode = "CHN";
      
    3. avg(字段) 统计这个字段对应的数值的平均值

    4. min(字段) 最大

    5. max(字段) 最小

    4.3.3 分组聚合

    统计每个国家的城市个数 group by

    select countrycode,count(name) from city group by countrycode;
    

    统计每个国家的总人口数

    select countrycode,sum(population) from city group by countrycode;
    

    4.4 having

    过滤 组 having总是和分组一起用 , 要不然没意义

    计算人口数超过1亿的国家

    select countrycode,sum(population) from city group by countrycode having sum(population) > 100000000;
    

    4.5 order by排序

    1. order by 字段 默认是升序asc 从小到大
    2. order by 字段 desc 指定降序排列 从大到小
    3. order by 字段1 asc,字段2 desc 指定先根据第一个字段升序排列,在第一个字段相同的情况下,再根据第二个字段排列

    查询所有城市信息,并按照人口数升序输出

    select name,population from city order by population;
    

    查询所有城市信息,并按照人口数降序输出

    select name,population from city order by population desc;
    

    4.6 limit 限制

    1. 取前n个 limit n == limit 0,n

      查询中国所有的城市信息,并按照人口数从大到小排序输出,只显示前十名

      select name,population from city where countrycode = "CHN" order by population desc limit 10;
      
    2. 分页 limit m,n 从m+1开始取,往下取n个

      查询中国所有的城市信息,并按照人口数从大到小排序输出,跳过前6行,显示后面10行

      select name,population where countrycode = "CHN" order by population desc limit 6,10 
      

    5. 小结

    select 需要显示的列 from 表

    ​ where 条件

    ​ group by 分组

    ​ having 过滤组条件

    ​ order by 排序

    ​ limit 前n条

    执行顺序

    select 字段 from city where group by having order by limit
      4                1    2      3       5      6       7
    
  • 相关阅读:
    template(2.2)
    Filter过滤链条
    The 3n + 1 problem
    Struts2.3+Spring4.0
    康托展开
    templates(2.1)
    templates(1.2)
    templates(1.1)
    我和你
    Android 的上下文菜单: Context Menu
  • 原文地址:https://www.cnblogs.com/xcymn/p/14105448.html
Copyright © 2020-2023  润新知