Day29 -数据库基础
-
数据库: 数据的仓库(集散地), 它解决了数据持久化和数据管理的问题
-
持久化 —> 将数据从内存转移到硬盘 (可以长久保存数据的存储介质)
-
数据库的分类:
- 1972 —> Codd —> 如何使用关系模型来保存大规模数据
- 关系型数据库
- 理论基础: 关系代数、集合论
- 具体表象: 用二维表保存数据 (行 — 记录、列 — 字段)
- 编程语言: SQL (结构化查询语言)
- 非关系型数据库
- NoSQL —> No SQL —> Not Only SQL
- NewSQL —> 保存数据的方式可能完全不同于传统的关系型数据库,
但是允许使用关系型数据库的编程语言操作/获取数据
- Hadoop生态圈 —> Drill / Hive / PIG
- Hive —> HQL —> 跟MySQL中使用的SQL无限雷同
-
关系型数据库的产品 :
- Oracle —> Oracle —> 金融、证券、电商、电子政务 —> 好, 贵
- MySQL —> GPL —> 社区版 —> MariaDB
- PostgreSQL / IBM DB2 / Microsoftt SQLServer
-
SQL (Strucutured Query Language) —> 结构化查询语言
- DDL (数据定义语言) —> 创建 / 删除 / 修改各种对象 —> create / drop / alter
- DML (数据操作语言) —> 插入、删除、修改数据 —> insert / delete / update
- DQL (数据查询语言) —> 检索(查询)数据 —> select
- DCL (数据控制语言) —> 授予或者召回权限 —> grant / revoke
-
创建数据库
- create database school default charset utf8mb4;
-
删除数据库
- drop database if exists school;
-
查看创建数据库的过程
- show create database school;
-
切换到指定的数据库
- use school;
-
显示数据库中所有的表
- show tables;
-
创建二维表
-
create table tb_student
(stu_id integer unsigned not null comment ‘学号’,
stu_name varchar(20) not null comment ‘姓名’,
stu_gender boolean default 1 comment ‘性别’,
stu_birth date comment ‘出生日期’,
primary key(stu_id)
) engine=innodb comment ‘学生表’;
-
数据类型
- 整数: int(integer) / bigint / smallint / tinyint —> unsigned
- 小数:float / double / decimal
- 时间日期:time / date / datetime / timestamp
- 字符串:char / varchar
- 大对象:longtext / longblob —> 4G
-
主键(primary key):能够唯一确定一条记录的列
-