一、数据库和sql语句
(一)数据库的相关概念
1、数据:数据信息。据:属性,对一系列对象的具体属性的描述的集合
2、数据库:用来组织(表示各个数据之间是有关联的,按照规则组织起来)、存储和管理(对数据的增删改查)数据的仓库
3、数据库是企业的重要信息资产,在使用数据库时,要注意(查和增无所谓,删和改要谨慎)
4、数据库管理系统(DBMS):实现对数据的有效组织、管理和存取的系统软件mysql
(二)数据库的组成结构
1、数据库是一个人机系统,由硬件、OS、数据库、DBMS和数据库的用户共同组成
2、用户是通过DBMS(各种数据库软件)来对数据库进行操作
(三)数据库的分类
1、关系型数据库:mysql
2、非关系型数据库:redis、es
(四)关系型数据库:存储数据的结构是一个二维表格
1、表:行、列
(1)行:记录、用来描述一个对象的信息
(2)列:字段,用来描述对象的一个属性
2、类型:mysql(中小类型的数据并发请求、免费)、oracle(大数据量使用)、sql-server(已淘汰)、mariaDB、postgresql
(1)关系型数据库当中,表里面的数据是关联的,表和表之间的数据也是关联起来的
(2)重点:多表关联、最多可以关联几张表?(最多三张表、再多会降低查询数据的性能)
(五)非关系型数据库:redis
1、保存数据不是一张表格,使用键值对来保存数据(key----value)例:yyy=12
2、类型
(1)redis:缓存性的数据库
(2)es:索引型数据库
(3)MongDB:文档型数据库
3、关系型数据库和非关系型数据库的区别——查询速度上
(1)关系型数据查询速度更慢一些
(2)非关系型数据库可以支持高并发读写,对海量数据依旧保持着高效率的存储和访问
二、mysql数据库的存储引擎
(一)版本
1、5.5之前:MYISAM,不支持事务和外键的存储引擎,适用于读得多,写得好
2、5.6之后,默认的存储引擎(Innodb),可以支持事务、外键,行级锁定的存储引擎,支持高并发性能的应用
(二)事务
1、含义
(1)在数据库中,一个或者多个操作组成的数据操作的序列,这些操作要么全部成功,要么失败一个就全部不执行,确保数据一致性和完整性
2、事务的特点:确保数据库的状态始终保持一致性,确保数据的完整和一致(核心)
(1)原子性。数据库最小的工作单位,要么全部执行成功,要么全部不执行,只要有一个操作失败,整个执行的序列都会被回滚,完成的操作也会被撤销
(2)一致性。事务执行前后,数据库的完整性约束不能被破坏,只有在满足所有的约束条件情况下,事务才能被提交
(3)隔离性。事务的执行是相互隔离,一个事务的执行不能受到其他执行事务的干扰,并发事务之间相互隔离,防止数据不一致的情况发生
(4)持久性。事务一旦提交,他所做的所有修改会被永久的保存在数据库中,既是系统崩溃,提交的数据也不会丢失
(三)mysql的名词
database | 数据库 |
table | 表 |
row | 行 |
column | 列 |
index | 索引 |
view | 视图 |
procedure | 存储过程 |
trigger | 触发器 |
user | 用户 |
privilege | 权限 |
(四)mysql语句规范
1、sql语句不区分大小写,但建议大写
2、表名严格区分大小写
3、sql语句可以单行也可以多行书写,但是默认都以;结尾
4、关键词不能跨行或者简写
5、子语句通常位于多行,便于编辑,提高可读性
(五)mysql的命名规则
1、必须以字母开头,后面可以包含数据,
2、特殊符号:# _ $
3、不要使用mysql的保留字做表名或者库名,例如:table、select
4、数据库名、表名、用户名严格区分大小写
(六)mysql的字符类型
int | 4个字节,用来存储整数,范围很大 |
char(字符串类型) | 固定长度的字符串类型,用来存储固定长度的字符串 |
varchar(字符串类型) | 可变长度的字符串类型,存储可变长度的字符串(不可以无限制的随便写,要根据类型的长度) |
‘ ‘ ——char固定占4个字节,二varchar占1个字节 ‘ab’——char占4个字节,varchar占3个字节 | |
1、char:无论是否定义值,都会占用固定长度的字节大小 2、varchar:在保存时,例如固定14,实际长度占5个,最后占用长度为6个字节(5个+1个隐藏符) 3、varchar比char节省磁盘空间,但是varchar读写速度比char慢 字符窜类型,一定要用单引号引起 | |
float(m,d) | 单精度浮点数,存储浮点数,m表示总位数,d表示小数位 |
double(m,d) | 双精度浮点数,存储浮点数,m表示总位数,d表示小数位 |
text | 用于存储大文本数据,例如:文档,长字符串 |
image | 二进制存储图像,图片、多媒体 |
decimal(5,2) | 用于存储固定精度的小数,5表示总位数,2表示小数位 |
date | 存储日期:yyyy-mm-dd |
datetime | 存储日期:yyyy-mm-dd HH:MM:SS(时:分:秒) |
timestamp | 和datetime的格式一样,可以自动更新为当前的时间戳 |
三、sql语句
(一)sql语句的分类(重点)
1、DDL:数据定义语言,用于创建数据库的对象,例如:创建库、表、索引
(1)create:创建
(2)drop:删除
(3)alter:修改
2、DML:数据操作语言,对表中的数据进行管理
(1)update:更新
(2)insert:添加
(3)delete:删除(对表里的内容进行删除操作)
3、DQL:查询数据记录(使用最多)——重点
(1)select:选择
4、DCL:数据控制语言,设置或者更改数据库用户或者用户的权限
(1)grant:赋予权限
(2)revoke:取消权限
5、TCL:事务控制语句,管理数据库当中的事务
(1)commit:确认提交事务,一旦提交之后,就无法修改
(2)rollback:事务提交之后无法回滚,只有在commit之前才可以rollback
(3)savepoint:保存点,可以回滚
null和空格的区别:
null:什么都没有,对象没有任何的描述信息
空格:也是字符,也是描述信息
(二)sql语句的实操
1、DDL:数据定义语言:create(创建)、drop(删除)、alter(修改)
(1)新建库、删除库
(2)新建表、删除表
(3)修改表名
(4)修改表的结构
(5)修改列名
(6)删除列
(7)修改列的数据类型
2、DML:数据操作语言,对表中的数据进行管理:update(更新)、insert(添加)、delete
(1)往表中添加数据
(2)update更新