MySQL day1

目录

MySQL

什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么?

数据库:

  • 英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。
  • 顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。

数据库管理系统:

  • DataBaseManagement,简称DBMS。
  • 数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以对数据库当中的数据进行增删改查。
  • 常见的数据库管理系统:
    MySQL、Oracle、 MS SqlServer、 DB2、 sybase等…

SQL:结构化查询语言

  • 程序员需要学习SQL语句,程序员通过编写SQL语句,然后DBMS负责执行SQL语句,最终来完成数据库中数据的增删改查操作。

三者之间的关系?
DBMS——执行——>SQL——操作——>DB

MySQL常用命令

退出

  • exit

查看MySQL中有哪些数据库?

  • show databases;
  • mysql默认自带4个数据库。

创建数据库

  • create database 数据库名;

使用数据库

  • use 数据库名;

查看有哪些表

  • show tables;

查看MySQL数据库版本号

  • select version();

查看当前使用的数据库

  • select database();

数据库最基本单元:表,table

任何一张表都有行和列:

  • 行(row):被称为数据/记录。
  • 列(column):被称为字段。
  • 每个字段都有字段名,数据类型,约束等属性。

SQL语句的分类

  • DQL:数据查询语言(凡是带有select关键字的都是查询语句)
    select…
  • DML:数据操作语言(凡是对表当中的数据进行增删改的都是DML)这个主要是操作表中的数据data。
    insert(增) delete(删) update(改)
  • DDL:数据定义语言(凡是带有create、drop、 alter 的都是DDL)
    DDL主要操作的是表的结构。不是表中的数据。
  • TCL:是事务控制语言
    包括:事务提交:commit;事务回滚:rollback;
  • DCL:是数据控制语言。
    例如:授权grant、 撤销权限revoke…

怎么查看表中数据?

  • select * from 表名;

不看数据,只看表结构?

  • desc 表名;

简单查询

查询一个字段?

  • select 字段名 from 表名;
  • 其中要注意:
    select和from都是关键字。
    字段名和表名都是标识符。
  • 强调:
    对于SQL语句来说,是通用的,
    所有的SQL语句以";"结尾。
    另外SQL语句不区分大小写,都行。

查询两个或多个字段?

  • 使用“,”号隔开。

查询所有字段?

  • 使用“ * ”号代替字段名。

给查询的列起别名?

  • 使用as关键字起别名。
  • 例:select dname as deptname from dept;
    注意:只是将显示的查询结果列名显示为deptname,原表列名还是叫:dname。
  • as关键字可以省略,用空格代替。
  • 别名里面有空格,需要用单引号括起来。

字段可以使用数学表达式

条件查询

什么是条件查询?

不是将表中所有数据都查出来。是查询出来符合条件的。
语法格式:
select
字段1,字段2,字段3…
f rom
表名
where
条件;

都有哪些条件?

  • = 等于
  • <> 或 != 不等于
  • < 小于
  • <= 小于等于
  • 大于 >
  • 大于等于 >=
  • between … and …两个值之间,等同于>= and <=
    注意:
    1. 使用between and的时候,必须遵循左小右大。
    2. between and 是闭区间,包括两端的值。
  • is null为null (is not null不为空)
    注意:
    在数据库中NULL不能使用等号进行衡量,需要使用 is null /is not null
  • and 并且
  • or 或者
  • in 包含,相当于多个or(not in不在这个范围中)
  • not not可以取非,主要用在 is 或 in 中
  • like
    称为模糊查询,支持%或下划线匹配
    % 匹配任意多个字符
    下划线:任意一个字符

排序

查询所有员工薪资,排序?

  • 使用order by。
    select
    ename , sal
    from
    emp
    order by
    sal ;

默认升序。

怎么降序?

  • 使用desc
    select
    ename , sal
    from
    emp
    order by
    sal desc;

指定升序?

  • 使用asc
  • select
    ename , sal
    from
    emp
    order by
    sal asc;

按两个或多个字段排序?

  • 查询员工名字和薪资,要求按照薪资升序,如果薪资一样的话,再按照名字升序排列。
    select
    ename , sal
    from
    emp
    order by
    sal asc,ename asc;
    说明:sal在前,起主导,只有sal相等时,才会考虑ename排序。

根据字段位置也可以排序(不建议)

  • 按照查询结果的第二列sal排序:
    select ename,sal from emp order by 2;

数据处理函数

又称为单行处理函数

  • 特点:一个输入对应一个输出。
    相对的多行处理函数,特点:多个输入对应一个输出。

