day1 数据库
数据库:数据的创库(集散地),它解决了数据持久化和数据管理的问题
持久化-- > 将数据从内存转移到硬盘(可以长久保存数据的存储介质)
数据库的分类:
1972----》code --->如何使用关系模型来保存大规模数据
~ 关系型数据库 (在处理海量数据的时候还是有点问题的) (涉及到钱的时候是用关系型数据库,有锁 能保证数据的安全 --->首选方案
-
理论基础:关系代数,集合论
-
具体表象:用二维表保存数据(行(记录)和列(字段))
-
编程语言:SQL(结构化查询语言) --SQL方言
~非关系型数据库:
-
noSQL -- No SQL -- No,SQL ---> Not Only SQL
-
NewSQL -->保存数据方式可能完全不同于传统的关系型数据库,
但是允许使用关系型数据库的编程语言操作/获取数据
~ Hadoop生态圈 ----Drill、HIve 、PIG (大数据) ——Hive----HQL--跟MySQL中使用的SQL无不接近
关系型数据库的产品:
~Oracle-- Oracle--金融 证券 电商 电子政务 --好,贵 -NO.1
~MySQL --GPL---> 社区版-->No,2 --MariaDB(分支,保留了社区开源)-installer MSI 下载比较好-安装卸载都在这个程序包 点右键
~PostgreSQL / IBM DB2(可) /Microsoft SQLserver
安装
端口密码:123456 弱口令
mysql -u gust -h 47.104.31.138 -p 连云端
SQL (Structured Query Language) --结构化查询语言
-
DDL 数据定义语言 --创建删除修改各种对象--create drop alter
-
DML 数据操作语言--插入删除修改数据--insert delect update
-
DQL 数据查询语言 检索查询数据--select
-
DCL 数据控制语言 --授予或者召回用户权限 -- grant revoke
-
SQL是不区分大小写的编程语言 ---> create / CREATE
\0. 查看所有数据库 show databases;
\1. 创建数据库 create database school default charset utf8mb4;
\2. 删除数据库 drop database if exists school;
\3. 查看创建数据库的过程 show create database school;
\4. 切换到指定的数据库 use school;
\5. 显示数据库中所有的表 show tables;
-
boolean time data_time
create table tb_student
(
stu_id integer 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):能够唯一确定一条记录的列 (唯一的, 不能是空)
# 默认引擎innodb
数据类型:
-
整数:int bigint smallint tinyint -- unsigned(无符号整数,再int 后面加unsigned)
-
小数:float double decimal
-
时间日期 time data datatime timestamp
-
字符串; char varchar
-
大对象:longtext (字符) longblob(二进制) --4G