数据库(二)

数据完整性

数据完整性 = 精确性 + 可靠性;

实体完整性

主键约束

  1. 非空

  2. 值唯一

  3. 不可有业务含义

  4. 值不可变动

唯一约束

一行的数据不为空

实现域完整性

  1. 数据类型 2. 非空约束

  1. 默认约束 4.检查约束(mysql不可用)

创建约束
 -- 引用完整性
 create table 表名(
     pk_id int primary key auto_increment, -- 主键约束1,与值自动增长
     列名 类型 not null, -- 不为空
     列名 类型 unique, -- 唯一约束
     列名 类型 default 默认值, --默认约束
     列名 类型 check(列名>12 andage 列名<40), -- 检查约束
     primary key(pk_id), -- 主键约束2
     pk_id int auto_increment = 1000 -- 自动增长,默认初始值
 );

DML语言

 insert into 表名(列名,列名,列名...) values (值,值,值...),(值,值,值...);
 --列名可以省略代表全部的属性
 --自增列可以不用插入
 --values后边的数据值要与前边给出的列表对应 数量、列数据与给定的值
 --zi段名一旦写出,后边必须给值但是 null可以代替自增量的值 , default可以代替默认数据的值
 --varchar可以存放int,int中不可以存放varchar

 update 表名 set 列名 = 值,列名 =where 判断条件;
 --and 且  ,  or 或

关联关系

  1. 1:1

  2. 1:n or n:1 一般在n表处建立外键

  3. n:n 多加一张中间表,中间表与另外两张表是多对一的关系

    关系约束语句

     --创建主键外键关系
     alter table 表名 add
     constraint 外键名 foreign key(外键列名) references 主键表名(主键列名);--这一行语句可以再创建表时书写
     --constraint 约束
     --foreign 外键
     --references 关联1
     --外键一般 not null

 delete from 表名 where 条件;
 --删除语句是一行一行的删除
 delete from 表名;
 --删除表中的所有数据
 --如果该表作为其他表的外键,可能会出现错误
 --对于自增量,删除元素后不会从零开始计数

 

  删除一个值属于改操作而非删除!!

truncate语句

--自增量会从0开始不会保留删除日志

--如果该表作为其他表的外键,可能会出现错误

DQL语句 显示

 select 列名,列名,列名...   form 表名  -- 简单查询
 -- 可以用*替代列名,标识显示所有

模糊查询

 where Like '模糊语句';
 --模糊语句替代符主要有 _ %
 --_替代一个字符,必须有一个
 --%替代0个或者多个字符

其他

1.

 alter table 表名 auto_increment = 1000; -- 改变默认的自增量初始值

2.

判断是否为null 用 is null 而不是 =null null与任意值通过“=”比较都是false

判断是否非null where后 is not null.

 

原文地址:https://www.cnblogs.com/-Archenemy-/p/12071092.html