一.数据库
1.1为什么要使用数据库(DataBase:DB)
因为使用 XML 或者文件里只能通过线性搜索,从头到尾去找,效率很低
而使用数据库,就能大大的提高数据的操作效率
1.2_什么是数据库
数据库是按照数据结构来组织、存储和管理数据的仓库储存和管理数据的仓库
数据库对象: 存储,管理和使用数据的不同结构形式,如:表、视图、存储过程、函数、触发器、事件等。
数据库:存储数据库对象的容器
1.3_数据库管理系统 DBMS
DBMS (Database Management System):专门用于管理数据库的计算机系统软件
1.4_数据库应用系统
DataBase Application System:使用数据库技术的系统;基本上所有的信息管理系统都是数据库应用系统。因为基本上需要用到数据库。
2.1_数据库发展流程
1.层次数据库和网状数据库技术阶段;
使用指针来表示数据之间的联系
2.关系数据库技术阶段(表,使用表这种关系将数据组织起来的);
经典的里程碑阶段。代表 DBMS: Oracle、DB2、MySQL、SQL Server等。
3.非关系数据库技术阶段
随着大数据的不断发展,关系型数据库在数据模型,性能,拓展伸缩性上存在一个的缺点,所以非关系型的数据库现在成了一个极其热门的新领域
二.SQL
01.什么是SQL ?
人和人交流需要语言,人和计算机交流也需要语言,这个语言就是SQL语言
SQL:结构化查询语言(Structured Query Language),是关系型数据库的标准语言,特点是简单,灵活,功能强大
02.SQL包含六个部分
数据查询语言(DQL)
数据操作语言(DML)
事务处理语言(TPL):
数据控制语言(DCL):
数据定义语言(DDL)
-
指针控制语言(CCL):
三.MySQL
01.MySQL列的常用的类型
MySQL | Java |
---|---|
INT | int |
BIGINT | long |
DECIMAL | BigDecimal |
DATE/DATETIME | java.util.Date |
VARCHAR | String |
02.表的操作
02.1_创建表
CREATE TABLE 表名 (
列名1 列的类型 [约束],
列名2 列的类型 [约束],
....
列名N 列的类型 约束
);
-- 注意:最后一行没有逗号
02.2_删除表
-- 删除表
DROP TABLE `order`;
02.3_表的约束(理解)
表的约束(针对于某一列):
- 非空约束:NOT NULL,不允许某列的内容为空。
- 设置列的默认值:DEFAULT。
- 唯一约束:UNIQUE,在该表中,该列的内容必须唯一
- 主键约束:PRIMARY KEY, 非空且唯一。
- 主键自增长:AUTO_INCREMENT,从 1 开始,步长为 1。
- 外键约束:FOREIGN KEY,A表中的外键列. A表中的外键列的值必须参照于B表中的某一列(B表主键)
主键设计 :
- 单字段主键,单列作为主键,建议使用。
- 复合主键,使用多列充当主键,不建议。
主键分为两种 :
- 自然主键: 使用有业务含义的列作为主键 (不推荐使用);
- 代理主键:使用没有业务含义的列作为主键 (推荐使用);
结论: 使用单字段的代理主键
-- 移除存在的表
DROP TABLE IF EXISTS `t_student`;
-- 创建表
CREATE TABLE t_student(
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(25) UNIQUE,
email VARCHAR(25) NOT NULL,
age INT DEFAULT 18
);
03.DML 操作(掌握)
DML 数据操作语句,用户对表的数据做增删改操作。
所有的 DML 操作有一个受影响行,表示 SQL 执行,操作了多少行数据。
3.1插入操作
语法: 插入多个是MySQL的独有语法
-- 单个插入
INSERT INTO 表名 (列1,列2,column3...) VALUES(值1,值2,value3...);
-- 多个插入
INSERT INTO 表名 (列1,列2,column3...) VALUES(值1,值2,value3...),(值1,值2,value3...),...;
-- 插入查询结果
INSERT INTO t_student(列1,列2,column3...) SELECT 列1,列2,column3... FROM t_student
04.DQL查询操作
4.1 比较运算符
跟据条件查询字符串要用双引号括起来
where 后不能使用别名,因为执行顺序的原因
查询语句的子句执行顺序
FROM 字句=>WHERE 字句 =>SELECT字句
4.2逻辑运算符
运算符优先级:
优先级 运算符
1 所有比较运算符
2 NOT
3 AND
4 OR
注意:括号将跨越所有优先级规则
4.3判空
-- 判断是否是null
SELECT * FROM 表名 WHERE 列名 IS NULL
-- 判断是否是空字符
SELECT *FROM 表名 WHERE 列 =''
4.4模糊匹配查询
% 表示有多个或者0个任意字符
_ :表示需要一个字符
语法
SELECT * FROM 表名 WHERE where 列名 like '%m_'
4.5 排序
DQL 字句的执行顺序(重点掌握)
FROM 子句 : 从哪张表中去查数据
WHERE 子句: 筛选需要的行数据
SELECT 子句: 筛选需要显示的列的数据
-
ORDER BY 子句: 排序操作
-- 多条排序 DESC 从大到小 ASC 默认从小到大 SELECT * FROM product ORDER BY dir_id DESC,salePrice ASC
数据备份和恢复
忠告: 在企业修改数据库之前先备份
MySQL 自身的数据库维护
通过 cmd 命令进入dos窗口:
1.导出:mysqldump -u账户 -p密码 数据库名称 > 脚本文件存储地址
mysqldump -uroot -padmin jdbcdemo > D:/jdbcdemo_bak.sql
2.导入:mysql -u账户 -p密码 数据库名称 < 脚本文件存储地址
mysql -uroot -padmin jdbcdemo < D:/jdbcdemo_bak.sql
Navicat 工具的导入和导出:
Navicat 工具的备份和还原: 需要工具支持的格式才可以恢复