首页 > 代码库 > 关系型数据库
关系型数据库
重要的数据————数据库 用来存放数据 关系型数据库管理 在数据库的存储形式 层次模型、网状模型
关系模型
三种关系: 一对一关系、一对多关系、多对多关系 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)三种可能问题
- 外键和被引用外键类型不一样,比如integer和double
- 找不到要被引用的列
- 表的字符编码不一样
例、书籍和出版社
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)
关系型数据库