MySql基础 DQL语言

本文详细介绍了MySQL数据库的安装、启动、常用命令及语法规范,并深入讲解了DQL语言,包括查询操作、函数应用、各种查询方式,如简单查询、模糊查询、排序和分组等。此外,还涵盖了连接查询、子查询和联合查询等内容,是学习MySQL数据库和SQL查询语言的实用指南。
摘要由CSDN通过智能技术生成

目录

一、MySQL

1、概念

2、安装

3、服务启动

4、常用命令

5、语法规范

二、DQL语言

1、常用操作

2、常用函数

单行函数

分组函数

3、查询方式

简单查询

模糊查询

排序查询

分组查询

连接查询

子查询

分页查询

联合查询


一、MySQL

1、概念

        MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。

2、安装

        下载链接:MySQL :: Download MySQL Community Server

        安装教程:MYSQL数据库安装教程_zzuli_xiaomingke的博客-CSDN博客_数据库安装

3、服务启动

        管理员方法启动命令提示符

        启动服务:net start mysql

         关闭服务:net stop mysql

4、常用命令

  • show databases; 查看当前所有数据库
  • use 库名; 打开指定的库
  • show tables; 查看当前库的所有表
  • show tables from 库名; 查看其他库的所有表
  • create table 表名( 列名 列类型,列名 列类型;。。。); 创建表
  • desc 表名; 查看表结构
  • select version() 登录进mysql查看版本
  • mysql --version 没有登录mysql,在命令行查看,或者mysql --V

5、语法规范

  1. 不区分大小写,建议关键字大写,表名,列名小写
  2. 每条命令最好用分号结尾
  3. 每条命令根据需要,可以进行缩进或换行
  4. 注释

        单行注释:#注释文字
        单行注释:-- 注释文字
        多行注释: /* 注释文字 */

二、DQL语言

1、常用操作

常用操作

  • select   常量值; 查询常量值
  • select   表达式; 查询表达式
  • select   函数; 查询函数

起别名
        1、便于理解
        2、如果要查询字段有重名的情况,使用别名来区分

去重(distinct关键字)放在select之后

+号的作用

  • 两者都为数值型,进行加运算
  • 其中一者为字符型的数值,将其转换为数值型,进行加运算
  • 其中一者为字符,转换失败,将字符转为0,进行加运算
  • null + 10 ,其中一者为null,结果一定为null

运算符
        条件运算符:  >  <  =  !=  <>  >=  <=
        逻辑运算符:  &&  ||  !  and  or  not

连接字符  concat(字符1,字符2,。。。)

2、常用函数

单行函数

                                                                字符函数

函数用法
length()获取字符长度
concat()拼接字符
upper()转大写
lower()转小写
substr()

截取字符(sql中下标从1开始)

substr(字符,初始位置)

substr(字符,指定初始位置,指定字符长度)

instr()

子字符在父子符第一次出现的位置

instr(父子符,子字符)

trim()

去两端指定字符(默认为空格)

trim(字符)
trim(指定字符 from 字符)去掉两端指定字符

lpad()

用指定字符左填充到指定长度

lpad(字符,字符长度,填充字符)

rpad()用指定字符右填充到指定长度
注:指定长度小于字符长度,会从右截取字符
replace()替换字符
replace(字符,被替换字符,替换字符)

                                                                数学函数

函数用法
round()

四舍五入函数

round(数值)
round(数值,保留位数)

ceil()向上取整
floor()向下取整
truncate()

截断

truncate(数值,保留位数)不进行四舍五入

mod()

取余函数

                                                                日期函数

函数用法
now()返回当前系统日期+时间
curdate()返回当前系统日期
curtime()返当前系统时间
year(日期)
month(日期)
monthname(日期)英文名称
获取指定的的部分
str_to_date()日期格式的字符转为指定格式的日期
str_to_date('9-13-1999', '%m-%d-%Y')
date_format()

将日期转化为字符
date_format('2018/6/6','%Y年%m月%d日')

格式符:%Y 四位的年份                       %y 两位的年份        %m 月份(01,02,03   ...)      

              %c 月份(1,2,3   ...)        %d 日                      %H 小时(24小时制)

              %h 小时(12小时制)            %i 分钟                    %s 秒

                                                               流程控制函数

if else
        if(判断语句,true执行,false执行)
case函数
        使用一:类似switch...case
                case 表达式或字段
                when 常量1 then 要显示的值1或语句1;
                when 常量2 then 要显示的值2或语句2;
                ...
                else 要显示的值n或语句n;
                end
                (then后面 值不用加分号,语句要加分号)
        使用二:类似多重if
                case
                when 条件1 then 要显示的值1或语句1;
                when 条件2 then 要显示的值2或语句2;
                ...
                else 要显示的值n或语句n;
                end

分组函数

  • sum()求和
  • avg()求平均值
  • max()求最大值
  • min()求最小值
  • count()求个数

特点:

A、sum、avg一般用于处理数值,max、min、count可以处理任何类型
B、以上分组函数都忽略了null值

3、查询方式

简单查询

 select   查询列表   from   表名; (查询多个字段用逗号隔开)

模糊查询

1、like 关键字
                % 匹配任意个字符
                _ 匹配任意单个字符
                $ 转义
2、between and
3、in 关键字
        in (匹配列表);in 列表的值类型必须一致或者兼容
4、is null | is not null 
        可以判断null值
        = 和 <> 不能判断null值
5、<=>安全等于
        既可以判断null值,也可以判断普通值

排序查询

order by 排序列表 [ asc | desc ]         根据排序列表排序;
asc 升序(默认,可不写);desc降序

分组查询

> select 分组函数,列(要求出现在group by的后面)from 表 

>【where 筛选条件】 group by 分组的列表【having 分组后再筛选】【order by 子句】

连接查询

语法
select 查询列表 from 表1 别名 【连接类型】
join 表2 别名 on 连接条件
【where】【group by】【having】【order by】
连接类型
        内连接:inner
        外连接
                左外:left [outer] 左边的为主表
                右外:right [outer] 右边的为主表
                全外:full [outer]
        交叉连接:cross (笛卡尔乘积)

子查询

分类:
按子查询出现的位置

  • select后面:仅仅支持标量子查询
  • from后面:支持表子查询
  • where或having后面:标量子查询、  列子查询 、行子查询
  • exists后面(相关子查询):(结果只有1和0)(判断是否有结果) 表子查询

按结果集的行列数不同

  •  标量子查询(结果集只有一行一列)
  •  列子查询(结果集只有一列多行)
  • 行子查询(结果集有一行多列)
  • 表子查询(结果集一般为多行多列)

分页查询

        语句末尾 limit 起始位置 , 要显示的行数 (索引从0开始) 

联合查询

关键字:union
语法:语句一 union 语句二 union 语句三 .... 
应用场景:查询结果来自不同表,且无直接关系,但查询信息一致时。
特点:

  • 要求多条查询语句的查询列数是一致的
  • 要求多条查询语句的查询的每一列的类型和顺序最好一致
  • union默认去重,使用union all可以包含重复项
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值