数据库的数据类型、约束、索引、视图

数据库的数据类型、约束、索引、视图

一、数据类型

(一)数值型数据

整数
int,bigint,smallint

小数
float,real,decimal(长度,精度),numeric(长度,精度)
常用的:float(相当于C#中的double),decimal

(二)字符数据

char(n)
最大存储量:8000英文字符,4000汉字;数量一定的字符用char(n)如身份证、学号,用n限制字符数量输入;

varchar(n)
最大存储量:8000英文字符,4000汉字; 数量变化的字符用varchar(n),用n限制最大字符输入数量;

text
上万的大量字符用,存储大文本,如新闻内容,最大长度2^31-1个字符

(三)逻辑

bit    0,1/true/false

(四)二进制类型

binary 8000

image

(五)日期时间数据

datetime(1753-1-1~9999,12,31)

smalldatetime(1900.1.1--2079.6.6)

数据类型的作用:建表,SQL编程

二、约束——保证数据的完整性。

知识准备:主键(Primary Key)和外键(Foreign Key)的概念

        1、主键

表中有一列或几列组合的值能用来唯一地标识表中的每一行,这样的一列或者多列的组合叫做表的主键。

如:学号可以作为学生表的主键,课程号可以作为课程表的主键,(学号,课程号)作为成绩表的主键(组合键)

说明:(1)一个表只能有一个主键,主键约束确保了表中的行是唯一的。

(2)表中可以没有主键,但是通常情况下应当为表设置一个主键。

        2、外键

简单地说,就是“子表”中对应于“主表”的列,在子表中成为外键或者引用键。它的值要求与主表的主键或者唯一键相对应,外键用来强制引用完整性。例如在成绩表中,学号为外键。一个表可以有多个外键。

(一)

主键约束——实体
1.不重。2.不空。3.排序。4.唯一(不能出现两个主键)5.组合主键。
建主键:
    1.可视化建主键。
    表的设计视图中
    2.代码建主键。 primary key

(二)外键约束——引用

两个表,主表和从表。主表――用主键来约束对方的。从表――被约束的表,被约束的列称为外键列。
外键总是建在从表上。
从表外键上填写的内容必须是主表主键里面的已经有的内容。
建外键:
    1.可视化:表的设计视图中--关系――外建窗口;使用数据库关系图。
    2.代码:references 主表名(主键列)

(三)非空约束 ——不能为空

1.可视化:表的设计界面,每一列后都有一个“允许为null”的复选框。
2.代码:not null

(四)自增长

它有“种子”(起始值)和"步长"(每次增长的数量)。

注意:

1.每个自增长的值,一旦被用过了,就废了,不会再重复使用。

2.任何向自增长列添加值的行为都不正确。

3.对列有类型要求:int decimal

1.可视化:在列的属性中,标识规范――是。
2.代码:identity

(五)Check约束

主要是对列里面的值做进一步的规范化。

1.可视化:在列上右击――check约束――在弹出的对话框中添加check约束。

2.代码:check(表达式)

(六)默认值

1.可视化:在列的属性――默认值或绑定

2.代码:default 值

(七)唯一约束

可以空,但不能重。

1.可视化:在列上右击选择“索引/键”在这个界面中既可以建索引又可以建唯一约束。

2.代码:unique

三、索引

提高查询的效率。一个表可以对不同的列建立多个索引。

簇索引(排序,主键),非簇索引(普通索引)。

索引的劣势:对增、删、改的效率会降低。

1.可视化:跟唯一约束的建法相似。

2.代码:create index 索引名 on 表名(列名)

四、视图

把查询给包装起来,使用起来就像用一个表一样。

视图本身不存储数据。

视图可以从一个表、多个表、多个表和视图上建立起来。

视图的优势:查看方便。劣势:增、删、改不方便。

1.可视化:对象资源管理器中,数据库--视图右击--新建视图。

2.代码:create view 视图名

时间: 2024-12-28 16:08:16

数据库的数据类型、约束、索引、视图的相关文章

数据库的数据类型、索引、锁、事务和视图

数据库的数据类型.索引.锁.事务和视图 数据的类型 1)数据类型: 数据长什么样? 数据需要多少空间来存放? 系统内置数据类型和用户定义数据类型 2)MySql 支持多种列类型: 数值类型 日期/时间类型 字符串(字符) 类型 3)选择正确的数据类型对于获得高性能至关重要,三大原则: 更小的通常更好,尽量使用可正确存储数据的最小数据类型 简单就好,简单数据类型的操作通常需要更少的CPU 周期 尽量避免NULL,包含为NULL的列,对MySQL更难优化 4)整型 tinyint(m) 1节个字节,

