(写算法题目把自己心态搞崩了,休息两天顺便把之前学的数据库手写笔记记录在网上方便查阅,因为只是自己学的时候做的笔记,如果有错误欢迎大家指正,过两天再重回算法的怀抱哈哈)
如何下载配置
这个感觉视频讲的更清楚,b站的一个视频,感觉他讲的蛮清楚的,跟着他走,相信你可以哒(我的MySQL也是跟着他学的)
数据库基础概念
① DB
数据库,保存一组有组织的数据的容器
大体分为关系型数据和非关系数据库
关系型数据库:采用关系模型来组织数据的数据库,即由二维表及其之间的联系所组成的一个数据组织,基于标准的SQL,只是内部一些实现有区别,例 MySQL,Oracle…
非关系型数据库:不规定基于SQL实现,现在更多指 NoSQL 数据库
② DBMS
数据库管理系统,又称为数据库软件(产品),用于管理 DB 中的数据,组织,存储,管理,高效地获取和维护数据
③ DBS
数据库系统,一般由 数据库DB 、数据库管理系统(及其开发工具)DBMS 、应用系统、数据库管理员 DBA(和用户)构成。
④ SQL(主要学这个)
结构化查询语言,用于和 DBMS 通信的语言
1.DDL
数据定义语言创建表结构,用来维护存储数据的结构,修改表结构的时候用到
代表指令:create , drop , alter
2.DML
数据操作语言,用来对数据进行操作,对数据进行增删改查
代表指令:insert , delete , update
3.DQL(从DML中单独分出来的)
数据查询语言
代表指令:select
4.DCL
数据控制语句,主要负责权限管理和事务
代表指令:grant,revoke, commit
适用人群:DBA(数据库管理员)
5.TCL
事务控制语言
代表指令:rollback
数据库存储数据特点
- 数据库中最基本的单元为表
- 将数据放入表中,表再放入库中
- 一个库可以有多个表,每个表都有一个名字,表名具有唯一性
- 在任何数据库中,任何一张表的任何一条记录在硬盘存储上都有一个硬盘的物理存储编号
表的基础知识
- 表具有一些特性,定义了数据在表中如何存储
- 数据库当中以表的形式表示数据(表比较直观)
- 任何一张表都有行和列:
行:被称为数据( 或记录),表中数据按行存储
列:被称为字段,所有表都由一个或多个字段组成 - 每个字段都有 字段名 , 数据类型, 约束 等属性
字段名:普通的名字罢了
数据类型:字符串,数字,日期等
约束:有很多,比如唯一性约束(即该字段中的数据不能重复)
语法规范
- 不区分大小写,但建议关键字大写,其他例如表名,列名等小写
- 每条命令最好用分号结尾( \g 也行,但是麻烦),MySQL不见分号( 或 \g )不执行
- 每条命令可以根据需要,进行缩进或换行
- 可用 \c 来终止一条命令的输入
- 注释:
单行注释:#注释内容
单行注释:-- 注释内容(注意 – 和 注释内容间有一个空格,如果没有会错)
多行注释:/* 注释文字 */
常用数据类型
- varchar ( 可变长度的字符串)
- char ( 定长字符串 )
- int ( 整数型 )
- bigint ( 长整数型 )
- float ( 单精度浮点数型 )
- double ( 双精度浮点数型 )
- date ( 短日期类型,默认格式为 %Y - %m - %d )
- datetime ( 长日期类型,默认格式为 %Y - %m - %d %H : %i : %s )
- clob ( 大字段类型,最多可以存储 4G 的字符串,比如文件,说明等)
- blob ( 二进制大字段类型,专门用来存储图片,声音,视频等流媒体数据)
注意:往 blob 类型的字段上插入数据时,需使用 IO 流
varchar 和 char : varchar 会根据实际的数据长度动态分配空间,节省空间,效率较低,char 分配固定长度的空间存储数据,可能会造成空间浪费,效率较高
其中 varchar 和 char 最长为 255,超过则用 clob ,int 最长为 11,超过用 bigint
%Y :年 , %m :月 , %d : 日 , %H : 时 , %i : 分 , %s : 秒
常见的命令
- 查看当前所有数据库
show databases; - 打开指定的库
use 库名; - 查看当前库的所有表
show tables; - 查看其他库的所有表
show tables from 库名; - 退出MySQL
exit; - 导入 sql 文件(部分情况,文件过多,甚至可能打开文件就死机那种,所以不能打开后再复制粘贴)
source 路径;(路径中不能有中文)