MySql—数据的完整性

SQL CREATE TABLE 语句用法

动态生成表的字段alter table dbo.test add kzzd2 int default 0

#实体的完整性

概述:  实体:即表中的一行(一条记录)代表一个实体(entity)
实体完整性的作用:标识每一行                数据不重复

约束类型有:主键约束 primary key      唯一约束 unique   自动增长列
 auto_increment 

  *主键约束

            注:每个表中要有一个主键。特点:数据唯一,且不能为null。

            第一种添加方式:

                 CREATE TABLE student( id int primary key, name
varchar(50));

            第二种添加方式:此种方式优势在于,可以创建联合主键

                 CREATE TABLE student(id int,name varchar(50),primary
key(id));

                 CREATE TABLE student(classid int,stuid int,name
varchar(50),primary key(classid                           ,stuid));

           第三种添加方式:

                 CREATE TABLE student(id int,name varchar(50));

                  ALTER TABLE  student  ADD PRIMARY  KEY (id);

*唯一约束

        特点是不能重复

        create table student(id int primary key,name varchar(255)
unique);

*自动增长列

       sqlserver数据库(identity)     oracle数据库( sequence)��

       给主键添加自动增长的数值,列只能是整数类型

      create table student(id int primary key auto_increment,name
varchar(255));

CREATE TABLE 语句CREATE TABLE 语句用于创建数据库教程中的表。

USE suntest 数据库名称

#域完整性

  域完整性的作用:限制此单元格的数据正确,不对照此列的其它单元格比较
 域代表当前单元     格 域完整性约束:数据类型   非空约束(notnull)
 默认值约束(default)    check约束(mysql不支  
 持)check(sex=’男’orsex=’女’)

  *数据类型

     数值类型、日期类型、字符串类型

  *非空约束  not null  

      CREATE TABLE student( Id int pirmary key, Name varchar(50) not
null, Sex varchar(10));

      INSERT INTO  student values(1,’tom’,null);

  *默认值约束

      CREATE TABLE student(Id int pirmary key,Name varchar(50) not
null,Sex varchar(10) default       ‘男’);

       insert into student1 values(1,’tom’,’女’);

      insert into  student1 values(2,’jerry’,default);

SQL CREATE TABLE 语法CREATE TABLE 表名称(列名称1 数据类型,列名称2
数据类型,列名称3
数据类型,….)数据类型规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型:

create table 表名称

#引用完整性(参照完整性)

    外键约束:  foreing     key

     分清主次关系  外键依赖主键    先有主键  再有外键

      语法   

         CONSTRAINT 约束的名字   FOREIGN KEY(约束的字段) REFERENCES
主表(约束字段)

        ALTER  TABLE  次表名称  ADD CONSTRAINT 约束的名字 FOREIGN
KEY(约束的字段)               REFERENCES   主表(约束的字段);

    例:

    CREATE TABLE student(sid int pirmary key,name varchar(50) not
null,sex varchar(10)                   default‘男’);

    create table score(id int,score int,sid int ,
–外键列的数据类型一定要与主键的类型一致

    CONSTRAINT fk_score_sid foreign key (sid) references student(id));

   第二种添加外键方式。

    ALTER TABLE score1 ADD CONSTRAINT fk_stu_score FOREIGN KEY(sid)
REFERENCES     stu(id);

数据类型 描述 integer(size) int(size) smallint(size) tinyint(size)
仅容纳整数。在括号内规定数字的最大位数。 decimal(size,d) numeric(size,d)
容纳带有小数的数字。

(

size 规定数字的最大位数。d 规定小数点右侧的最大位数。char(size)
容纳固定长度的字符串。

仓库编号 int primary key , –主键的关键字primary key–

在括号中规定字符串的长度。varchar(size) 容纳可变长度的字符串。

仓库号 varchar(50) unique, –唯一索引关键字unique–

在括号中规定字符串的最大长度。date(yyyymmdd) 容纳日期。

城市 varchar(50) not null, –不能为空not null–

USE suntest create table 仓库 ( 仓库编号 int , 仓库号 varchar(50) , 城市
varchar(50) , 面积 int ) create table 仓库1 ( 仓库编号 int not null ,
仓库号 varchar(50) not null, 城市 varchar(50) not null, –不能为空not
null– 面积 int ) create table 仓库2 ( 仓库编号 int primary key ,
–主键的关键字primary key– 仓库号 varchar(50) unique,
–唯一索引关键字unique– 城市 varchar(50) not null, –不能为空not null–
面积 int ) create table 仓库3 ( 仓库编号 int primary key ,
–主键的关键字primary key– 仓库号 varchar(50) unique,
–唯一索引关键字unique– 城市 varchar(50) default ‘青岛’, –不能为空not
null– 面积 int check (面积=300 and 面积=1800) ) create table 职工表 (
职工编号 int identity (1,1) primary key, 职工号 varchar(50) unique,
仓库号 varchar(50), 工资 int check(基本工资=800 and 基本工资=2100), )
create table 订单表 ( 订单编号 int identity(1,1) primary key, 订单号
varchar(50) unique, 职工号 varchar(50) references
职工表(职工号),–references两张表通过职工号关联– 订购日期 datetime,
销售金额 int ) create table 阳光工资表 ( 职工编号 int identity (1,1)
primary key, 职工号 varchar(50) unique, 仓库号 varchar(50), 基本工资 int
check(基本工资=800 and 基本工资=2100), 加班工资 int, 奖金 int, 扣率 int,
应发工资 as (基本工资+加班工资+奖金-扣率)
–as为自动计算字段,不能输入值– )

面积 int

)

发表评论

电子邮件地址不会被公开。 必填项已用*标注