数据库相关基础知识

第一章 概念

1、数据:描述事物的符号记录称为数据。特点:数据和关于数据的解释不可分。

2、数据库:长期存储在计算机内、有组织、可共享的大量的数据的集合。数据库中的数据按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。特点:永久存储、有组织、可共享。

3、数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件。主要功能:数据定义功能(DDL);数据组织、存储和管理;数据操纵功能(DML);数据库的事务管理和运行管理;数据库的建立和维护功能;其他功能。

4、数据库系统(DBS):由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。

5、数据管理技术三个阶段:人工管理、文件系统、数据库系统。

6、两类数据模型:概念模型(又叫信息模型);逻辑模型、物理模型

7、数据模型的组成要素:数据结构、数据操纵和数据的完整性约束条件。

8、概念模型:用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具也是数据库设计人员与用户之间进行交流的语言。

9、信息世界中的概念:实体、属性、码、域、实体型、实体集、联系;两个实体之间的联系又分为一对一,一对多,多对多。

10、E-R图:表示实体型、属性和联系的方法,实体型用矩形,属性用椭圆,联系用菱形。

11、关系的完整性约束条件包括三大类:实体完整性、参照完整性、和用户自定义完整性。

12、数据库系统的三级模式结构:模式、外模式、内模式。数据库的二级映像:外模式/模式映像,模式/内模式映像。

第二章 关系数据库

1、关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

2、关系操作:查询操作和插入、删除、修改操作两大部分。查询操作又可分为选择、投影、连接、除、并、差、交、笛卡尔积等。

3、实体完整性:主属性不能为空;参照完整性:关系与关系间的引用(一般为两张表,或者一张表内部也存在);用户自定义的完整性。

第三章 关系数据库标准语言SQL

1、SQL:结构化查询语言。

2、外模式对应于视图和部分表,模式对应于基本表,内模式对应于存储文件。

3、基本表:本身独立存在的表,在SQL中一个关系对应一个基本表,一个或多个基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。

4、视图:从一个或几个基本表中导出的表,本身不存在于数据库中,即数据库中只存放视图的定义不存放视图对应的数据,视图是一个虚表,可以在视图上再定义视图。

5、存储文件:其逻辑结构组成了关系数据库的内模式,其物理结构是任意的,对用户是透明的。

6、SQL查询

常用查询

SHOW DATABASES; 查询所有数据库

use 数据库名; 使用某数据库

SHOW TABLES 查询所有表

SHOW COLUMNS FROM 表名 查询该表所有列

SELECT 列 FROM 表名 查询

SELECT 列1,列2... FROM 表名 多列查询

SELECT * FROM 表名 全部查询(查询所有列)

  1. 数据库服务环境安装部署

windows系统中部署数据库: mysql

https://dev.mysql.com/downloads/installer/

PHPstudy 程序包 --- 包含了数据库服务 --- 进行启动开启

方式一: 连接数据库(命令行操作管理)

连接数据库服务: cmd ---> 切换到PHPstudy数据库程序目录中 ---> 连接数据库

mysql.exe -uroot -proot

方式二: 连接数据库(图形界面操作)

安装连接数据库程序软件: Navicat 安装部署

实现远程连接数据库:

本地建立连接: localhost == 127.0.0.1

Linux系统中部署数据库: mysql

https://dev.mysql.com/downloads/mysql/

准备Linux环境: vmware虚拟软件 --- 加载虚拟主机 --- 启动

部署数据库服务: mariadb --- yum install -y mariadb(操作数据库命令) mariadb-server

启动数据库服务: systemctl start mariadb

方式一: 连接数据库(命令行)

虚拟主机环境 --- mysql -uroot

方式二: 连接数据库(图形界面)

??? 如何和虚拟主机数据路服务建立连接

  1. 数据库操作管理知识
  1. 操作数据库相关SQL命令

· 创建数据库信息:

语句格式: CREATE DATABASE 数据库名称;

操作命令: CREATE DATABASE PHP;

· 查看数据库信息:

语句格式: show databases;

· 选中指定数据库信息:

语句格式: use 数据库名称;

操作命令: use php;

· 查看库中具有表信息:

语句格式: show tables;

· 删除指定数据库信息:

语句格式: drop database 数据库名称;

操作命令: drop database php;

  1. 操作数据表相关SQL命令

· 创建表信息:

语句格式: CREATE TABLE 表名(字段名1 字段类型,字段名2 ....字段名n 字段类型n);

操作命令:

create table xueyuan(

name varchar(15),

sex char(5),

age int(5),

xueli char(10),

jingyan bool,

xinzi float(10,2)

);

· 查看表中字段信息:

语句格式: desc 表名称

操作命令: desc xueyuan;

+---------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+---------+-------------+------+-----+---------+-------+

