数据库MySQL
首先介绍一下MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL是最好的关系数据库管理系统)应用软件之一。
关系数据库管理系统是指包括相互联系的逻辑组织和存取这些数据的一套程序 (数据库管理系统软件)。关系数据库管理系统就是管理关系数据库,并将数据逻辑组织的系统。
1.MySQL中库的构成
库的基本构成结构包括:库>表>(表结构+表数据+索引(数据结构:查)+自定义函数+存储过程),(自定义,系统自带的可能不完全是这样)
表结构:数据结构,组成一张表的基础元素
存储引擎:innodb/事务transaction(lock/unlock:增删改)
系统函数:字符串函数,数学函数,日期函数,聚合函数,其他
自定义函数:存储过程的语法定义,通过自定义函数来拓展数据的操作
系统库: mysql:user / 操作记录 sysligins…/ schema
2.数据结构:数据类型
同其他语言一样,数据库也有一些特有的数据类型,下面就来对比介绍一下常用的数据类型
java mysql
字符 char/String char(n:0~255 默认:1)
/varchar(n:(e:0~65535 c:21844)
(e:英文状态下可储存的字节长度,c:中文状态下可储存的字节长度))
/text
数值 byte/short/int/long (unsigned(不重复))tinyint(0~255)/smallint(0~65535)/int(大约在40亿以内)/bigint
float/double decimal(m:65(最大长度) 默认10,n:30 默认0)/numeric(m,n)(m:字符的总长度)
BigInteger 数据库中double等类型不常用就不详细了
布尔 boolean bit(64 默认1)/64是2的64次方
日期 Date date/datetime/timestamp
3.对库的操作
进入数据库 mysql -u -root -p 回车,输入密码
show databases;查当前系统下所有可见库
create database if not exists DATABASE_NAME; 创建如果不存在的数据库
drop database if exists schooldb; 删除如果存在的数据库
use DATABASE_NAME; 进入数据库
4.数据的完整性
在建表之前,完整性是要提前介绍一下的
完整性一般分为四种
(1).实体完整性(行的唯一性):实体的完整性强制表的标识符列或主键的完整性(通过索引,唯一约束,主键约束或标识列属性).
(2).域完整性:限制类型(数据类型),格式(通过检查约束和规则),可能值范围(通过外键约束,检查约束,默认值定义,非空约束和规则).
(3).引用完整性:在删除和输入记录时,引用完整性保持表之间已定义的关系.引用完整性确保键值在所有表中一致.这样的一致辞性要求不能引用不存在的值.如果一个键值更改了,那么在整个数据库中,对该键值的引用要进行一致的更改.
(4).自定义完整性:用户自己定义的业务规则.
5.完整性的实现
一般是通过约束 constraint来实现的
实体完整性的实现方法
(1).唯一性约束(1列) unique key
(2).主键约束(1~N列) primary key
(3).自增列(1数值类型列) auto_increment
域完整性的实现方法
(1).为列选择恰当的数据类型
(2).非空约束 not null
(3).默认值约束 default
引用完整性的实现方法
外键约束 foreign key
自定义完整性的实现方法
通过用户自定义的规则确定自定义完整性
6.表结构的操作
(1).增加表
show tables; 查看当前库的所有表
create table TABLENAME(
字段1名称 字段1的数据类型 字段1的约束,字段2名称 字段2的数据类型 字段2的约束,
.......
字段n名称 字段n的数据类型 字段n的约束
);
注意:一般情况下,每张表都有一个无意义的自增列(begin:1,step:1)作为主键
每张表都要有主键,可以自动创建聚族索引,在与其他表连接时可以通过主键来创建关系。而自增列是自动生成的有序不循环的数据,可以更好的确保主键的唯一特性。确保主键的无意义是因为有意义的字段具有不确定因素。
(2).删除表
drop table [if exists] TABLENAME;
改=删+增,一般不会直接在已有表的结构上更改
(3).查看表结构
desc TABLENAME;
对数据的操作(增删改查),具有一定的复杂多,我会在后面的博客中介绍…