首页 > 代码库 > 关系型数据库

关系型数据库

 

重要的数据————数据库 用来存放数据 关系型数据库管理 在数据库的存储形式 层次模型、网状模型

关系模型

三种关系: 一对一关系、一对多关系、多对多关系 services.msc net stop mysql net start mysql

创建库:create database 库名字;
删除库:drop database 库名字;
显示库:show databases;
进入库:use 库名字;
显示表列表:show tables;
显示表内容:select*from 表名字

create table student(//创建表
stu_id smallint,
stu_name varchar(20) ,
stu_age smallint,
stu_phone varchar(20));

增加行:insert into student value(011,‘rc‘,25,18202822035);
删除行:delete from student where address=‘chengdu‘;

增加列:alter table student add (column) address varchar(30);
删除列:alter table student drop (column) address;

根据索引修改信息:update student set address=‘chengdu‘ where stu_name=‘tyz‘;
修改列表头:alter table student change address address1 varchar(40);
根据索引查找信息:select*from student where stu_id = 7;

添加索引:create index stu_id_index on student(stu_id);
删除索引:alter table student drop index stu_id;

数据库完整性 为了防止垃圾数据的产生,从而影响数据库的执行效率

实体完整性:保证每行所代表的实体能相互区别,不能存在两条一模一样的记录

主键自动作为索引,非空且唯一
stu_id int primary key auto_increment//主键自增长,自增长必须为Int,保证了实体完整性
唯一约束:后面加unique
非空约束:后面加 not null

域完整性:保证指定列的输入有效值

default约束:设置默认值 后面加default xxxx
检查约束:后面加check(id=1 or id=0)

引用完整性:通过外键维护两个及以上的表之间数据的关系

第一范式:必须是最基本单元,不能大量重复某个值。(原子性:不可切割)
第二范式:必须满足第一范式,要求数据库表中的每一个实例或行必须可以被唯一的区分 第三范式:必须满足第二范式,要求一个数据库表中不包含已在其它表中已包含的非主关键字信息

外键 constraint fk_userinfo_uId foreign key(u_id) references users(u_id)

常见错误:

mysql error Number 1005
can‘t creat table‘/test/#sql-640_1.frm‘(errno:150)三种可能问题

  1. 外键和被引用外键类型不一样,比如integer和double
  2. 找不到要被引用的列
  3. 表的字符编码不一样

例、书籍和出版社

CREATE TABLE book(
book_id SMALLINT PRIMARY key,
book_name VARCHAR(20),
book_price SMALLINT,
h_name VARCHAR(20),
CONSTRAINT fk FOREIGN KEY (h_name) REFERENCES house(h_name))

CREATE TABLE house(
h_name VARCHAR(20)PRIMARY KEY,
h_address VARCHAR(20),
h_type char)

关系型数据库