数据库里的基本概念&用SQL简单创建数据库
一、数据库里的基本概念
- 数据:
- 数据库(Database/DB):
- 数据模型:
- 是什么:
- 用于描述数据与数据之间的联系、数据库的语义、数据一致性约束的概念性工具的集合
- 数据库系统的核心与基础
- 组成:
- 数据结构
- 描述系统静态特征:数据的类型、内容、性质和数据之间的相互关系
- 数据操作
- 描述系统动态特征(实际上就是对数据库里各种对象实例的操作)
- 完整性约束
- 完整性规则的集合,定义了给定数据模型中数据及其联系所具有的制约和依存规则
- 分类:
- 层次模型
- 是什么:
- 实质:
- 优点:
- 缺点:
- 节点间难以建立横向关联、对插入和删除操作的限制较多,应用程序的编写较复杂
- 网状模型
- 是什么:
- 优点:
- 节点间可任意发生关系,能表达各种复杂的联系
- 可避免数据的重复
- 缺点:
- 关系模型
- 是什么:
- 特点:
- 实体和实体间的联系都由00单一的结构类型(关系)来表示
- 优点:
- 数据库管理系统:
- 是什么:
- 作用:
- 主要功能:
- 提供数据定义语言(DDL)、数据操纵语言(DML)、数据查询语言(SQL)
- 提供确保数据安全的一系列机制:各种约束、锁定、事务管理、权限管理、备份
- 分类:
- 关系型数据库管理系统RDBMS
- 特点:
- 基于关系模型组织数据,将数据存在表里,并通过表之间的关系建立连接
- 使用SQL进行数据操作和查询
- 适于:
- 术语:
- 关系:一个关系对应一张表
- 记录:表里的一行为一条记录
- 属性/字段:表中的一列即为一个属性
- 键:在关系中表示行的一列或多列
- 主键:表中用于唯一确定一行的数据,可以指定一个或多个字段
- 举例:
- MySQL,openGuass,Oracle Database,SQL Server
- 非关系型数据库管理系统NoSQL DBMS
- 特点:
- 采用灵活的数据模型,不使用表和固定的模式
- 以键值对、文档、列族或图形等方式存储数据
- 适于:
- 需要处理大量非结构化数据和具有高度可扩展性要求的应用
- 举例:
- MongoDB,Cassandra,REDIS,Elasticsearch
- 数据库系统(Darabase System/DBS):
- 组成:
- 数据库
- 数据库管理系统(及其应用开发工具)
- 应用程序
- 数据库管理员
二、SQL(Structured Query Language)
- 是什么:
- 特点:
- 集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL功能于一体
- 可独立完成数据库生命周期中的全部活动
- 支持关系数据库三级模式结构
- 内模式
- 模式
- 外模式
- 视图(一个虚表)
- 从一个或几个基本表导出的表
- 数据库中只存放视图的定义而不存放视图对应的数据
- SQL功能实现相关动词:
- 查询:SELECT
- 定义:CREATE、DROP、ALTER
- 操纵:INSERT、UPDATE、DELETE
- 控制:CRANT、REVOKE
- SQL数据类型:
注:
关于SQL的变量名命名:
MySQL 在操作系统和文件系统上的配置可能会导致变量名的大小写敏感性发生变化
建议形式:"my_database"
- 注释:
- SQL建立一个数据库:(SQL不区分大小写,以';'作为一条语句结尾)
- 查看所有的数据库:
- 创建数据库:
- 切换到指定的数据库:
- 创建表:
- create 表名 (变量名1:变量类型,变量名2:变量类型...);
- 查看创建的表:
- show tables
- show tables from 数据库名
- 向表中添加字段:
- alter table 表名
- add column 列名 数据类型...;
- insert into 表名(列名1,列名2...)
- values
- (..,..,...)...;
- 查看表中的字段:
- describe 表名;
- 或show columns from 表名;
- 查看表中的数据行:
- 删除表中的主键(插入的对应主键值不能有重复):
- alter table 表名
- drop primary key;
- 把表中的某一列设置为主键:
- alter table 表名
- add primary key(列名);
- 我的实践:
