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来进行连接。