Mysql基础
概述
-
数据库(DB):存储和管理数据的仓库
-
数据库管理系统(DBMS):专门用于管理数据库的计算机系统软件
数据库分类
关系型数据库
- DBMS , Oracle ,DB2,MySQL ,SQL Server
非关系型数据库
- ORDBMS ,NoSQL not only sql
SQL
- 数据查询语言(DQL)
- 数据操作语言(DML)
- 事务处理语言(TPL)
- 数据控制语言(DCL)
- 数据定义语言(DDL)
- 指针控制语言(CCL)
表与对象间的关系
ORM思想(对象关系映射)
- 表结构对应 – JavaBean类
- 表中的字段 --JavaBean类中的属性
- 表中一条(一行)数据 --JavaBean中的一个实体
MySQL操作
表的约束
- 非空约束 : not null
- 唯一约束: unique
- 主键约束: primary key ,非空且唯一(一般不作为业务需求)
- 主键自增长:auto_increment
- 外键约束: foreign key
DDL(创建表与删除表)
#创建表
create table 表名(
列名1 列类型 [约束],
......
);
#删除表
drop table 表名;
DML
- 插入操作
insert into 表名 (字段1,字段2,字段3...) values(值1,值2,值3..);
insert into 表名 values(值1,值2,值3..);
- 更新操作
update 表名 set 字段1=值1 ,字段2=值2;(改变字段的值) [where] 条件
DQL
- 查询操作
select 列名1,列名2,列名3 ... from 表名 [where];
select * from 表名 查询表名的所有信息
消除结果重复数据 select distinct 列名,....from 表名;
注意
查询语句的字句执行顺序
select 子句 执行在 where 子句之后
from > where >select>order by
- 设置别名 AS
select 列名 as(可省略) 别名 from 表名 [where条件]
注意as别名不能用在where条件语句中(会报错)用原值代替就行
- 拼接 concat
concat(字符串1 ,字符串2,...)
- 逻辑运算符
AND(&&) , OR(||), NOT(!)
优先级: NOT > AND >OR
- 范围匹配
between A and B :必须是个范围(包含等于) ,可以用于日期
集合查询 in:判断列的值是否在指定的集合中
- 判空
where 列名 is null ;
is null : 新添的没有加过数据的才为空,把之前有数据的去掉不叫为空(只是空字符串)
- 模糊匹配查询 LIKE
-
通配符 %: %5(查询以5为结尾的所有数据) 5%(查询以5为开头的数据) %5%(查询包含5的所有数据)
-
通配符_ :匹配任意一个字符
- 结果排序 ORDER BY
order by 子句出现在select语句的最后
ASC :升序(默认)
DESC:降序
MySQL分页查询
当前页:currentPage
select <selectList> from 表名 [where] limit ?,?
第一个? :开始行的索引 beginIndex
第二个? :每页显示的条数(最大的记录数) pageSize
beginIndex =(currentPage-1)*pageSize
统计函数
- count(*):统计表中有多少条记录
- sum(列):列的总和
- max(列):获取某一列中的最大值
- min(列):获取某一列的最小值
- avg(列):获取列的平均值