相关概念
- 数据库:存储数据的仓库,数据是有组织的进行存储。简称DB
- 数据库管理系统:操纵和管理数据库的大型软件。简称DBMS 例如:Oracle、Mysql、Sqlserver、SQLite
- SQL:操作关系型数据库的编程语言,定义了一套关系型数据库统一标准
mysql有社区版和商业版。
mysql数据模型
关系型数据库,由多张互相关联的二维表组成的数据库。
SQL
通用语法
- 单行或者多行书写,以分号结尾。
- 可以使用空格/缩进来增强可读性
- 不区分大小写,关键字建议大写
- 注释:
- 单行--注释内容 或者 #注释内容(独有)
- 多行 /*注释内容*/
分类
- DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)
- DML:数据操作语言,用来对数据库表中的数据进行增删改
- DQL:数据查询语言,用来查询数据库中表的记录
- DCL:数据控制语言,用来创建数据库用户,控制数据库访问权限
DDL:
数据库操作:show database; select database();创建:create database [if not exits] 数据库名 [] drop database 数据库名。
表的操作:show tables; desc 表名(查询表结构); show create table 表名(查询指定表的建表语句); comment '字段名'
数据类型:数值,字符,时间
varchar尽量要保证符合实际情况,应为实际上在取值的时候,是在内存中开辟vatchar(1024)中最大的数值开辟。尽管存储为1字节,但是也要开辟1m内存空间。
修改表的操作:alter 表名 modify 字段名 类型 【comment 注释】【约束】(添加字段);
alter 表名 change 旧字段名 新字段名 类型 【comment 注释】(修改字段类型)
alter 表名 drop 字段名 (删除字段)
alter 表名 rename to 新表名
truncate table 表名 删除指定表,并且重新创建。
DQL:
select
from
where
group by
having
order by
limit
聚合函数 count max min avg sum 所有的null不参与聚合函数的运算
分组查询:select 字段名 from 表名 where 条件 group by 分组字段名 having 分组后的过滤条件
where 和having 区别:where是分组前条件过滤,不参与分组,haiving是分组后对结果的过滤;where不能使用聚合函数,having可以使用聚合函数当作条件。
执行顺序:where>聚合>having
分组后,查询的字段一般为聚合函数和分组字段,查询其他参数无任何意义。
分页查询:select from limit 起始索引,查询记录数
起始索引是从0开始,起始索引=(查询页码-1)*个数
DQL执行顺序
DCL:管理数据库用户,控制用户访问权限。