数据表的创建与管理

在数据库中通过数据表来存放记录,在数据表中经常会碰到主外键,索引,约束等条件,下面就详细一下。

主键

一张数据表中唯一的标识,确保一张数据表中不会出现两个完全相同的数据记录。

主键可以定义在多个列上,也就是说在定义数据库的时候可以将数据表中的多个列合并在一起作为该表的主键

外键

用来表与表之间关系的。如果字段F是表B中的字段,而且是表A的主键的话,那么列F就是表B的外键。用来执行增

删改查的时候,两张表一致性。

外键删除时,对应的表中的记录也应该做出相应的调整,分为三种方式

1.CASCADE:级联删除,如果主表中的记录被删除,那么从表中的记录也一并被删除

2.SET NULL:置空删除,如果主表中的记录被删除,那么从表中的记录就会被置空

3.RESTRICT:受限删除。如果主表中的一条记录被删除,那么系统会报错,会告知用户从表中的记录仍然存在

create table t_result
(
stuid varchar(15),
curid varchar(15),
result int,
foreign key(stuid) references t_student(stuid) on delete cascade,
--定义外键
)

牛刀小试

create table t_student
(
stuid varchar(15) primary key, --创建主键
stuname varchar(10) not null,  --非空约束
age int not null,
sex varchar(2) not null,
birth datetime not null,
)

索引

用来加快访问的速度,节省访问的时间

索引就好比是一本书的目录或者是一个电话薄,能够节约查询的时间

索引就好比是一个数据库中的指针,当执行查询操作时,WHERE子句会首先执行索引的字段

索引的分类

唯一索引 在数据表中使用UNIQUE关键字就可以为一个数据列定义一个唯一索引,当定义了唯一索引列后,就保证

不会有重复的记录插入到该数据表中

主索引 在数据表中使用PRIMARY KEY关键字也可以保证该列不会有重复的记录输入到里面

单列索引 定义在数据表中一个数据列上的索引就是单列索引,当where子句中经常用到数据表中的某一列作为查

询条件时,为了提高查询效率就可以为该列建立单列索引

复合索引 定义在一个数据表的多个数据列上,就别成为复合索引,像单列索引一样,如果where子句用到多列的

话,就可以为多列建立复合索引

聚簇索引 为了提高SQL语句对数据表的查询效率,可以为数据表创建索引

牛刀小试

添加索引

create index i_profession --添加索引
on t_student(stuid asc)

约束

为了保证数据的完整性,需要使用约束

唯一性(UNIQUE):保证某一列没有重复的值,但是可以运行在列中插入空值

主键约束(PRIMARY KEY):使用主键的列只能由唯一值

外键约束(FOREIGN KEY):参照性约束,保证两个关联的表之间不会发生信息不对称

检查约束(CHECK):限制某一个列插入的值符合某一条件

非空约束(NOT NULL):某一列插入的数值不能为空值

牛刀小试

create table t_curriculum
(
curid varchar primary key, --主键约束
curname varchar unique,--唯一性约束
credit int,
check(credit between 2 and 8)  --检查约束
)

修改数据库中的表

如果在创建完数据表之后,还需要对数据表结构做一些修改的话,例如修改索引,增加一行,修改数据库表中的某

一列等,就会需要使用ALTER TABLE语句。

添加一列

alter table table_name add  column_name data_type

更改一列

alter table table_name alter column column_name

牛刀小试

alter table t_student add salary int not null --更改一个表中的信息
ALTER TABLE t_student alter COLUMN sex char(4) 



数据表的创建与管理,布布扣,bubuko.com

时间: 2024-08-17 04:08:46

数据表的创建与管理的相关文章

SQL笔记-第二章,数据表的创建和管理

数据类型 分5类:整数.数值.字符相关.日期时间以及二进制 1.整数 数据库系统 类型 说明 MYSQL tinyint [unsigned] 一个很小的整数.有符号的范围是-128 到127,无符号的范围是0 到255. smallint [unsigned] 一个小整数.有符号的范围是-32768到32767,无符号的范围是0 到65535. mediumint [unsigned] 一个中等大小整数.有符号的范围是-8388608到8388607,无符号的范围是0到16777215. in

数据库系列学习(二)-数据表的创建和管理

1.数据类型 A:整数类型 bit,int,smallint,tinyint [与操作系统位数有关] B:数值类型 decimal,numeric,money,smallmoney,float,real [可存小数] C:字符相关类型 char,varchar,text,nchar,nvarchar,ntext D:日期时间类型 datetime(精确到0.01秒),smalldatetime(精确到分钟),timestamp E:二进制类型 image [经图片,视频转为二进制,保存到数据库]

