MySQL 基础小总结(一)

一、数据库概述

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

数据库管理系统:
        DataBaseManagement,简称DBMS。
        数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以
        对数据库当中的数据进行增删改查。

常见的数据库管理系统:
            MySQL、Oracle、MS SqlServer、DB2、sybase等....
    
SQL:结构化查询语言
        程序员需要学习SQL语句,程序员通过编写SQL语句,然后DBMS负责执行SQL
        语句,最终来完成数据库中数据的增删改查操作。

        SQL是一套标准,程序员主要学习的就是SQL语句,这个SQL在mysql中可以使用,
        同时在Oracle中也可以使用,在DB2中也可以使用。
    
三者之间的关系?
        DBMS--执行--> SQL --操作--> DB

二、mysql 常用命令

1、mysql 基础命令

1、退出mysql
exit
2、查看mysql中有哪些数据库
show databases;
3、怎么选择使用某个数据库呢
use test;(test为数据库)
4、创建数据库
create database 数据库名;
5、查看数据库下有哪些表
show tables;
6、查看数据库版本号
select version();
7、查看当前使用哪个数据库
select database();
8、终止一条命令的输入
\c
9、怎么将sql文件中的数据导入呢
source 绝对路径.sql

2、sql语句的分类

DQL:
        数据查询语言(凡是带有select关键字的都是查询语句)
        select ...

DML:
        数据操作语言(凡是对表中的数据进行增删改的都是DML)
        insert、delete、update

DDL:
        数据定义语言(凡是带有create、drop、alter的都是DDL)
        主要是对表结构进行操作

TCL:
        事务控制语言
        事务提交:commit
        事务回滚:rollback

DCL:
        是数据控制语言
        授权:grant
        撤销权限:revoke

3、sql 语句的应用

3.1、表的简单查询

1、查看表的结构
desc 表名;
2、查询一个字段
select 字段 from 表名;
3、为表起别名
select 字段 as 别名 from 表名;
注意:字段可以使用数学表达式
4、去重
distinct 字段..
注意:多个字段就是联合去重

3.2、表的条件查询

语法格式:
select 字段... from 表名 where 条件;
条件:
= :等于
<>或!= :不等于
< :小于
<= :小于等于
> :大于
>= :大于等于
between … and … : 两个值之间,等同于 >= and <=
is null :为 null(is not null 不为空)
and :并且
or :或者
in :包含,相当于多个 or(not in 不在这个范围中)
not :not 可以取非,主要用在 is 或 in 中
like :like 称为模糊查询,支持%或下划线匹配%匹配任意个字符
        下划线,一个下划线只匹配一个字符

3.3、表的排序

排序的语法
select 字段... from 表名 order by 字段 asc; // 默认是升序!!!
asc:表示升序
desc:表示降序

3.4、单行处理函数

语法都是函数名+括号
掌握:
substr取子串:(substr(被截取的字符串,起始下标,截取的长度))
length :取长度
trim :去空格
Ifnull :可以将 null 转换成一个具体值
了解:
Lower:转换小写
upper:转换大写
str_to_date:将字符串转换成日期
date_format:格式化日期
format:设置千分位
round:四舍五入
rand():生成随机数

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

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

注意:分组函数在使用的时候必须先进行分组,然后才能用。
        如果你没有对数据进行分组,整张表默认为一组
        分组函数自动忽略空值,不需要手动的加 where 条件排除空值

组合聚合函数:

select count(字段),sum(字段),avg(字段),max(字段),min(字段) from 表名;
+----------+----------+----------+-------------+----------+
| count(*) | sum(sal) | max(sal) | avg(sal)    | min(sal) |
+----------+----------+----------+-------------+----------+
|       14 | 29025.00 |  5000.00 | 2073.214286 |   800.00 |
+----------+----------+----------+-------------+----------+

3.6、分组查询(非常重要)

将之前的关键字全部组合在一起,来看一下他们的执行顺序?
select ... from ... where ... group by ... order by ...

以上关键字的顺序不能颠倒,需要记忆。
执行顺序是什么?
    1. from    
    2. where
	3. group by
	4. select
	5. order by

为什么分组函数不能直接使用在where后面?
select ename,sal from emp where sal > min(sal);//报错。
因为分组函数在使用的时候必须先分组之后才能使用。
where执行的时候,还没有分组。所以where后面不能出现分组函数

使用having可以对分完组之后的数据进一步过滤。
having不能单独使用,having不能代替where,having必须
和group by联合使用。
语法:select ... from ... where ... group by ... having ... order by ...
注意:为了效率,尽量使用where进行过滤

优化策略:
	where和having,优先选择where,where实在完成不了了,再选择having。

3.7、单表查询大总结

select ... from ... where ... group by ... having ... order by ...
	
以上关键字只能按照这个顺序来,不能颠倒。
执行顺序?
	1. from
	2. where
	3. group by
	4. having
	5. select
	6. order by
	
从某张表中查询数据,
先经过where条件筛选出有价值的数据。
对这些有价值的数据进行分组。
分组之后可以使用having继续筛选。
select查询出来。
最后排序输出!

单表查询总结。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值