MySQL 学习日记day1

MySQL day1 学习日记

SQL语言

  1. DQL(Data query Language) 数据库查询语言,用于查询
  2. DML(Data Manipulation Language) 数据库管理语言,用于增删改
  3. DDL(Data Definition Language)数据定义语言
    用于定义数据库的结构 创建、修改、删除数据库对象
  4. DCL(Data Control Language) 数据控制语言 用于定义用户访问权限和安全级别
  5. TCL(T事务 Control Language) 事务控制语言

DQL 数据库查询语言

基础查询

语法: select 查询列表 from 表名;
特点:

  1. 查询列表可以是单个字段、多个字段、函数、常量
  2. 查询结果是个虚拟的表格
别名

①便于理解
如果要查询的字段有重名的现象,可以用别名来区分

  1. as
    select last_name as 姓名 from employees;

  2. 空格
    select last_name 姓名 from employees;
    如果别名中存在特殊字符(空格、#等) 或者想要区分大小写 可以用单引号引起来

去重 distinct

select distinct department_id from employees;

SQL中+ 的作用

SQL中+只有一个功能 那就是运算
如果两个数都是数值型 那就直接做加法运算
如果其中一个是字符型 那就先尝试将字符型转化为数值型再进行运算
转化成功 则继续做加法运算
转化失败 将字符型当做是0进行运算
只要有一方是null,结果永远是null

补充函数 ifnull(str,数)

意思是如果是null值, 那么返回一个指定的数

条件查询

语法: select 查询列表 from 表名 where 条件;
执行顺序
条件运算符 = < > <= >= <>(不等于)
逻辑运算符 and or not
模糊查询
like
between and
in
is null/is not null

模糊查询
like

通常和通配符’_’’%'搭配使用
%多个字符 包括0个字符
_单个字符
SQL中 转义符</font>

between and
  1. 包括边界值
  2. 2个边界值顺序不能颠倒
in

in(str1,str2,…)
用于判断某字段的值是否属于in列表中的某一项

  1. in列表的值类型必须一致或兼容
  2. 不能和通配符搭配
is null/ is not null

用于判断是否为null值
<=> 安全等于
安全等于与is null 比较

排序

语法: select 查询列表 from 表名 [where 条件] order by 排序条件 asc|desc;

order by字段放在最后 除了limit字段更后之外

  1. 如果不写asc|desc 默认升序
  2. 可以支持单个字段、多个字段、表达式、函数
  3. 可以按照别名排序(函数不可以用别名)

常见函数

单行函数
字符函数
  1. concat 拼接
  2. length 参数的字节个数
    utf8中汉字占3个字节
  3. upper lower
    upper变大写 lower 变小写
  4. substr 截断
    两种重载: substr(字符,索引) 意思是把索引所在往后的字段截取下来
    (SQL中索引从1开始)
    substr(字符,开始索引,长度) 意思是从开始索引处开始,截取指定长度的一截字段
  5. instr(str, substr)
    substr在str中第一次出现的索引位置 没有则返回0
  6. lpad 左填充
    lpad(字符,填充字符,总长度) 意思是在被操作字符的左边填充指定字符至指定长度
  7. rpad 右填充
  8. replease 替换
    replease(字符,原先,要替换为的) 把字符中的原先的符号 替换成指定字符
  9. trim() 去掉前后空格
    trim(‘a’,‘aaaaaqaqaaaa’) 结果是qaq
数学函数
  1. round 四舍五入
    两种重载形式
    round(x) 四舍五入
    round(x,数字) 小数点后保留几位小数 round(1.579,2) 结果是1.58
  2. ceil 向上取整
  3. flour 向下取整
  4. truncate截断
  5. mod 取余
日期函数
  1. now() 目前系统时间 带日期带时间
  2. curdate() 目前系统时间,只带日期 不带时间
  3. curtime() 目前系统时间,只带时间 不带日期
  4. year()
  5. month()
  6. monthname()
  7. date()
  8. hour()
  9. minute()
  10. second()
  11. str_to_date(‘9-22 1998’,’%m-%d %Y’)
  12. date_formate() 将日期转换为字符
    date_formate(‘2008-6-9’, %Y年%m月%d日);
其他函数

select version();
select database();
select user();

流程控制函数
  1. if(条件,为真时返回,为假是返回) 类似三元运算符
  2. case
    方式1 类似switch
    switch {
    case 常量值1; 语句1; break;
    case 常量值2; 语句2; break;
    ……
    default;
    }
    case 字段
    when 常量值1 then 要显示的值1或者语句1;(语句1的话要加分号 常量就不用分号)
    when 常量值2 then 要显示的值2或者语句2;
    ……
    else 要显示的值n或语句n; end

方式2 类似多重if

case
when 条件1 then 要显示的值1或者语句1;
when 条件2 then 要显示的值2或者语句2;
……
else 要显示的值n或者语句n; end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值