数据库的基本概念
数据(Data):
- 描述事务的符号记录
- 包括数字、文字、图形、图像、声音、档案记录
- 以”记录“形式按统一的格式进行存储
表:
- 将不同的记录组织在一起
- 用来存储具体数据
数据库:
- 表的集合,是存储数据的仓库
- 以一定的组织方式来存储的相互有关的数据集合
- 是按照数据结构来组织、存储和管理数据的仓库
数据库是库中有表,表中有记录
数据库管理系统(DBMS)
是实现对数据库资源有效组织、管理和存取的系统软件。
- 数据库的建立和维护
- 数据定义功能
- 数据操纵功能
- 数据库的运行管理功能
- 通信功能
数据库系统
数据库系统是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成;
用户可以通过DBMS或应用程序操作数据库。
数据库分类(关系型数据库、非关系型数据库)
关系型数据库
关系型数据库介绍
- 关系数据库系统是基于关系模型的数据库系统
- 关系模型的数据结构使用简单易懂的二维数据表
- 关系模型可用简单的“实体-关系”(E-R)图来表示
- E-R图中包含了实体(数据对象)、关系和属性三个要素 实体:
也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物。
属性:
实体所具有的某一特性,一个实体可以有多个属性。
如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性。
联系:
实体集之间的对应关系称为联系,也称为关系。
如银行客户和银行账户之间存在“储蓄”的关系。
所有实体及实体之间联系的集合构成一个关系数据库。
关系型数据库的存储结构
关系型数据库的存储结构是二维表格。
在每个二维表中:
- 每一行称为一条记录,用来描述一个对象的信息。
- 每一列称为一个字段,用来描述对象的一个属性。
关系型数据库的优缺点
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
关系型数据库应用
关系型数据库
- Oracle,MySQL
- SQLServer、Sybase
- Informix、access
- DB2、FoxPRO
查看数据库结构
mysql中的命令默认不区分大小写。表名和库名区分大小写。
在linux系统中的客户端,命令后一定要加分号。
1、查看当前服务器中的数据库
SHOW DATABASES; #大小写不区分,分号“;"表示结束
查看数据库中包含的表
方法一: USE 数据库名; #切换库
SHOW TABLES; #查看库中的表
方法二: show tables from 数据库名; #直接查看某个库中的表
查看表的结构(字段)
方法一: USE 数据库名; #切换库
DESCRIBE 表名; #查看指定表的结构
方法二: DESCRIBE [数据库名.]表名; 可缩写成:DESC 数据库名.表名;
SQL语句
关系型数据库,都是使用SQL语句来管理数据库中的数据。
SQL,即结构化查询语言(Structured Query Language) 。
SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。
SQL中的名词介绍
- 数据库:database
- 表:table,行:row 列:column
- 索引:index
- 视图:view
- 存储过程:procedure
- 存储函数:function
- 触发器:trigger
- 事件调度器:event scheduler,任务计划
- 用户:user
- 权限:privilege
SQL语言规范
- 在数据库系统中,SQL 语句不区分大小写,建议用大写。
- SQL语句可单行或多行书写,默认以 " ; " 结尾。
- 关键词不能跨多行或简写。
- 用空格和TAB 缩进来提高语句的可读性。
- 子句通常位于独立行,便于编辑,提高可读性。
数据库对象和命名:
数据库的组件(对象):
- 数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等。
命名规则:
- 必须以字母开头,后续可以包括字母,数字和三个特殊字符(# _ $)
- 不要使用MySQL的保留字,如table、select、show、databases。
- 数据库名、表名、用户名区分大小写
SQL语言分类
1、DDL:数据定义语言(Data Definition Language),用于创建数据库对象,如库、表、索引等。
例如:CREATE,DROP,ALTER 等。
2、DML:数据操纵语言(Data Manipulation Language),用于对表中的数据进行管理。
例如: SELECT、UPDATE、INSERT、DELETE 等。
3、DQL:数据查询语言( Data Query Languag ),用于从数据表中查找符合条件的数据记录。
例如: SELECT
4、DCL:数据控制语言(Data Control Language),用于设置或者更改数据库用户或角色权限
例如: GRANT,REVOKE
5、TCL:事务控制语言(Transaction Control Language),用于管理数据库中的事务。 TCL经常被用于快速原型开发、脚本编程、GUI和测试等方面。
例如: COMMIT,ROLLBACK,SAVEPOINT
创建及删除数据库和表
创建新的数据库
CREATE DATABASE 数据库名;
创建新的表
语句格式:
CREATE TABLE 表名(字段1 数据类型,字段2 数据类型[,...] [,PRIMARY KEY (主键名)]);
删除指定的数据表
DROP TABLE [数据库名.]表名;
删除指定的数据库
DROP DATABASE 数据库名;