常见单行处理函数

  • Iower 转换小写
  • upper 转换大写
  • substr 取子串 (substr(被截取的字符串,起始下标,截取的长度))
  • concat 拼接
  • length 取长度
  • trim 去空格
  • str_to_date 将字符串转换成日期
  • date_ format 格式化日期
  • format 设置千分位
  • round 四舍五入
  • rand ( ) 生成随机数
  • ifnull 可以将null转换成一个具体值
    ifnull是空处理函数,专门处理空的。
    在数据库中,只要有NULL参与的数学运算,最终结果就是NULL。
    函数用法:ifnull(数据,被当做的值)

分组函数(多行处理函数)

有哪些函数?

  • count 计数
  • sum 求和
  • avg 平均值
  • max 最大值
  • min 最小值

注意:

  1. 分组函数在使用的时候必须先进行分组,然后才能用。
  2. 如果你没有对数据进行分组,整张表默认为一组。

使用的注意事项

  • 分组函数自动忽略NULL,不需要对NULL提前处理。

  • 分组函数中count(*)和count(具体字段)有什么区别?

    count(具体字段):表示统计该字段下所有不为NULL的元素的总数。
    count(*):统计表当中的总行数。(只要有一行 数据count则++)。

  • 分组函数不能直接使用在where语句中。

  • 所有分组函数可以组合一起使用。

分组查询

什么是分组查询?

在实际的应用中,可能有这样的需求,需要先进行分组,然后对每一组的数据进行操作。这个时候我们需要使用分组查询,怎么进行分组查询呢?
select …
from …
group by …

执行顺序

  • from --> where --> group by --> select --> order by
    分组函数不能在where语句后面,因为按执行顺序,这时候还没有分组。

重要结论

  • 在一条select语句当中,如果有group by语句的话,select后面只能跟:参加分组的字段,以及分组函数。其它的一律不能跟。

having

  • 使用having可以对分完组之后的数据进一步过滤。having不能单独使用,having不 能代替where,having必须和group by联合使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mysql interval 1 day 表示MySQL中的时间间隔函数,表示间隔1天。在MySQL中,可以使用interval函数来进行时间间隔的计算,例如interval 1 day表示间隔1天,interval 1 hour表示间隔1小时,interval 1 minute表示间隔1分钟,interval 1 second表示间隔1秒钟。这个函数可以用于日期时间的加减运算,例如可以计算出某个日期加上1天后的日期。 ### 回答2: mysql interval 1 day是MySQL数据库中的一个时间函数,表示在日期或时间中添加1天的时间间隔。它可以在查询中用来计算日期或者时间的差异,或在WHERE子句中过滤出指定时间段内的数据。 mysql interval 1 day函数可以用于日期或时间类型的字段,比如DATETIME、DATE、TIMESTAMP等。它的语法如下: SELECT * FROM table_name WHERE date_field >= DATE_ADD(NOW(), INTERVAL 1 DAY) 以上语法意思是,查询table_name表中日期字段date_field大于等于当前时间(NOW())加上1天(INTERVAL 1 DAY)的所有记录。 除此之外,mysql interval函数还支持其他的时间单位,例如:YEAR、MONTH、HOUR、MINUTE、SECOND等。它们可以用来计算时间差值,例如: SELECT DATEDIFF('2022-12-31', '2022-11-01') 以上语句用于计算2022年12月31日和2022年11月01日之间相差的天数(即两个日期之间的时间间隔)。 总的来说,mysql interval 1 day函数非常方便实用,可用于各种应用场景中,如日常的数据处理、数据统计、时间计算等等。 ### 回答3: MySQL中的interval指定时间间隔的语法是interval [value] [unit],其中value表示时间间隔的数值,unit表示时间间隔的单位,比如day表示天,hour表示小时,minute表示分钟,以此类推。 当使用interval 1 day时,表示时间间隔为1天。在MySQL中,可以将interval应用于一些查询中,例如SELECT语句,用于计算日期或时间的增量或减量。具体来说,使用interval 1 day可以在日期上加上1天,也可以在日期上减去1天。比如: SELECT NOW() + INTERVAL 1 DAY; // 现在时间加1天 SELECT CURDATE() - INTERVAL 1 DAY; // 今天日期减1天 此外,在MySQL中还有其他常用的interval用法,例如: - interval 1 minute :表示时间间隔为1分钟 - interval 1 week :表示时间间隔为1周 - interval -1 month :表示时间间隔为-1个月(即往前推1个月) - interval 2 hour 30 minute :表示时间间隔为2小时30分钟 总之,interval在MySQL中是常用的一个时间间隔单位,通过合理运用interval,可以更加灵活地处理时间和日期相关的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值