码迷,mamicode.com
首页 > 数据库 > 详细

数据库

时间:2016-05-08 23:53:15      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:

简言之,数据库就是存放数据的仓库,但是这些数据之间存在一定的关系,按照一定的格式存放在计算机上,不仅包括数字,还可以有文本,图像,音频,视频。

数据模型:

1,层次模型

2,网状模型

3,关系模型

我们主要学习的是第3种数据模型——关系型数据模型

SQL语言是用于关系数据模型的结构化语言,按照功能可以分为3部分

1,数据定义语言:定义数据库对象,包括定义表,视图和索引

2,数据操纵语言:主要对数据库中的数据进行查询,插入,删除和修改

3,数据控制语言:主要包括数据库的安全性控制,完整性控制,以及事务并发控制和故障。

通常每一类数据对象的个体称为实体,而每一类对象个体的集合称为实体集,例如管理学生所选课程的成绩时,主要涉及学生课程两个实体集。

实体集之间的关系可能有3种关系

1,一对一

2,一对多

3,多对多

show databases 查询数据库。

create database  数据库名   新建一个数据库。

drop database  数据库名  删除数据库。

use database 数据库名  连接到数据库。

连接到了数据库,就会发现一个库中由很多的表组成。

show tables;  查询数据库中的表格。

create table if not exists 表名(表的属性内容)。

select * from 表名;查询表

desc 表名;查看表的状态。

insert into 表名 value(数据);向表中添加数据。varchar(length)可变长度的字符串,但是要在范围内可变,比如varchar(20)如果数据的长度只有5个长度,那么就会变为5个长度的内存空间,但是数据长度有21,那么就会出现错误,跟集合不一样。

增:alter table 表名 add name varchar(10);

删:alter table 表名 drop name varchar(10);

改:alter table 表名 change name Name varchar(10);

查:select * from 表名;

复制表格1:create table 表名 select * from 表名;完全一样,包括格式和内容。

复制表格2:create table 表名 select * from 表名 where 1=0;格式一样,内容为空。

create index 索引名  on 表名(name);给表格的名字列添加索引,到时候查找数据时就用索引比较快。

alter table 表名 drop index 索引名; 删除索引。

按照数据完整性实施的方法,我们可以分为4类:实体完整性,域完整性,引用完整性和自定义完整性。

实体完整性:

当我们把数据存放在数据库中时,一个表中的一行数据如果与他代表的实体完全一致,那么这个表具有实体完整性。

1, 主键约束。即表的主键(primary key)不能为NULL,也不能取重复值,即唯一。语言:create  table student(stu_id int primary key)

每一个表必须有一个主键来唯一标识表的每一行,这个主键可以是由一列组成,也可以是多个列组成的复合组件。

2, 唯一约束。给定列的所有值必须是唯一的,不能重复。比如我们的身份证号码。ID int unique;

域完整性:

1,非空 。name varchar(20) not null;

2,默认值。如果一列有很多的数据重复,那么我们可以默认数据,比如:address varchar(20) default "chengdu";当我们给address赋值时不给数据就会默认为chengdu,如果给了数据chongqing就是chongqing。

3,检查约束。是比较灵活的约束,允许我们在更改或插入行到数据库时有一个比较宽范围的限制。但是在MYSQL中没有效果。age int check(age between 10 and 100);

4,外键约束。比较难理解的一种约束,我们的数据模型是关系型,那么表之间如何产生关系勒,就是通过外键约束来连接的。多张表之间才有外键约束,涉及到外键约束就会有主表和从表,外键设置在从表中,使用foreign key约束的两列数据类型必须相同的(至少是相似的)。

语句:constraint fk_useId(外键名) foreign key (外键名) references 主表(主表的主键(primary key))

上面的约束中,其实主键约束跟唯一约束比较相似,都是保证了数据的唯一性,但是主键约束不能为null,唯一约束可以为null。

建一个表:

create table student(

stu_id int primary key auto_increment,

stu_name varchar(20) not null,

stu_age int check(age between 10 and 100),

stu_idCard varchar(20) unique,

stu_address varchar(20) default "chengdu",

teach_id int,

constraint FK_stuId foreign key(teach_id) references teacher(teach_id)

)

teach_id 是主表teacher中的主键

数据库

标签:

原文地址:http://www.cnblogs.com/Kevin-Ma/p/5471926.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!