数据库
数据
数据库
DBMS
DBMSDatabase Management System 数据库管理系统,简称DBMS ,是用来管理数据的专用软件。
DBS
DBSDatabase System 数据库系统,由几部分组成,如下:
常用数据库管理软件
关系型数据库
RDBMS Relational Database Management System 关系数据库管理系统
关系表构成
SQL
SQL语言分类
⁃
数据查询过程
Ubuntu安装MySQL服务器命令
sudo apt-get install mysql-server
MySQL服务管理
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 表名
数据类型
整型
浮点类型
字符串类型
枚举类型
时间类型
查询所有数据
select * from 表名;
插入数据
insert into 表名 [(字段名列表,…)] values(值,…);
修改数据
update 表名 set 字段=值 [条件_]
删除数据
truncate表名; ——不经事务,删除不可恢复
deletefrom 表名 [条件]; ——可以用在事务操作中,在事务中没有提交时,可撤消。
数据完整性
数据库约束
主键约束
保证数据唯一性,一般设置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
数据表设计思想
ER模型图
Entity-Relationship,实体关系图组成元素:
三大范式
设计数据库时的参考理论,这里只是简单理解思想,并不是准确理论概念
第一范式: 每一列都具有原子性,也就是不能再分割
第二范式 : 每个表只描述一件事情
第三范式 : 表中不能存在冗余字段
每一范式的实现都必须要在前一范式的实现基础上