1.入门概念
- 数据库:以某种有组织的方式存储的数据集合。
- 表:某种特定类型数据的结构化清单。
- 列:表中的一个字段。所有的表都是由一个或者多个列组成的。
- 数据类型:所容许的数据的类型。每个表列都由相应的数据类型,它限制(容许)该列中存储的数据。
列名定义要存储的是啥,类型定义存储的格式。 - 行:表中的一条记录。
- 主键:一列(一组列),其值能够唯一区分表中每个行。
- 任意两行都不具有相同的主键;
- 每个行都具有一个主键值(主键列不允许NULL值)。
主键的特征:唯一,不能为空。
- DBMS:数据库软件系统。
2.SQL
SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库通信的语言。
3.MySQL简介
MySQL是一种数据库软件系统(DBMS)。
4.了解数据库和表
show命令
- SHOW DATABASES:返回可用数据库的一个列表。包含在这个列表中的可能是MySQL内部使用的数据库。
- SHOW TABLES:返回当前选择的数据库内可用表的列表。
- SHOW ENGINES:查看支持的引擎
- show variables like ‘%storage_engine%’:查看当前引擎
- SHOW CREATE DATABASE和SHOW CREATETABLE,分别用来显示创建特定数据库或表的MySQL语句;
- SHOW GRANTS,用来显示授予用户(所有用户或特定用户)的安全权限;
- SHOW ERRORS和SHOW WARNINGS,用来显示服务器错误或警告消息。
5.数据操作
- SQL语句不区分大小写,因此SELECT与select是相同的。
- 多条SQL语句必须以分号(;)分隔。
- 排序:默认是升序。降序使用“desc”字段。要想实现多个降序,需要对每个字段添加“desc”。
- 获取某个字段最大日期的值,可以通过降序和limit来获取。
- like通配符的使用
MySQL的日期函数
聚集函数
avg、count、sum、max、min
count:
- 如果指定列名,则指定列的值为空的行会被忽略;
- count(*)不会忽略null值。
DISTINCT
-
SELECT DISTINCT 列名称 FROM 表名称
分组数据
having的使用过滤分组
select语句的执行顺序:
6.联结表
分解数据为多个表能更有效地存储,更方便地处理,并且具有更大的可伸缩性。
组合查询
利用UNION,可把多条查询的结果作为一条组合查询返回,不管它们的结果中包含还是不包含重复。使用UNION可极大地简化复杂的WHERE子句,简化从多个表中检索数据的工作。
union all
UNION从查询结果集中自动去除了重复的行。如果不想去重可以采用union all来进行连接。