操作系统:windows做服务器:Windows Server2016
Linux系统的服务器:RedHat Debian SUSE) MacOS
Linux系统 CentOS(yum dnf) Ubuntu(apt apt-get) OpenSUSE
信创标准 会让系统逐渐国产化
国产系统:
华为 欧拉
阿里 龙蜥
腾讯 tencentOS
红旗
统信
麒麟(银河麒麟,中标麒麟->CentOS,优麒麟->Ubuntu)
数据库分为两大类:关系型数据库SQL 非关系型数据库 NOSQL
关系型数据库:如MySQL MariaDB Oracle DB2 PostgreSQL(pgdb),以及国产的华为高斯,阿里云的RDS,还有阿里的oceanbase 腾讯的TDBA,人大金仓 达梦 greatSQL
sql关系型数据库的特点是:
关系型数据库几乎通用sql语句;
数据的存储类型是二维表格结构;可以创建库,库中创建表,表中数据存储结构为二维表格的结构化数据,分为行和列存储,行为一条记录,表示对象的一条信息,列为字段,表示一个对象的属性;
关系型数据库通常用于业务数据管理,账户信息存储;
非关系型数据库常用代表:
缓存型(key-value) Redis Memcached
文档型(document) MongoDB
索引型(search engine) Elasticsearch
时序型(time series) Prometheus InfluxDB
列式型 (wide column) HBase
nosql非关系型数据库的特点:
每种非关系型数据库有自己独特的语言;
不同类型的NoSQL使用不同的数据存储结构,比如有键值对、文档、索引、时间序列等。
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位
datetime:时间
date:日期
time:时间
(数据库定义语言,管理创建对象如库、表、字段、索引等)
库的增删改查;
create database 库名; ##创建库
drop database 库名; ##删除库
show databases; ##查看有哪些库
use 库名; ##切换库
表的增删改查
create table [库名.]表名 (字段1 数据类型 [约束属性],字段1 数据类型 [约束属性],.....);
##创建数据表结构
use 库名; ##先切换库
create table 表名 (字段1 数据类型 [约束属性],字段1 数据类型 [约束属性],.....); ##创建数据表结构
create table 表名 (字段1 数据类型,字段1 数据类型 ,....[约束属性]);
drop table 表名;
drop table [库名.]表名;
##删除表 谨慎!!
desc [库名.]表名;
##查询表结构 以表格形式显示
show create table [库名.]表名;
##以命令的形式显示表结构
alter table [库名.]旧表名 rename [库名.]新表名;
alter table [库名.]表名 add 字段名称 字段数据类型 [约束属性];
##表中新增一个字段,一定要跟上数据的属性
alter table [库名.]表名 add 约束属性;
##可以直接添加表的约束属性 如primary key(字段名) 或者 unique key(字段名)
alter table [库名.]表名 change 旧字段名 新字段名 字段数据类型 [约束属性];
##修改一个字段的名称或者数据类型
alter table [库名.]表名 drop 字段名;
##删除一个字段
insert into [库名.]表名(字段1,字段2,....)values(字段1的值,字段2的值,....)
insert into [库名.]表名 values(所有字段的值 一一对应);
##添加数据记录
update [库名.]表名 set 字段名=字段值 where 条件表达式 [and/or 条件表达式2];
##修改数据的值
delete from [库名.]表名 where 条件表达式 [and/or 条件表达式2];
##删除数据的值
delete from [库名.]表名;
##清空数据表,只剩表结构。
select * from [库名.]表名;
##查看表中的所有字段对应的所有值
select 字段1,字段2,... from [库名.]表名 where 条件表达式 [and/or 条件表达式2];
##查询某些字段 满足条件的数据
select * from [库名.]表名 limit N;
##查询前N行,包括第N行的数据
select * from [库名.]表名 limit N,M;
##查询第N行以后,不包含第N行,后面M行的数据
create user '用户名'@'源地址' identified by '密码';
##创建用户
rename user '用户名'@'源地址' to '新用户名'@'新源地址';
##修改用户名
drop user '用户名'@'源地址';
##删除用户
select user,host,authentication_string from mysql.user;
##查看有哪些用户信息
primary key 表示主键约束 ;主键字段的值必须是唯一且不可重复,也不能为空,一个表中,只能有一个主键
unique key 表示唯一键约束;唯一键字段的值不能重复,但是可以为空,一个表中可以有多个唯一键;
not null 表示非空约束;表示该字段的值不能为空;
default 表示默认值约束;当该字段的数据为空时,使用默认值填充;
auto_increment 表示自增约束,字段如果没有设置值,那么数据会默认从1开始自增长,且自增字段必须为主键
foreign key 表示外键约束,用于确保外键表和主键表的数据完整和一致性
int(N) zerofill 表示N位数据零填充
delete from [库名.]表名;
处理方式是一行一行的删除,比较耗时,如果表中有自增字段,那么下次添加数据的时候,自增字段的值不会从1开始,而是从删除前的值开始
truncate table [库名.]表名;
处理方式是创建一个同名且相同表结构,所有数据清空,原有的自增数据不会保留,添加数据的时候自增字段的值默认从1开始;(相当于格式化表)