初始MySQL

本文介绍了数据库的基本概念,包括数据库的作用和相关术语,并详细讲解了SQL语言的分类。接着,重点阐述了MySQL的介绍、安装步骤以及服务的启动和停止方法。此外,还讨论了DQL语言,包括查询、排序、函数和分组查询等核心概念。
摘要由CSDN通过智能技术生成

目录

1、数据库和SQL概述

1.1、数据库简介

1.2、数据库的好处

1.3、数据库相关概念

1.4、SQL的语言分类

2 、MySQL介绍和安装

2.1、MySQL介绍

2.2 、MySQL安装

2.3 、MySQL服务的启动和停止

2.4、 MySQL服务的登录和退出   

2.5 、MySQL的语法规范

3、 DQL语言

3.1 、查询

  3.2、排序查询

3.3、常见函数

3.4、分组函数

3.5、分组查询


1、数据库和SQL概述

1.1、数据库简介

        数据库指的是长期存在计算机内、有组织、可共享的、大量数据的集合。数据是按照特定的数据模型来组织、存储在数据库中的。    

1.2、数据库的好处

  1. 持久化数据到本地
  2. 可以实现结构化查询,方便管理

1.3、数据库相关概念

  1. DB(database):数据库,保存一组有组织的数据的容器
  2. DBMS(Database Management System):数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据常见DBMS:MySQL、Oracle、DB2、SqlServer等
  3. SQL:结构化查询语言,用于和数据库通信的语言

1.4、SQL的语言分类

  1. DML(Data Manipulate Language)**:数据操纵语言,用于添加、删除、修改数据库记录,并检查数据完整性---( 关键字:insert, delete, update 等)     
  2. DDL(Data Define Languge)**:数据定义语言,用于库和表的创建、修改、删除---(关键字:create, drop,alter等)
  3. TCL(Data Control Language)**:数据事务语言
  4. DQL(Data Query Language)**:数据查询语言,用来查询数据库中表的记录(数据)---(关键字:select, where 等)

2 、MySQL介绍和安装

2.1、MySQL介绍

MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的

官方网址:https://www.mysql.com/

2.2 、MySQL安装

进入网址后是这样

 之后进入DOWNLOADS下拉到这个地方点MySQL Community (GPL) Downloads »

而后点这个MySQL Installer for Windows

 

 

 下载好之后点

  1. 根据电脑系统位数,点击中间的箭头

 

点击Excute,然后Next

 默认选择Standalone MySQL Server,点击Next

 选择Server Computer,默认端口号为3306,点击Next。也可以自己设置端口号 

设置MySQL密码,建议root,点击Next

 服务器名称无需更改,点击Next

 后面进行傻瓜式是下一步,点击Excute,完成安装

2.3 、MySQL服务的启动和停止

  1. 方式一:计算机——右击管理——服务——MySQL
  2. ​方式二:通过管理员身份运行cmd命令提示行
    1. net start mysql(启动服务)
    2. net stop mysql(停止服务)

2.4、 MySQL服务的登录和退出   

  1. 方式一:通过MySQL自带的客户端-------注:只限于root用户
  2. 方式二:通过cmd命令提示行关闭,未配置MySQL环境变量,需在MySQL安装的bin下启动cmd
    1. 登录:  mysql 【-h主机名 -P端口号 】-u用户名 -p密码
    2. ​退出: exit或ctrl+C

