Loading... # 数据库相关概念 ## 一、数据库相关定义★★★ 1. 数据:描述事物的符号记录称为数据。特点:数据和关于数据的解释不可分。 2. 数据库:长期**存储在计算机内**、**有组织**、**可共享**的⼤量的数据的集合。数据库中的数据按照⼀定的数据模型组织、描述和存储,具有较⼩的冗余度、较⾼的数据独⽴性和易扩展性,并可为各种⽤户共享。特点:永久存储、有组织、可共享。 3. 数据库管理系统(DBMS):位于⽤户与操作系统之间的⼀层数据管理软件。主要功能:数据定义功能(DDL);数据组织、存储和管理;数据操纵功能(DML);数据库的事务管理和运⾏管理;数据库的建⽴和维护功能;其他功能。 ## 二、数据库的常见概念 ★★★ 1、`DB`:**数据库**,存储数据的容器 2、`DBMS`:**数据库管理系统**,又称为数据库软件或数据库产品,用于创建或管理DB 3、`SQL`:**结构化查询语言**,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言 ### 名词概念★★★ - **数据库**(database): 保存有组织的数据库。 - **表**(table) : 特定类型的数据结果化清单。 存储在表中的数据是一种类型的数据或者一个清单的数据 - **模式**(schema) 关于数据库和表的布局及特性 - **列**(colomn) 表中的一个字段,所以表的不由一个或者多个列组成。 理解列最后的办法,是想象成一个网络,网络中每一列存储着一个特定信息。 - **数据类型**(datatype) 所容许的数据类型,每个类别都有相应的数据类型,用来限制该列中允许的类型 - **行**(row):表中的数据是按行存储的,把表想象成网络,垂直的列,水平为行。 - **主键**(primary key): 表中每一行都应该有可以唯一标识自己的列,一列中唯一能够识别表中的每一行的值。在设计表是应该总是设计带有主键,设置为主键瞒着的条件为: - 任意两行都带有相同的值 - 每个行都必须带有主键值 - 主键列中的值不允许修改更新 - 主键值不能重用。 ### SQL的分类★ 1. **DML**(Data Manipulation Language) **数据操作语言**,用来操作数据库中表里的数据;常用语句:INSERT、 UPDATE、 DELETE 2. **DCL**(Data Control Language) **数据控制语言**,用来操作访问权限和安全级别; 常用语句:GRANT、DENY 3. **DQL**(Data Query Language) **数据查询语言**,用来查询数据 常用语句:SELECT ### 数据库的三个层次★★★ 1. 物理数据层 2. 概念数据层 3. 逻辑数据层 ### 云数据库和大数据★ **云数据库** 云数据库是运行在云计算平台中的数据库,例如Amazon EC2. GoGrid、Salesforce和Rackspace等都是商业云数据库。云数据库使企业能够使用更少的硬件与维 护经费来创建简单规模的数据库,仅仅需要支付数据存储和传输的费用。 **什么是大数据技术,它是如何定义的**? 1)大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产 2)麦肯锡全球研究所给出的定义是: 一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。 ## 三、数据库存储数据的特点 1、数据存放到表中,然后表再放到库中 2、一个库中可以有多张表,每张表具有唯一的表名用来标识自己 3、表中有一个或多个列,列又称为“字段”,相当于java中“属性” 4、表中的每一行数据,相当于java中“对象” ## 四、数据库模型★★★ 数据库模型描述了**数据与数据之间的关系,数据的语义,数据一致型约束**等信息的集合。 由以下三部分组成: - 数据结构:系统静态特征的描述,包括数据类型、内容、性质、数据之间的相互关系。 - 数据操作:系统动态特征的描述,对数据库各种对象实例的操作。 - 完整性约束:完整性规则的集合,给定了数据模型中数据及其联系所具有的的制约和依存规则。 #### 常见数据模型 常见有三种,最常使用的多是关系模型,即mysql对应的数据库模型。 ##### 层次模型 用树状结构表示实体模型及实体间联系的数据类型。 - 每棵树有且仅有一个无双亲节点,称为根。 - 树中除根外所有节点有且仅有一个双亲。 ##### 网状模型 用有向图结构表示实体模型及实体间联系的数据模型。 - 开发困难 - 数据独立性差 ##### 关系模型 以二维表来描述数据,每个表中有多个字段列和记录行,每个字段列有固定的属性。 该结构简单、清晰、具有很高的数据独立性。 ##### 关系型数据库系统(DBS)模型有四层结构 - 数据库管理系统(DBMS):管理系统运行 (DateBase Management System) - 数据库(DB):数据存储的管理者 (小管理,受DBMS管理) - 数据表(Table):数据关系管理者 - 数据字段(Field):实际数据存储者 (依赖于数据表) ## 五、常见的数据库管理系统 关系型数据库产品 - 大型 :**Oracle**、DB2 - 中型 : **MySQL** 、SqlServer - 小型 : Sybase、Access # MySQL介绍 ## 一、MySQL的背景 前身属于瑞典的一家公司,MySQL AB 08年被sun公司收购 09年sun被oracle收购 ## 二、MySQL的优点 1、开源、免费、成本低 2、性能高、移植性也好 3、体积小,便于安装 ## 三、MySQL的安装 属于c/s架构的软件,一般来讲安装服务端 企业版 社区版 5.5 5.6 5.7 8.0 ## 四、MySQL用户有关命令 ### 进入 ```sql mysql -u usename -p password -P 默认3306 mysql -S /tmp/mysql.sock -uroot -h192.168.56.1 -P3306 -p1234567 指定sock登录 \h 获取帮助 \q 退出 or quit ``` ### 修改MySQL密码 ```sql $ mysql -u root mysql> USE mysql; mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root'; ``` ### 创建用户 ```sql mysql> CREATE USER 'test1'@'localhost' identified by '1234567'; Query OK, 0 rows affected (0.00 sec) ``` ### 查询用户 ```sql mysql> SELECT USER FROM mysql.user; 查询所有用户 mysql> SHOW GRANTS For [email protected]'localhost'; 查询具体某个用户 ``` ### 删除用户 ```sql mysql> DROP USER 'test1'@'localhost'; Query OK, 0 rows affected (0.01 sec) ``` ### GRANT语句授权用户登录 ```sql mysql> GRANT ALL ON *.* TO 'test1'@'192.168.56.1' IDENTIFIED BY '1234567'; Query OK, 0 rows affected, 1 warning (0.01 sec) ``` - 限定IP地址 192.168.56.1登录操作 - `*.*`第一个`*`表示所有数据库,第二个表示所有表 - 最后是远程密码 具体指定用户可用的语句,限制`test1`只能用SELECT语句。 ```sql mysql> GRANT SELECT ON *.* TO 'test1'@'localhost' identified BY '1234567'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; 刷新权限 Query OK, 0 rows affected (0.00 sec) ``` 查询是否授权成功 ```sql mysql> SELECT * FROM USER WHERE HOST='192.168.56.1'\G; ``` 最后修改:2022 年 07 月 30 日 © 允许规范转载 打赏 赞赏作者 赞 如果觉得我的文章对你有用,请随意赞赏