[Mysql] 数据库的组成和操作

数据库(database)是保存有组织的数据的容器

数据存储传统方式:手工录入,数量有限,不便查找

传统记录数据的缺点:

1.不易保存

2.备份困难

3.查找不便

数据存储现代方式:录入电脑,大量数据,方便查询

数据库的优点:

1.持久化存储

2.读写速度极高

3.保证数据的有效性

4.对程序支持性非常好,容易扩展


数据库软件称为DBMS(数据库管理系统)

数据库是通过DBMS创建和操纵的容器。并不能直接访问数据库而是通过DBMS替我们访问数据库

数据的所有存储、检索、管理和处理实际上是由数据库软件——DBMS(数据库管理系统)完成的。MySQL是一种DBMS,即它是一种数据库软件(开源,免费,不要钱,使用范围广,跨平台支持性好,提供了多种语言调用的API,是学习数据库开发的首选)

当前主要使用两种类型的数据库:关系型数据库非关系型数据库

本文讨论的是关系型数据库(Mysql)

什么是关系型数据库?

关系型数据库指的是数据库中的表是有关系可进行关联的

关系型数据库将数据保存在不同的表

原则:一类数据一个表,表之间相互联系

优点:

1.数据更容易操纵、维护和重用,灵活、高效

2.更容易保持数据的一致性

3.数据更新的开销很小


1.数据库的组成

数据库的本质是特殊的文件,它是由多个表组成的,是数据表的集合

表(table) 某种特定类型数据的结构化清单,是一种结构化的文件,可用来存储某种特定类型的数据。表可以保存顾客清单、产品目录,或者其他信息清单

数据库中的数据表是和Excel一样的二维表结构: 行(记录) + 列(字段) → 单元格

列:保存在表中的数据项目(列名),拥有严格的数据类型

行:一条记录,必须以行为单位进行读写


1.所有表都是由一个或多个列组成的

2.数据类型定义列可以存储的数据种类

数据类型(datatype):所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据

3.通常情况下,字段应该避免允许为NULL。不允许为NULL可以简化查询条件,加快查询速度,也利于应用程序读取数据后无需判断是否为NULL

4.表中的数据是按行存储的,所保存的每个记录存储在自己的行内。如果将表想象为网格,网格中垂直的列为表列,水平行为表行;表中的行数为记录的总数

关系模型

关系模型把数据看作是一个二维表格,任何数据都可以通过行号+列号来唯一确定,它的数据模型看起来就是一个Excel表:

关系型数据表和Excel表的异同

同:都是二维表格式,都有行和列,行列交叉都是单元格,单元格内都存储数据

异:关系型数据表不能合并单元格;关系型数据表的每一列都有明确的数据类型,不允许出现数据类型以外的数据

扩展补充

1.主键(primary key)

主键,能够唯一标识一行记录的字段

应保证创建的每个表具有一个主键,以便于以后的数据操纵和管理

表中的任何列都可以作为主键,只要它满足以下条件:

1.任意两行都不具有相同的主键值

2.每个行都必须具有一个主键值(主键列不允许NULL值)

处理主键习惯:

1.不更新主键列中的值

2.不重用主键列的值

3.不在主键列中使用可能会更改的值(例如,如果使用一个名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键)

选取主键的一个基本原则是:不使用任何业务相关的字段作为主键,记录一旦插入到表中,主键最好不要再修改,因为主键是用来唯一定位记录的,修改了主键,会造成一系列的影响

关系型数据库实际上还允许通过多个字段唯一标识记录,即两个或更多的字段都设置为主键,这种主键被称为联合主键

对于联合主键,允许一列有重复,只要不是所有主键列都重复即可

id_numid_typeother columns...
1A...
2A...
2B...

没有必要的情况下,我们尽量不使用联合主键,因为它给关系表带来了复杂度的上升

2.外键(foreign key)

关系型数据库通过外键可以实现一对多、多对多和一对一的关系。外键既可以通过数据库来约束,也可以不设置约束,仅依靠应用程序的逻辑来保证

多对多关系实际上是通过两个一对多关系实现的,即通过一个中间表,关联两个一对多关系,就形成了多对多关系

一对一关系是指,一个表的记录对应到另一个表的唯一一个记录

在关系数据库中,关系是通过主键外键来维护的

2.数据库的操作

1.查看所有数据库

语法结构

SHOW DATABASES;

返回可用数据库的一个列表(包含在这个列表中的可能是Mysql内部使用的数据库)

补充:为了获得一个数据库内的表的列表,使用SHOW TABLES;

例如:查看test数据库中的数据表

2.使用某个数据库

USE语句用于选择一个数据库,使其成为当前默认数据库

语法结构

USE 数据库名[dbname];

3.查看当前使用的数据库

语法结构

SELECT DATABASE();

4.创建数据库

语法结构

CREATE DATABASE 数据库名[dbname] charset=utf8;

在创建数据库时,数据库的命名要遵循如下规则:

① 不能与其他数据库重名

② 名称可以由任意字母、阿拉伯数字、下划线(_) 或者 "$" 组成,可以使用上述的任意字符开头,但不能使用单独的数字,那样会造成它与数值相混淆

③ 名称最长可由64个字符组成(还包括表、列和索引的命名),而别名最多可达256个字符

④ 不能使用Mysql关键字作为数据库名、表名

⑤ 默认情况下,Windows下数据库名、表名的字母大小写是不敏感的,而在Linux下数据库名、表名的字母大小写敏感的。为了便于数据库在平台间进行移植,建议读者采用小写字母来定义数据库名和表名

例子:创建数据库data

5.删除数据库 

删除一个数据库将导致该数据库的所有表全部被删除

语法结构

DROP DATABASE 数据库名[dbname];

例子:删除数据库data

对于删除数据库的操作,应该谨慎使用,一旦执行这项操作,数据库的所有结构和数据都会被删除,没有恢复的可能,除非数据库有备份

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值