MySql & DQL语言

目录

一、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可以包含重复项

猜你喜欢

转载自blog.csdn.net/H445584704/article/details/121677006
今日推荐