Day1_数据库初认识
数据库的发展
-
数据库:数据的仓库(集散地),它解决了数据持久化和数据管理的问题。
-
持久化 : 将数据从内存转移到硬盘(可以长久保存数据的存储介质)。
-
数据库的分类:
-
1972 -> codd ->如何使用关系模型来保存大规模数据
-
关系型数据库 ->首选方案
- 理论基础:关系代数,集合论
- 具体表象:用二维表保存数据(行(记录)和列(字段))
- 编程语言:SQL(结构化查询语言) ->SQL方言
-
非关系型数据库
- NoSQL ->No SQL ->No , SQL ->Not Only SQL
- NewSQL ->保存数据的方式可能完全不同于传统的关系型数据库,但是允许使用关系型数据库的编程语言操作/获取数据
-
Hadoop生态圈 ->Hive ->HQL ->跟MySQL中使用的SQL无限雷同
-
关系型数据库的产品:
- Oracle ->Oracle ->金融,证券,电商,电子政务,->好,但是贵 ->No.1
- MySQL -> GPL ->社区版 ->No.2-> MariaDB
- PostgreSQL/IBM DB2/Microsoft SQLServer
-
SQL (Structured Query Language) ->结构化查询语言
-
DDL(数据定义语言) ->创建删除各种对象 ->create /drop /alter
-
DML(数据操作语言) ->插入,删除,修改数据->insert /delete /update
-
DQL(数据查询语言) ->检索(查询)数据 ->select
-
DCL(数据控制语言) ->授予或者召回用户权限 ->grant /revoke
注意: SQL是不区分大小写的编程语言 ->create /CREATE
-
-
常用命令
- 显示数据库
-
show databases;
- 创建数据库
-
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 int unsigned not null comment '学号',
stu_name varchar(20) not null comment '姓名',
stu_sex boolean default 1 comment '性别',
stu_birth date comment '出生日期',
primary key (stu_id)
)engine = innodb comment '学生表';
-- 主键(primary key):能够唯一确定一条记录的列
- 数据类型
-- 数据类型
-- ~整数:int /bigint /small int /tinyint -> unsigned (无符号整数;正整数或者0)
-- ~小数:float /double float /decimal
-- ~时间/日期:time /date /datetime /timestamp
-- ~字符串:char(10) /varchar(20)
-- ~大对象:longtext /longblob ->单列4个G
-- 关系的重数
-- 学生表<----------从属---------->学院表
-- (多) (一)