1.相关概念
数据库:[DataBase DB]是按照数据结构来组织、存储和管理的数据仓库.
数据库管理系统[DataBase Management System DBMS]: 专门用来管理数据库的计算机系统软件
定义、建立、维护、查询 、统计等功能 完成我们数据的完整性、安全性
2.了解一下数据库发展史
网状层次模型数据库
关系型数据库 我们今天学习的
MySQL Oracle DB2 SqlServer非关系型数据库
Redis MongoDB
3.SQL介绍 [掌握]
SQL是结构化查询语言,是关系型数据库的标准语言。
简单 灵活 功能强大
SQL包含的6个部分
数据查询语言 DQL select where order by group by 查询
数据操作语言 DML
insert update delete 增加 更新 删除事务处理语言 TPL
begin transaction commit rollback 事务的操作 ACID数据控制语言 DCL
grant revoke 做权限的授权 和移出权限数据定义语言 DDL
create drop 创建表 删除表指针控制语言 CCL
FETCH 对一个表 或者多个表单独行的操作
4.其他
行 标识一个实体,一条记录
列 字段 数据项
表和对象的ORM
5.数据库操作和数据库存储引擎
数据库对象:存储、管理、使用数据库不同的结构形式 ---》 表 视图 存储过程 函数 触发器 事件
数据库: 是存储数据库对象的容器
数据库操作
--查看数据库服务器存在哪些数据库
SHOW DATABASES;
-- 使用某一个数据库
USE jpa;
-- 查看指定的数据库中存在几张表
SHOW TABLES;
-- 创建数据库
CREATE DATABASE test0324;
-- 删除数据库
DROP DATABASE test0324;
数据库存储引擎
什么是存储引擎?
它是一个术语,其他数据库中没有(oracle中不叫这个名字)
一个表存储/组织数据的方式
不同的存储引擎,表存储的 方式是不一样的!!!
MyISAM : 拥有高效的插入、查询速度,但是不支持事务,不支持外键
InnoDB : 支持事务 支持外键 支持行级锁,性能较低。 默认的存储引擎存储引擎是重点面试会问!!!
MySQL 中常用的数据类型
MySQL java
int int
bigint long
bit boolean
decimal BigDecimal
Date/datetime java.util.Date
varchar Stringint
decimal(5,2)
varchar(100)bit
表的约束
表的约束是针对于数据库表中的某一列!!!
主键约束 PRIMARY KEY 非空且唯一
主键自增: auto_increment 从1开始,步长为1
非空约束 NOT NULL
默认值 default
唯一约束 UNIQUE 该表中列的内容要唯一
外键约束 FOREIGN KEY A表和C表有关联
完整性 准确性
非空约束 限制字段不可以为null not null
唯一约束 保证字段所有的数据,不重复 unique
主键约束 主键是一行数据的唯一标识,要求非空且唯一 primary key
默认约束 给字段设置某一个指定好的默认值 default
检查约束 保证数据满足某一个条件 check 对数据库的版本有要求,我们5.X不支持
外键约束 两张表之间建立联系,保证数据的完整性 foreign key
-- 添加外键约束
alter table 从表 add constraint 外键名[fk_从表_主表]
foreign key (从表外键字段名) references 主表(主表列名);
DQL 查询操作
可以将两个字段的值和汉语拼接得到自己想到的结果集
SELECT CONCAT(p_name,'的id是',p_id) 合并 FROM product_info
语法
select 列1,列2,列3............ from 表名 [where]select * from 表名 --》 不推荐使用!!!!!
运算符别名 as
按照格式输出
过滤
语法
select <selectList>
from 表名
where 条件;
比较运算符
= > >= < <= != <>逻辑运算符
and or not
in 在某个范围not in 不在某个范围
查询某个指定的范围
between 1000 and 3000null的判断
SELECT * FROM product_info WHERE type_id IS NULL
模糊查询 !!!!
排序
asc 升序
desc 降序DQL字段的执行顺序
from 从那张表中查询数据
where 筛选需要的行数
select 筛选显示的列的数据
order by 排序操作select from where order by asc desc !!!