前言
- 操作系统: Windows(Win7 ?Win10 ?Win11 ?Windows Server2016) ? ? Linux/Unix(RedHat ?Debian SUSE) ? ? ?MacOS
- Linux系统 ? CentOS(yum dnf) ? ? Ubuntu(apt apt-get) ? ? OpenSUSE
- 信创标准国产系统: 华为 欧拉 ? ? 阿里 龙蜥 ? ? 腾讯 tencentOS ? ? 红旗 ? ? 统信 ? ? 麒麟(银河麒麟,中标麒麟->CentOS,优麒麟->Ubuntu)
数据库分类
数据库分两大类:关系型数据库 SQL,非关系型数据库 NoSQL
关系型数据库:典型代表 ?MySQL ? MariaDB ? PostgreSQL(pgdb) ?Oracle ? SQL Server ? Db2
信创 国产数据库 ?阿里云 RDB ? ? 华为 高斯 ? ? 阿里 Oceanbase ? ?腾讯 TDBA ? ? 人大金仓 ? ?达梦 greatSQL
关系型数据库 SQL ?
- 操作命令:sql语句 ? ? ?
- 存储结构:二维表格 ? ? ?
- 存储的数据:结构化数据? ? ?
- 使用场景:存储业务数据和账户信息
- 对象: ?库 -> 表 -> 二维表格形式的结构化数据 ? ? 列(字段):用来描述对象的一个属性,行(记录):用来描述一个对象的信息
非关系型数据库 NoSQL ?
存储结构:不同类型的NoSQL使用不同的存储结构,比如 键值对、文档、索引、时间序列等
- 缓存型 ?Redis ? Memcached
- 文档型 ?MongoDB
- 索引型 ?Elasticsearch
- 时序型 ?Prometheus ?InfluxDB
- 列式型 ?HBase
mysql数据库特点:
- 性能卓越,服务稳定
- 开源无限制版权,成本低
- 多线程多用户
- 基于c/s(客户端/服务器)架构
- 安全可靠
SQL语句
SQL语句分类
- DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
- DML:数据操纵语言,用于对表中的数据进行管理
- DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
- DCL:数据控制语言,用于设置或者更改数据库用户或角色权限
常用的数据类型
- int :整型 ? 无符号[0,2^32-1],有符号[-2^31,2^31-1]
- float :单精度浮点?? ?4字节32位
- double :双精度浮点?? ?8字节64位
- char :固定长度的字符类型
- varchar :可变长度的字符类型
- text :文本
- image :图片
- decimal(5,2) :5个有效长度数字,小数点后面有2位
MySQL的六大约束特性
- primary key? ? ? ? 主键约束? ? ? 字段的值不能重复,不能为Null,一个表只能有一个主键
- unique key? ? ? ? ?唯一性约束? ?字段的值不能重复,但能为Null,一个表可以有多个唯一键
- not null? ? ? ? ? ? ? ?非空约束? ? ? 字段的值不能为Null
- default? ? ? ? ? ? ? ? 默认值约束? 字段的值如果没有设置则使用默认值自动填充
- auto_increment ?自增约束? ? ? 字段的如果没有设置默认会从 1 开始每次自动递增 1,要求自增字段必须为主键
- foreign key? ? ? ? ?外键约束? ? ? 保证外键表与主键表相关联的表数据的完整性和一致性
- int(N) zerofill? ? ? 零填充
Mysql基础操作
进入数据库
mysql -u用户名 -p密码
查看数据库版本,用户
select version();
select user();
查看库,查看表
show databases; #查看库
use 库名; #进入库
show tables; #查看库里表
show tables from 库名; #查看库里表方法二
添加,删除库
create database 库名; #创建库
drop database 库名; #删除库
添加,删除表?
create table 表名(字段1 数据类型,字段2 数据类型 ....)primary key[主键名]
drop table [库名] 表名; #删除表
desc 表名; #查看表
数据表插入数据记录,及查看数据
INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);
//或
insert into 表名 values(字段1的值,字段2的值,...);
select * from 表名; #查看表