| name | varchar(15) | YES | | NULL | |

| sex | char(5) | YES | | NULL | |

| age | int(5) | YES | | NULL | |

| xueli | char(10) | YES | | NULL | |

| jingyan | tinyint(1) | YES | | NULL | |

| xinzi | float(10,2) | YES | | NULL | |

+---------+-------------+------+-----+---------+-------+

6 rows in set (0.00 sec)

· 查看表信息创建方法:

语句格式: SHOW CREATE TABLE 表名称;

操作命令: SHOW CREATE TABLE xueyuan\G;

*************************** 1. row **************************

Table: xueyuan

Create Table: CREATE TABLE `xueyuan` (

`name` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,

`sex` char(5) COLLATE utf8_unicode_ci DEFAULT NULL,

`age` int(5) DEFAULT NULL,

`xueli` char(10) COLLATE utf8_unicode_ci DEFAULT NULL,

`jingyan` tinyint(1) DEFAULT NULL,

`xinzi` float(10,2) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

· 删除表信息:

语句格式: drop table 名名称;

操作命令: drop table oldboy;

· 创建表设置引擎信息和默认字符编码信息:

mysql> create table test(

name varchar(15),

sex char(5),

age int(5),

xueli char(10),

jingyan bool,

xinzi float(10,2)

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

  1. 操作数据字段相关SQL命令

· 修改字段数据类型信息

语句格式: alter table 表名 modify 字段名 修改后的数据类型;

操作命令: alter table test modify sex varchar(10);

· 增加表中字段信息:

语句格式: alter table 表名 add column 字段名 字段类型;

操作命令: alter table test add column oldboy date;

· 增加表中字段信息: 可以指定控制字段添加的位置

语句格式: alter table 表名 add 字段名 bool after 在哪个字段后添加;

操作命令: alter table test add oldgirl bool after age;

增加表中字段信息: 将指定字段插入到第一列

语句格式: alter table 表名 add 字段 类型 first;

操作命令: alter table test add oldbaby char first;

· 删除表中字段信息:

语句格式: alter table 表名 drop column 字段名称;

操作命令: alter table test drop column oldbaby;

· 修改字段名称信息:

语句格式: alter table 表名 change 原字段名称 修改后字段名 字段类型;

操作命令: alter table test change xueli edu varchar(15);

· 修改已有字段顺序:

语句格式:

alter table 表名 modify 字段名 类型 first; --- 直接将指定字段移到第一列

alter table test modify 字段名 类型 after 字段名; --- 将字段移动到指定列之后

· 修改数据库中表的名称:

语句格式: alter table 旧表名 rename 新的表名;

操作命令: alter table test rename new_test;

  1. 数据库字段数据类型介绍/字符编码

参考mysql文档介绍

  1. 数据库索引操作

索引概念介绍: 可以提升查找指定数据检索效率

索引分类介绍: 普通索引 唯一索引(不能有字段信息重复) 主键索引(字段信息不能为空)

索引创建方法:

普通索引创建: MUL

语法格式: alter table 表 add index(字段);

操作命令: alter table xueyuan add index(name);

唯一索引创建: UNI

语法格式: alter table 表 add UNIQUE(字段)

操作命令: alter table xueyuan add UNIQUE(xueli);

主键索引创建: PRI

语法格式: alter table 表 add PRIMARY KEY(字段)

操作命令: alter table xueyuan add primary key(jingyan);

如何删除索引信息???

语法格式:drop index 索引名 on 表名

语法命令:drop index jingyan ON

相关推荐
林的快手31 分钟前
209.长度最小的子数组
java·数据结构·数据库·python·算法·leetcode
HEU_firejef1 小时前
Redis——缓存预热+缓存雪崩+缓存击穿+缓存穿透
数据库·redis·缓存
KELLENSHAW2 小时前
MySQL45讲 第三十七讲 什么时候会使用内部临时表?——阅读总结
数据库·mysql
SelectDB2 小时前
飞轮科技荣获中国电信星海大数据最佳合作伙伴奖!
大数据·数据库·数据分析
小刘鸭!3 小时前
Hbase的特点、特性
大数据·数据库·hbase
凡人的AI工具箱3 小时前
每天40分玩转Django:Django表单集
开发语言·数据库·后端·python·缓存·django
奔跑草-3 小时前
【数据库】SQL应该如何针对数据倾斜问题进行优化
数据库·后端·sql·ubuntu
Elastic 中国社区官方博客3 小时前
如何通过 Kafka 将数据导入 Elasticsearch
大数据·数据库·分布式·elasticsearch·搜索引擎·kafka·全文检索
P.H. Infinity3 小时前
【Redis】配置序列化器
数据库·redis·缓存
猛男技术控4 小时前
Milvus矢量数据库 麒麟v10安装
数据库·milvus