Oracle组函数、多表查询、集合运算、数据库对象(序列、视图、约束、索引、同义词)等

count组函数:(过滤掉空的字段) select count(address),count(*) from b_user max() avg() min(),sum() select sum(age),max(age),min(age),avg(nvl(age,0)) from b_user 1       260     70      10      37.1428571428571 group by:如果前面定义了该字段名  则groupby必须也写上该字段 select name,pw

Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间

alter table userInfo add(msn varchar2(20));   1.建表 create table userInfo ( id number(6), name varchar2(20), sex number(1), age number(3), birthday date, address varchar2(50), email varchar2(25), tel number(11) );   2.创建约束 不带约束名称的: create table userIn

每天一点数据库之-----Day 8 索引与约束

每天一点数据库之-----Day 8 索引与约束 ----转载请注明出处:coder-pig 1.索引 这个SQL中的索引,前面我们也提过了,使用索引可以提高数据的检索速度, 而关于索引还是比较复杂的,一些概念,比如表组织,堆,数据,数据也,B树等,还有两种 类型的索引:"聚集索引"与"非聚集索引"等,鉴于看本文的都是一些初学者,也只是了解 下数据库的一些常用知识,这里只讲解下创建索引与删除索引,有更深层次需求的朋友 可自行百度~ ①创建索引: 索引是针对字段的,创

约束、视图、序列、伪列和索引

前言 约束条件用于保证数据的完整性.主要有主键约束(primary key)/非空约束(not null).唯一约束(unique) 检查约束(check)和外键约束(foreign key). 正文 约束 主键约束(primary key) 主键约束包含了非空和唯一 create table 表名(字段名 字段类型(长度) 约束条件): 1.创建自定义名称约束 create table 表名(字段名 字段类型(长度),constraint 约束名 约束类型(字段名)): 注:可以通过user_

使用Java实现数据库编程—05 事务、视图、索引、备份和恢复

1.事务(Transaction): 事务是将一系列数据操作绑成一个整体进行统一管理. 如果一事务执行成功,则咋子该事务中进行的所有数据更改均会提交,称为数据库中的永久成部分. 如果事务执行是遇到错误且必须取消或回滚,则数据将全部恢复到操作前的状态,所有数据的更改均被清除. 定义: 事务是一种机制.一个操作序列,包含了一组数据库操作命令,并且把所欲的命令作为一个整体起向系统提交侧小操作请求,即这一组数据库命令要么都执行,要么都不执行.   Eg: 转账过程就是一个整体 它需要两条UPDATE语句

四 Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

Django框架,models.py模块,数据库操作--创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, oracle,postgresql数据库. 1,django默认使用sqlite的数据库,默认自带sqlite的数据库驱动   引擎名称:django.db.backends.sqlite3 在全局配置文件settings.py可以看到确认配置使用的sqlite数据库 # Database # h

SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识

原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息,今天把自己工作过程中经常用到的一些数据库引擎存储过程,系统视图等等总结一下以备不时之用.下面的知识多是自己总结,有一些参考了MSDN. sp_help 有时候想尽快查出数据库对象的相关信息,这个存储过程就很有用了.使用它可以查询出整个数据库中所有对象的相关信息.直接运行sp_help结果如下图1,

【Oracle】第三章索引视图序列

第三章索引视图序列 序列是用来生成唯一,连续的整数的数据库对象.序列是用来自动生成主键或唯一键的值. CREATE SEQUENCE  sequence_name START WITH  integer INCREMENT BY  integer MAXVALUE   integer|nomaxvalue MINVALUE    integer|nominvalue CYCLE|NOCYCLE CACHE  integer|nocache; START WITH     指要生成的第一个序列号,