目录
一、MySQL数据库概念
数据
表(数据表)
数据库
数据库管理系统
数据库的建立和维护功能
数据定义功能
数据操纵功能
数据库的运行管理功能
通信功能
数据流向
二、主流数据库分类
1.SQL Server 数据库 (微软分公司产品)
2.Oracle 数据库 (甲骨文公司产品)
3.DB2 数据库(IBM公司产品)
4.MySQL 数据库(甲骨文公司收购)
三、关系型数据库与非关系型数据库
四、SQL操作语言
常用的数据类型
查看数据库结构
创建及删除数据库和表
管理表中的数据记录
修改表名和表结构
修改表内数据内容
一、MySQL数据库概念
数据
字段中包含属性,为“列”,描述事物的符号记录,包括数字,文字,图形,图像,声音,档案记录等,以“记录”形式按统一的格式进行存储(记录为“行”)
表(数据表)
由记录、字段(行和列)组成表,将不同的记录组织在一起,用来存储具体数据
数据库
表的集合,是存储数据的仓库,以一定的组织方式存储的相互有关的数据集合
数据库系统是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成,用户可以通过DBMS或者应用程序操作数据库
数据库管理系统
是实现对数据库资源有效组织,管理和存取的系统软件
数据库的建立和维护功能
包括建立数据库的结构和数据的录入与转换,数据库的转储和回复,数据库的重组与性能监视等功能
数据定义功能
包括定义全局数据结构、局部逻辑数据结构、存储结构,保密模式以及信息格式等功能,保证存储在数据库中的数据正确、有效和相容,防止不合语义的错误数据被输入或者输出
数据操纵功能
包括数据查询统计和数据更新
数据库的运行管理功能
这时数据库的管理系统的核心部分,包括并发控制,存取控制,数据库内部维护等功能
通信功能
DBMS与其他软件系统之间的通信,如Access能与其他office组件进行数据交互
数据流向
应用程序发送数据请求,然后转入DBMS当中,由DBMS把高级指令转化为复杂的机器代码(底层指令) 然后转入DB数据库内,查找指定数据库,识别数据库中的语言,可以用select查询指定数据库,DB数据库返回数据查询结果,然后转回DBMS,再把底层命令转换为高级指令,把数据处理的结果最后反馈给用户
二、主流数据库分类
1.SQL Server 数据库 (微软分公司产品)
面向Windows操作系统,简单易用,有图形化界面,点击即可进行操作
2.Oracle 数据库 (甲骨文公司产品)
面向所有主流平台,安全完善,操作复杂(现在主流数据库)
3.DB2 数据库(IBM公司产品)
面向所有主流平台,大型的数据库,安全完善(IBM Db2)
4.MySQL 数据库(甲骨文公司收购)
免费的开源数据库,体积小(使用最多的数据库)
三、关系型数据库与非关系型数据库
关系数据库系统是基于关系模型的数据库系统
(1)关系模型的数据结构使用简单易懂的二维数据表
每一行称为一条记录,用来描述一个对象的信息
每一行称为一个字段,用来描述对象的一个属性
(2)关系模型可用简单的"实体-关系-属性"来表示
实体 也称为实例
对应现实世界中可区别与其他对象的“事件”或“事物” 如银行客户、银行账户等
关系 实体集之间的对应关系称为联系也称为关系
如银行客户和银行账户之间存在“储蓄”的关系
属性 实体所具有的某一特性
一个实体可以有多个属性 如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性
非关系数据库也称为NoSQL (Not Only SQL)
存储数据不以关系模型为依据,不需要固定的表格式 非关系型数据库的优点
数据库可高并发读写 对海量数据高效率存储与访问 数据库具有高扩展性与高可用性
一款深受欢迎的开源关系型数据库
Oracle旗下的产品 遵守GPL协议,可以免费使用与修改
特点
- 性能卓越、服务稳定
- 开源、无版权限制、成本低
- 多线程、多用户
- 基于C/S(客户端/服务器)架构
- 安全可靠
四、SQL操作语言
SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。
SQL语言分类:
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限
常用的数据类型
类型 | 意义 |
---|---|
int | 整型 |
float | 单精度浮点 4字节32位 |
double | 双精度浮点 8字节64位 |
char | 固定长度的字符类型 |
varchar | 可变长度的字符类型 |
text | 文本 |
image | 图片 |
decimal(5,2) | 5个有效长度数字,小数点后面有2位 |
查看数据库结构
查看当前服务器中的数据库
SHOW DATABASES;
查看数据库中包含的表
USE 数据库名;
SHOW TABLES;
查看表的结构(字段)
USE 数据库名;
DESCRIBE [数据库名.]表名;
可缩写成:DESC 表名;
创建及删除数据库和表
在创建时,数据类型后面加上约束条件(用空格隔开)实现约束效果
常用约束条件
not null #非空约束(值不能为空)
primary key #主键约束(设为主键,包含了not null的效果)
unique key #唯一键约束(值在字段中唯一)
default 指定值 #默认值约束(将默认值设为指定值,字符串要用' '括起来)
auto_increment #自增约束(起始为1,随记录条目数增加自增1)
foreign key #外键约束(将字字段设为外键,与子表中的字段关联)
zerofill #位数不满足用0填充
创建新的数据库
CREATE DATABASE 数据库名;
创建新的表
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
删除指定的数据表
DROP TABLE [数据库名.]表名; #如不用USE进入库中,则需加上数据库名
删除指定的数据库
DROP DATABASE 数据库名;
管理表中的数据记录
向数据表中插入新的数据记录
INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);
查询数据记录
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
修改、更新数据表中的数据记录
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
在数据表中删除指定的数据记录
DELETE FROM 表名 [WHERE 条件表达式];
查看表中字段
DESC [表名];
向数据表内插入新的数据
要注意插入对应数据时,字符串需要用引号引起来,不然会报错,不会识别为字符串
修改表名和表结构
修改表名
ALTER TABLE 旧表名 RENAME 新表名;
扩展表结构(增加字段)
ALTER TABLE 表名 ADD address varchar(50) default 'xxxx';
#default 'xxxx':表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用
修改字段(列)名,添加唯一键
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
删除字段
ALTER TABLE 表名 字段名;
修改表名前,要先用 use [数据库名]; 来选择一个数据库,也要保证选择的数据库内有对应的表名
修改表内数据内容
修改表内数据
update [表名] set [字段]=‘值’ where [字段]=‘值’;