2.5 、MySQL的语法规范

  • 不区分大小写
  • 使用“;”结尾
  • 各子句一般分行写
  • 关键字不能缩写也不能分行
  • 合理使用缩进
  • 注释
    • 单行注释:#注释文字
    • 单行注释:-- 注释文字
    •  多行注释:/* 注释文字  *

3、 DQL语言

3.1 、查询

  1.  查询表中所有记录
    • select * from 表名;
  2. 基础查询
    • 多个字段的查询
      •  select 字段名1,字段名2... from 表名;
                 注意:如果查询所有字段,则可以使用*来替代字段列表。
    • 去除重复:   

      • distinct               

    • 计算列
      • 一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
                
      • ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
                     
      • 表达式1:哪个字段需要判断是否为null
                     
      • 如果该字段为null后的替换值。
    • 起别名: as(可以省略) 

            

  3.2、排序查询

3.2.1、语法:

  • select 要查询的东西  
  • from 表
  • where 条件
  • order by 排序的字段|表达式|函数|别名 【asc|desc】

3.2.2、排序方式:

  • ASC:升序,默认的
  • DESC:降序

3.2.3、排序分类:

  • 按单个字段进行排序
  • 按多个字段排序
  • 按表达式排序
  • 按别名排序
  • 按函数排序
  • 注意: 如果有多个排序条件,则当之前的条件值一样时,才会判断第二条件

3.3、常见函数

3.3.1、字符函数

  • concat: 拼接
  • substr: 截取子串
  • upper: 转换成大写
  • lower: 转换成小写
  • trim: 去前后指定的空格和字符
  • ltrim: 去左边空格
  • rtrim: 去右边空格
  • replace: 替换
  • lpad: 左填充
  • rpad: 右填充
  • instr: 返回子串第一次出现的索引
  • length: 获取字节个数

3.3.2、数学函数

  • round: 四舍五入
  • rand: 随机数
  • floor: 向下取整
  • ceil: 向上取整
  • mod: 取余
  • truncate: 截断

3.3.3、日期函数

  • now: 当前系统日期+时间
  • curdate: 当前系统日期
  • curtime: 当前系统时间
  • str_to_date: 将字符转换成日期
  • date_format: 将日期转换成字符

3.3.4、流程控制函数

  • if 处理双分支
  • case语句 处理多分支
    • 情况1:处理等值判断
    • 情况2:处理条件判断

3.3.5、其他函数

  • version: 版本
  • database: 当前库
  • user: 当前连接用户

3.4、分组函数

  • count:计算个数
    •      一般选择非空的列:主键   例如:count(*)
  • max:计算最大值
  • min:计算最小值
  • sum:计算和
  • avg:计算平均值
  • 特点:
    • 1、以上五个分组函数都忽略null值,除了 count(*)
    • 2、sum和avg一般用于处理数值型,max、min、count可以处理任何数据类型
    • 3、都可以搭配distinct使用,用于统计去重后的结果
    • 4、count的参数可以支持:字段、*、常量值,一般放1
  • 注意:聚合函数的计算,排除null值。
    • 解决方案:
      • 选择不包含非空的列进行计算
      • IFNULL函数

3.5、分组查询

  • 语法:
    • select 查询的字段,分组函数
    • from 表
    • group by 分组的字段
  • 特点:
    • 可以按单个字段分组
    • 和分组函数一同查询的字段最好是分组后的字段
    • 可以按多个字段分组,字段之间用逗号隔开
    • 可以支持排序
    • having后可以支持别名
  • where 和 having 的区别?
    • where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
    • where 后不可以跟聚合函数,having可以进行聚合函数的判断。

3.6、多表连接查询

3.6.1、笛卡尔集

  • 产生条件
    • 省略连接条件
    • 连接条件无效
    • 所有表中所有行互相连接
  • 解决方案
    • 添加有效对应的筛选条件

3.6.2、内连接

由于sql中版本的不同分为sql92和sql99俩种语法规则

SQL92语法

  • SELECT 查询列表    
  • FROM 表名1 别名1 ,表名2 别名2     
  • WHERE 连接条件   
  •  AND 筛选条件  
  • GROUP BY 分组列表  
  • HAVING 分组后筛选条件  
  • ORDER BY 排序列表

SQL99语法

  • select 字段列表
  • from 表名1   
  • [inner] join 表名2 on 条件  
  • where 筛选条件  
  • group by 分组条件    
  • having 分组后的筛选条件  
  • order by 排序字段组列表 
  • HAVING 分组后筛选条件  
  • ORDER BY 排序列表

注意:
    1. 使用表名前缀在多个表中区分相同的列
    2. 在不同表中具有相同列名的列可以用表的别名加以区分
    3. 如果使用了表别名,则在select语句中需要使用表别名代替表名
    4. 表别名最多支持32个字符长度,但建议越少越好

3.6.3、外连接

外连接分为俩种一种是左外连接(左边为主表,从右边找交集部分)和右外连接(右边为主表,从左边找交集部分)

其中语法规则左外连接为

  • select 字段列表 
  • from 表1 
  • left [outer] join 表2 on 条件

右外连接为

  • select 字段列表 
  • from 表1 
  • right [outer] join 表2 on 条件

3.6.4、子查询

 其概念:查询中嵌套查询,称嵌套查询为子查询

特点:

  1.  子查询都放在小括号内
  2. 子查询可以放在from后面、select后面、where后面、having后面,但一般放在条件的右侧
  3. 子查询优先于主查询执行,主查询使用了子查询的执行结果
  4. 子查询根据查询结果的行数不同分为以下两类:
    1. 单行子查询
      1. 结果集只有一行
      2. 一般搭配单行操作符使用:> < = <> >= <= 
      3. 非法使用子查询的情况:
        1. 子查询的结果为一组值
        2. 子查询的结果为空
    2. 多行子查询
      1. 结果集有多行
      2. 一般搭配多行操作符使用:any、all、in、not in
        1. in: 属于子查询结果中的任意一个就行
        2. any和all往往可以用其他查询代替

3.6.5、分页查询

语法:

  • select 字段|表达式,...
  • from 表
  • where 条件
  • group by 分组字段
  • having 条件
  • order by 排序的字段
  • limit 起始的条目索引,条目数;

特点:

  • 起始条目索引从0开始
  • limit子句放在查询语句的最后
  • 公式:select * from  表 limit (page-1)*sizePerPage,sizePerPage

3.6.6、联合查询

语法:

  • select 字段|常量|表达式|函数 from 表 where 条件 union 【all】
  • select 字段|常量|表达式|函数 from 表 where 条件 union 【all】
  •  .....
  •   select 字段|常量|表达式|函数 from 表 where 条件

特点:

  • 多条查询语句的查询的列数必须是一致的
  • 多条查询语句的查询的列的类型几乎相同
  • union代表去重,union all代表不去重
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值