数据持久化 - 将数据从内存转移到硬盘(长久保存数据的存储介质)
数据库 - 存储数据,管理数据
关系(型)数据库/非关系型数据库 。 关系型数据库比非关系型数据存储更为重要。
数据体量大,但是没那么不重要的时候。 就用非关系数据库
非关系型数据库: - > NoSQL数据库
~KV数据库
~文档数据库
~列族数据库
~图数据库
理论基础: 关系模型 - 关系代数 - 关系运算 - 谓词逻辑
~行(row) - 记录(record) - 元组(tuple)
~列(column) - 字段(field) - 属性 (attribute)
~ 主键(primary key)
~外键(foreign key)
编程语言:SQL - 结构化查询语言
1. 数据定义语言(DDL):create(创建)/drop(丢弃)/alter(修改)/rename/truncate
2. 数据操作语言(DML):增删改查:insert/delete/update/select
3. 数据控制语言(DCL):grant / revoke
4. 事务控制语言(TCL):。。。
Unicode —> utf-8 / utf - 16 / utf -32
‘a’ —> 1字节
‘索’ —> 3字节
‘🐖’ —> emoji字符 ---->4字节
show databases; 展示所有数据库
show tablses; 显示数据表
desc 表名; 显示该表的所有列
help data types; 显示所有的数据类型(当你不知道有mysql有哪些数据类型的时候)
create detabase db_school_system default charset utf8mb4;
创建数据库 语法 create database 数据库名 编码值
utf8mb4 - 最大4字节的utf-8编码 -MySQL8默认
drop database if exists school;
删除数据库 如果这个数据库存在就删除,不存在就什么也不做。
alter database school default charset utf8mb4;
修改 数据的的编码值
use school; 切换数据库 语法 use 数据库名
caeate table; 创建表
create table 表名(属性1,属性2,…,primary key (某列的属性名)) engine=innodb;
每个属性或者最后的后面都可以用comment 后面接注释。
(用元组表示每一列中的属性值)
create table tb_student
(
stu_id integer not null comment '学号',
stu_name varchar(20) not null comment '姓名',
stu_gender boolean not null default 1 comment '性别',
stu_birth date default '2000-1-1' comment '出生日期',
primary key (stu_id)
) engine=innodb comment '学生表';
not null : 不允许为空(非空约束)
default 1 :默认为1,表示True(默认约束)
primary key : 表示创建哪个为主键
engine=innodb : 引擎选择innodb
comment : 表示注释,对后面的内容不影响表
bigint (64bit —>8byte —>-263~263-1) —> bigint unsigned (0~2^64-1)
integer/ int (32bit —>4byte —>-231~231-1) —> int unsigned(0~2^32-1)
smallint (16bit —> 2byte —> -32768~32767)
tinyint (8bit —> 1byte —> -128~127)
float / double —>不推荐使用
decimal —> decimal (20,2) 前面表示该数字长度最大为20,保留两位小数。第一个参数默认值为10,第二个参数默认值为0.
char
varchar —>varchar(20) —> 65535 / 16383(如果是utfmb4) 表示可变的字符
longtext —> 4G —> 不推荐使用 —>最好保存数据链接地址
date
time
datetime
timestamp —> 不推荐使用
boolean
json数组
json对象
alter table tb_student add column stu_addr varchar(200) default '' comment '家庭住址';
alter table tb_student drop column stu_tel;
alter table tb_student modify column stu_gender char(1) default '男' comment '性别';
alter table tb_student change column stu_gender stu_sex char(1) no null default 'M' comment '性别';
alter table tb_student rename to tb_abc;
高级文本编辑工具
~Atom
~Textmate
~Notepad++
~Editplus