1.Mysql数据库

文章目录

  • Mysql数据库
    • 基本概念
    • 数据库
    • 数据类型
    • SQL语句
      • DDL语句
      • DML语句
      • DQL语句

Mysql数据库

基本概念

  • 数据(Data)

    • 描述事物的符号记录
    • 包括数字,文字、图形、图像、声音、档案记录等
    • 以“记录’形式按统一的格式进行存储
    • 将不同的记录组织在一起
    • 用来存储具体数据
  • 数据库

    • 表的集合,是存储数据的仓库
    • 以一定的组织方式存储的相互有关的数据集合
    • 是按照数据结构来组织、存储和管理数据的仓库
  • 数据库管理系统(DBMS)

    • 是实现对数据库资源有效组织、管理和存取的系统软件
    • 数据库的建立和维护功能、数据定义功能、数据操纵功能、数据库的运行管理功能、通信功能
  • 数据库系统

    • 是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成
    • 用户可以通过DBMS或应用程序操作数据库

1.Mysql数据库_第1张图片

  • 数据库分为两大类
    • 关系型数据库
      • Mysql(5.7 8.0)
      • Mariadb
      • Oracle
      • PostgreSQL
      • SQL Server
      • DB2
    • 非关系型数据库

国产数据库代表:阿里云RDB、华为高斯、腾讯TDBA、

​ 阿里Oceanbase

  • 主流数据库

  • SQL Server (微软公司产品)

    • 面向Windows操作系统
    • 简单、易用
  • 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位

SQL语句

查看数据库
show databases;

查看数据库中包含的表
use 数据库名;
show tables;

查看表的结构
use 数据库名;
show tables;
describe 表名;       或    desc 表名;


##在不进入库中查看
show tables from 库名;      
desc 库名.表名;
  • SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。
  • SQL语言分类:
    • DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
    • DML:数据操纵语言,用于对表中的数据进行管理
    • DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
    • DCL:数据控制语言,用于设置或者更改数据库用户或角色权限

DDL语句

##创建和删除数据库
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 库名;

DML语句

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 条件表达式;

DQL语句

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 字段名;

你可能感兴趣的:(8.mysql,数据库,mysql)