MYSQL基础知识1
1.数据库的设计原则
(1)把具有同一个主题的数据存储在一个数据表中,一表一用。
(2)尽量消除冗余,提高访问数据库的速度。
(3)一般要求数据库的是设计达到第三范式,多对多,最大限度消除数据冗余,修改异常,插入异常,删除异常,基本满足关系规范化的要求。
(4)关系数据库中,各个数据表之间关系只能为一对一和一对多的关系。对于多对多需要换作一对多来处理。
(5)设计数据库结构时,需考虑表结构的动态适应性。
2.存储引擎
InnoDB存储引擎:具有良好的事务管理(主要指对数据库的操作),崩溃修复能力,并发控制;存在读写效率差,占用数据空间大的缺点;
MyISAM存储引擎:占用空间小和处理速度快的有点,存在的缺点是不支持事务和不支持外键;
MEMORY存储引擎:具有处理速度快和可以保存临时数据的优点,存在数据易丢失和生命周期短的缺点;
3.建表的SQL语句和约束
首先创建数据库:create database 数据库名;
create database if not exists 数据库名;
使用打开要使用的数据库:use 数据库名;
创建表包括表名,字段名,字段数据类型以及约束。例如创建数据库test,再创建一张表,表的要求:
学号:字符 主键;
学生姓名:变长字符 非空;
班级:变长字符 关联班级表的班级编号。
create database test;
use test;
create table student(
sid char(10) primary key,
sname varchar(20) not null,
classid varchar(20) constraint fk_classid foreign key(calssid) references class(calssid)
)
约束有6种:
主键约束:primary key,一张表中只有一个主键;
唯一约束:UNIQUE,唯一约束是通过唯一性索引实现的;
外键约束:foreign key和references,定义一列或几列,其值于本表或其他表主键或unique列相匹配;
默认约束:default,插入新纪录时,若定义默认值的列没有提供指定值,则将该默认值插入记录中;
非空约束:not null,要求值不能为空;
检查约束:制定某一列接受的值。