sql server 数据库系统整理——数据表的创建和管理

注意: 1.  固定长度字符类型比非固定长度字符类型占用空间要大,可是因为进行字段值设置的时候固定长度字符类型无需进行长度处理就能够进行,因此它的处理速度更快. 所以          对于长度相对固定的数据来讲,使用固定长度字符类型将会提高系统的系能. 2.  改动已有数据表.加入字段的语法:ALTER TABLE 待改动的表名ADD 字段名字段类型 3.  改动已有数据表,删除字段的语法:ALTER TABLE 待改动的表名DROP 待删除的字段名 4.  删除数据表的语法:DROP TAB

数据库表的创建、管理和数据操作(实验一),数据库创建

数据库表的创建.管理和数据操作(实验一),数据库创建 今天我们就以实验的形式对表的创建.管理和数据操作进行学习,上课吧. [实验目的]:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识.[实验要求]:利用SQL语言进行数据库表的各种操作:1.数据库表的创建.修改和删除操作.2.向表中进行数据的插入.删除和修改操作.[实验内容]1. 利用数据定义语句在实验一创建的stu_DB库中建立学生管理系统的三个表:Student.Course.SC.2.利用INSERT.UPDATE和DELE

Oracle tablespace 表空间创建和管理

1.表空间的概述 1. 表空间是数据库的逻辑组成部分. 2. 从物理上讲,数据库数据存放在数据文件中: 3. 从逻辑上讲,数据库是存放在表空间中,表空间由一个或者多个数据文件组成. 2.oracle的逻辑组成 1.oracle 的逻辑结构包含 表 空间 段 区 块 2.数据库是由表空间构成,表空间又是有段构成,段是由区构成,区是由 oracle的块构成,这样做是为了提高数据库的效率 3.作用 A.控制数据库占用的磁盘空间 B dba 可以将不同数据类型部署到不同的位置,这样 有利于i/0的性能,

# 更新数据表以及创建事务

更新数据表以及创建事务 更新数据表 更新数据表使用UPDATE关键字,语法如下: UPDATE 数据表名 SET 需要实现的更改 WHERE 搜索条件; 搜索条件不是必须的,当拥有WHERE关键字是,称为搜索型更新. set后面有两种格式: UPDATE Product SET sale_price = 500, purchase_price = 400 WHERE product_name = 'T恤衫'; 或者 UPDATE Product SET (sale_price, purchase

数据库实验二 数据库和数据表的创建

实验环境: SQL Service 2014 一.数据库的创建 有三种类型的文件用来存储数据库: 主文件包含数据库的启动信息.主文件还可以用来存储数据.每个数据库都包含一个主文件. 次要文件保存所有主要数据文件中容纳不下的数据.如果主文件大到足以容纳数据库中的所有数据,就不需要有次要数据文件.而另一些数据库可能非常大,需要多个次要数据文件,也可能使用多个独立磁盘驱动器上的次要文件,以将数据分布在多个磁盘上. 事务日志文件保存用来恢复数据库的日志信息.每个数据库必须至少有一个事务日志文件(尽管可以

MYSQL千万级数据表,创建表及字段扩展的几条建议

MYSQL千万级数据表,创建表及字段扩展的几条建议 一:概述 当我们设计一个系统时,需要考虑到系统的运行一段时间后,表里数据量大约有多少,如果在初期,就能估算到某几张表数据量非常庞大时(比如聊天消息表),就要把表创建好,这篇文章从创建表,增加数据,以及字段扩展,这几个方面来给出建议. 二:创建表 假如现在我们需要创建IM项目中的聊天消息表,这个表数据量大,读操作远超过写操作,我们都知道,mysql常用的数据库引擎主要有innodb,myisam,这两个数据库引擎主要区别是,innodb支持事务,

实验二 数据库和表的创建与管理

实验二 数据库和表的创建与管理  创建用于企业管理的员工管理数据库,数据库名为YGGL中,YGGL数据库中包括三个表:Employees(员工信息表).Departments(部门信息表).Salary(员工薪水情况表).各表的结构如下表: 表1   Employees表结构 列名 数据类型 长度 是否允许为空 说明 EmployeeID char 6 not null 员工编号,主键 Name char 10 not null 姓名 Education char 4 not null 学历 B