一、数据库的基本认识
1. 为什么要有数据库?什么是数据库?
2. 关于数据库的大体分类
(1)分类1:
A. 网络模型数据库
B. 关系模型数据库(Relation Database Service RDS)
C.图形数据库
(2)分类2:
A. 存储于硬盘上的(持久化存储)
B. 存储于内存上
(3)分类3:
A.功能的实现
B.统计分析(其中大数据方向就是该类数据库的一个分支)
3. 重点学习的为关系型数据库管理系统的使用(MySQL)
(1)下列提到的左侧为关系型数据库管理系统,右侧为No-SQL和大数据方向的数据库管理系统
(2)具体学习内容:
A. 重点学习SQL
B. SQL中重点学习记录的CURD操作
4. MySQL软件的架构
A. 结构:用户通过客户端向服务端提供指令;服务端执行指令的结果通过客户端返回给用户
B. MySQL的服务器程序:
C. 两个不同的MySQL客户端程序
a. MySQL自带的客户端程序: mysql.exe
注:实际上使用命令行的形式就已经能够实现MySQL的功能了,但是对初学者不太友好因此使用后面的图形化界面的客户端程序
b. MySQL Workbench.exe
二、数据库的初识
1. MySQL的链接
2. 一些概念
(1)schema : 一个数据库: 数据组织的一级单位
(2)table :表
A. 表包括行(记录)和列(字段)
B. 创建表和插入记录和创建对象和实例化对象类似
注意:通常情况下,一个应用对应一个数据库的数据
3. 结构的处理(SQL方式了解,重点是图形化界面的操作)
(1) 如何创建一个库
A. SQL
注意1:关于库的名称的命名规则:
注意2:workbench中两种执行SQL的方式。前者是执行选中行的SQL语句,后者是执行光标所在的语句
B. 图形化界面
a. 右键点击下图create scheme按钮
b. 填写名称
c. apply和finish即可
(2) 如何创建一个表
A. 创建表需要注意的点
B. SQL:
create table `库名称`.·表名称`(
`字段1名称` 数据类型 存储约束;
.....
primary key(`主键字段名称`)
)comment = "...";
C. 图形化界面
a. 在一个库下的table点击右键
b. 填写表的名称,字段,以及注释。然后点击右下角的apply即可
D. 补充知识:如何选择默认库
a. 选择需要设置为默认库的库,右键选择设置默认库的英文
b. 双击需要设置为默认库的库
(3) 如何销毁一个库
A. SQL
B. 图形化界面
右键选中一个待删除的库——>选择Drop Schema——>选择Drop now即可
(4) 如何销毁一个表
图形化, 选中某个库下的某个表,右键选择删除表的英文,Drop now即可
4. 关于数据类型
(1)代表数字的类型
(2)代表字符串的类型
注意:这里的字表示的是字符集编码的字
(3)关于日期/时间相关的
5. 数据约束类型
(1)主键:
A. 概念
B. 实践中的用法:
(2)自增约束:
注意:
(3)NOT NULL约束
A. 关于NULL的理解:
B. NOT NULL约束:
C. 如果没有勾选NOT NULL约束:
D. 图形化界面的位置
E. 补充知识:默认值(缺省值)
a. 存在默认值。这个优先于允许为null
b. AI
c. 允许为null
(4) 唯一键
A. 概念
注意:和主键的区别:主键是天生not null但是唯一键是默认情况可以为null的
B. 图形化界面位置
6. 其他辅助操作(主要是用于命令行客户端,图形化界面不需要直接直观显示)(了解)
A. 查看目前MySQL服务中有哪些库
show databases
B. 设置默认库
use 库名;
C. 查看当前的默认库
select database()
D. 处于一个默认库下时,查看该默认库下有哪些表
show table;
E. 查看一些表的结构
a. desc 表名 //描述表的字段信息
b. 显示建表语句
show create table 表名\G
c. 图形化界面(图形化可以点击表然后右键选择Create Statement)即将创建表时候的语句放在粘贴板上
7. SQL分类
三、SQL中的DML
0. SQL基础知识:
(1)SQL以分号" ; "结尾
(2)数据类型使用
A. 数字:直接写,例如1 ; 1.0;
B. 字符串类型:单引号或者双引号括起来,此处为了和java保持一致,之后就统统使用双引号
注意:反引号 ` ` :
C. 时间类型:写成固定规格的字符串
a. 日期:“年-月-日”
b. 时间:“时-分-秒”
c. 日期时间:“年-月-日 时-分-秒”
D. NULL类型:直接写null /NULL
(3)注释:-- 开头的是注释
1. 插入规则
(1)插入的时候必须每个字段都有值,除非有些字段有默认值,则可以省略这些字段(当然也可以不省略)。否则报错,如图
(2)插入的表必须是默认库下的表
(3)表类似于一个set集合,如果插入已经存在的一模一样的记录(所有字段的值都相同,或者唯一键的值相同),就会报错,如下图例子:name是唯一键,因此报错
引出另外一个问题:如果再次添加记录,会发现id 2因为上面的错误插入被消耗了,因此自增只能保证单调递增
(4)不满足 not null约束,报错
(5)不满足数据类型,报错
(6)插入规则总结:
注意:当使用默认的字符集编码的时候,不能使用中文,插入中文就会报错
(7)语法:
insert into 表名 (字段1,字段2...) values (记录1) (记录2) (....);
其中每个记录的扩号内需要填写字段的值,每个值用逗号相隔,和前面的字段顺序一一对应
(8)全字段插入的点:
(9)实例
2. 基本查询规则
3. 更新规则
4. 删除规则