数据
- 1.对现实事物属性特征的描述,都是数据
- 2.计算机中数据的体现形式为文本,图片,表格,视频,音频等,都是以二进进制形式进行存储
数据库
- 1.数据的仓库
- 2.以特定的数据组织格式进行管理数据
- 3.读取速度快,容量大,方便对数据进行管理
DBMS
DBMSDatabase Management System 数据库管理系统,简称DBMS ,是用来管理数据的专用软件。
DBS
DBSDatabase System 数据库系统,由几部分组成,如下:
- 1.DBDatabase 数据库,真正用来存储数据的部分
- 2.DBMS DatabaseManagement System 数据库管理系统,用来操作数据库的部分
- 3.Client 数据库客户端,用来连接数据库,发起请求操作
- 4.DBS = DB + DBMS + Client
常用数据库管理软件
- 1.MySQL 中小_型数据库,_跨平台,开源,免费,应用_范围广
- 2.Oracle 大型数据库,跨平台,稳定,安全,收费
- 3.MS SQLServer MS 针对 NT系统开发的数据库,只能运行在_ NT 系统上
- 4.Sqlite 微型数据库,一般用在移动端开发
- 关系型数据库
RDBMS Relational Database Management System 关系数据库管理系统
关系表构成
- 1.行,表示一条数据,也称为记录
- 2.列 ,表示一个属性,也称为字段
- 3.域 , 表示一个字段的取值范围
- 4.表 , 行和列构成了表
SQL
- 1.SQLStructured Query Language 结构化查询语言
- 2.SQL 的主要功能是和数据库建立连接,提供增删改查的操作。
- 3.ANSI(美国国家标准协会)规定,SQL被作为关系型数据库管理系统的标准语言。
SQL语言分类
- 1.DDL DataDefinition Language 数据定义语言,主要提供数据库,数据表的创建操作。
- 2.DML DataManipulation Language 数据操作语言,主要提供数据表中数据的插入,更新,删除操作
- 3.DQL DataQuery Language 数据查询语言,主要_提供对数据表中数据的查询操作。
- 4.DCL DataControl Language,数据控制语言,主要用来设置或更改数据库用户或角色权限的语句。
⁃
数据查询过程
- 1.客户端发生请求
- 2.服务器接收请求
- 3.服务器将请求发给DBMS查询数据
- 4.DBMS 将查询结果返回给服务器
- 5.服务器将结果返回给客户端
- 6.客户端接收使用数据
Ubuntu安装MySQL服务器命令
sudo apt-get install mysql-server
MySQL服务管理
- 查看服务器是否开启 ps aux | grep mysql
- 启动服务 sudo service mysql start
- 停止服务 sudo service mysql stop
- 重启服务 sudo service mysql restart
- 查看服务状态sudo service mysql status
MySQL 常用客户端
- 图形化客户端 Navicat, PHPAdmin, MySQLYog, MySQL Browser
- 终端 windows - cmd,mac - 终端, linux - terminal
连接数据库
- 数据库IP地址
- 数据库服务端口号
- 数据库用户名
- 数据库用户密码
数据库中默认自带的数据库
- infomation_schema 保存其它数据库的信息
- perfromance_schema 保存数据库的优化信息
- sys infomation_schema +perfromance_schema
- mysql 保存数据库用户信息
数据库 CRUD 操作
C Create创建
RRead/Retrieve 查询
U Update修改
D Delete删除
创建数据库
create database 数据库名;
create database 数据库名 charset 字符集;
显示数据库创建信息
show create database 数据库名;
修改数据库字符集
alter database 数据库名 charset=字符集;
显示所有数据库
show databases;
切换、使用数据库
use 数据库名
显示当前选择数据库
select database();
删除数据库
drop database 数据库名;
显示所有的数据表
show tables;
创建数据表
create table 表名( 字段名 字段类型,[字段名 字段类型]…);
显示表创建信息
show create table 表名;
添加字段
alter table 表名 add 字段名 字段类型;
删除字段
alter table 表名 drop 字段名;
修改字段类型
alter table 表名 modify 字段名 字段类型;
修改字段名
alter table 表名 change 旧字段名 新字段名 字段类型;
删除数据表
drop table 表名
数据类型
整型
- 1.tinyint 1 字节
- 2.smallint 2 字节
- 3.mediumint3 字节
- i4.nteger 4 字节
- 5.bigint 8 字节
- 浮点类型
- float (长度,小数位数) 7位有效位
- double(长度,小数位数)15位有效位
- decimal(长度,小数位数) 28位有效位
字符串类型
- char(长度) 0-255字节 定长字符串
- varchar(长度) 0-65535字节 变长字符串
枚举类型
- enum(枚举值1,枚举值2…)
时间类型
- 1.DATEYYYY-MM-DD 日期值
- 2.TIMEHH:MM:SS 时间值
- 3.DATETIME YYYY-MM-DD HH:MM:SS 日期时间值
- 4.YEARYYYY年份值
- 5.TIMESTAMP 时间戳 1970-01-01 00:00:00 到现在的秒数
查询所有数据
select * from 表名;
插入数据
insert into 表名 [(字段名列表,…)] values(值,…);
修改数据
update 表名 set 字段=值 [条件_]
删除数据
1.truncate表名; ——不经事务,删除不可恢复
2.deletefrom 表名 [条件]; ——可以用在事务操作中,在事务中没有提交时,可撤消。
数据完整性
- 1.域完整性
- 2.实体完整性
- 3.参考完整性
数据库约束
主键约束
保证数据唯一性,一般设置ID字段,一个表中只能有一个主键字段
create table 表名(字段名 字段类型 primary key);
自动增长约束
让数值类型字段自动增长,需要配合主键使用
create table 表名(字段名 字段类型 auto_incrementprimary key);
唯一性约束
保证数据的唯一性,不会出现重复数据
create table 表名(字段名 字段类型 unique);
非空约束
字段的内容不允许为空
create table 表名(字段名 字段类型 not null);
默认值约束
字段没有给定值时,使用的默认填充值
create table 表名(字段名 字段类型 default 值);
外键约束
为两表建立引用参考关系
create table 表名(字段名 字段类型… , foreign key(外键字段名) references 关联表名(关联字段名);
检查约束
检查约束在MySQL中无效,但其它数据库中有效
create table 表名(字段名 字段类型 check(值范围条件));
添加删除约束
主键约束
1.添加
altertable 表名 addconstraint 约束名 primarykey(字段名);
2.删除
altertable 表名 dropprimary key;
外键约束
1.添加
altertable 表名 addconstraint 外键约束名 foreignkey(外键字段名)references 关联表(关联字段名);
2.删除
altertable 表名 dropforeign key 外键名;
数据库导入导出
导出
mysqldump–uroot –p(注意不要输入密码) 要导出的数据库名要导出的数据表 ... > 目标文件.sql
导入
mysql-uroot -p 数据库名 < 要导入的文件.sql
数据表设计思想
- 1.需求分析:根据用户的需求,分析出需要记录的数据
- 2.需求设计:根据分析出的数据,设计E-R模型图
- 3.详细设计:将E-R模型图转换成数据表
- 4. 三大范式:使用数据库三大范式的设计思想对数据表进行审核
ER模型图
Entity-Relationship,实体关系图组成元素:
- 1.矩形 表示实体
- 2.椭圆形 表示属性
- 3.菱形 表示关系
三大范式
设计数据库时的参考理论,这里只是简单理解思想,并不是准确理论概念
第一范式: 每一列都具有原子性,也就是不能再分割
第二范式 : 每个表只描述一件事情
第三范式 : 表中不能存在冗余字段
每一范式的实现都必须要在前一范式的实现基础上