数据(Data)
表
数据库
数据库管理系统(DBMS)
数据库系统
国产数据库代表:阿里云RDB、华为高斯、腾讯TDBA、
阿里Oceanbase
主流数据库
SQL Server (微软公司产品)
Oracle (甲骨文公司产品)
DB2 (IBM公司产品)
MySQL (甲骨文公司收购)
关系型数据库
关系数据库系统是基于关系模型的数据库系统
关系模型的数据结构使用简单易懂的二维数据表
关系模型可用简单的“实体.关系”(E-R) 图来表示
E-R图中包含了实体(数据对象)、 关系和属性三个要素
关系数据库的存储结构是二维表格
在每个二维表中
非关系型数据库
非关系数据库也被称作NoSQL (Not Only SQL)
存储数据不以关系模型为依据,不需要固定的表格式
非关系型数据库的优点
常用的非关系数据库:Redis、mongoDB等
缓存型:Redis、Memcached
文档型:MongoDB
搜索型:ElasticSearch
时序型:InfluxDB、Prometheus
常用的数据类型:
int :整型 无符号[0,2^32-1],有符号[-2^31,2^31-1]
float :单精度浮点 4字节32位
double :双精度浮点8字节64位
char:固定长度的字符类型
varchar :可变长度的字符类型
text:文本
inage :图片
decimal(5,2) : 5个有效长度数字,小数点后面有2位
查看数据库
show databases;
查看数据库中包含的表
use 数据库名;
show tables;
查看表的结构
use 数据库名;
show tables;
describe 表名; 或 desc 表名;
##在不进入库中查看
show tables from 库名;
desc 库名.表名;
##创建和删除数据库
create database 库名;
drop database 库名;
show databases;
##创建和删除数据表
use 库名; ##进入库
create table 表名 (字段名1 数据类型 [字段属性], 字段名2 数据类型 [字段属性], ...., primary key(字段));
#主键一般选择能代表唯一性的字段不允许取空值 (NULL)
#一个表只能有一个主键
##例如
use ggl;
create table classroom (id int, name char(4), age int, sex char(3), primary key(id));
desc 表名; ##查看表结构
drop table 表名;
drop table 库名.表名; ##不进入库删除表
use 库名;
show tables;
show tables from 库名;
insert into 表名 (字段1, 字段2, ...) values (字段1的值, 字段2的值, ...);
##例如
insert into classroom (id,name,age,sex) values (1,'张三',22,'外星人');
##默认所有字段都添加值
insert into 表名 values (按照字段顺序的所有字段的值);
##查看表的数据
select * from 表名;
select * from 表名 where 条件表达式 and 条件表达式;
select * from 表名 where 条件表达式 or 条件表达式;
##从第三行往后连续四行,不包括第三行
select * from 表名 limit 3,4;
##修改、更新数据表中的数据
update 表名 set 字段='值', ... where 条件表达式;
##例子
update classroom set sex='男';
update classroom set sex='男' where id=2;
##删除表中数据
delete from 表名 where 条件表达式;
select 字段1,字段2,... from 表名 where 条件表达式;
##纵向查看每行记录字段的值
select * from 表名\G;
##显示表前N行
select * from 表名 limit N;
##显示从第N行之后的M行记录(不包含第N行)
select * from 表名 limit N,M;
##修改表结构
##修改表名
alter table 旧表名 rename 新表名;
##增加表字段
alter table 表名 add 新字段 数据类型 字段属性;
##修改表字段名
alter table 表名 change 旧字段名 新字段名 数据类型 字段属性;
##设置
alter table classroom change name username varchar(20) unique key;
##删除字段
alter table 表名 drop 字段名;