DML(数据库管理语言)
插入数据 Insert into
-
插入一整行的数据
insert into UserInfo values('0001','Tom','M'); insert into UserInfo(*) values('0002','Misa','F');
-
向指定列插入数据
Insert into UserInfo(UserInfoID , NickName) values('0003','Jobs');
更新数据 Update ……. set …….
-
更新一竖列
Update UserInfo set sex = 'M' ;
-
更新指定列
Update UserInfo set sex = 'M' where UserInfoID = '0003'; Update UserInfo set sex = 'M' where NickName like 'M%';
删除行 Delete
-
删除指定行
Delete UserInfo where UserInfoID = '0003' ; Delete UserInfo where NickName = 'Misa' ;
-
删除所有行(整个表)
Delete UserInfo ; ----删除整个表,但会保留有日志。
E-R模型
E-R模型,全称叫实体关系模型(Entity - relationship model ,被广泛应用于设计数据库的概念模型。
实体
实体相当于表.
属性
属性相当于字段。比如用户昵称,真名,公司名称,岗位发布时间。
关系
关系描述了实体之间的关联关系,该关系在语义上可以理解为拥有,也可以理解为事物之间的从属关系。
表约束
定义
-
类型 名称 作用 应用案例 NOT NULL 非空约束 不为空(必填) 注册时的用户名,密码。 DEFAULT 默认约束 默认值 比如签名中的“这家伙很懒……”,给数值类型列赋零值,字符串列赋空字符 UNIQUE 唯一约束 唯一性 账号的唯一性P PRIMARY KEY 主键约束 确保行唯一 比如微信注册ID FOREIGN KEY 外键约束 降低冗余 比如朋友关系中的所有者编号和朋友编号 CHECK 检查约束 格式和精度 比如年龄必须在0~150之间,手机号码的长度及格式。
非空约束
-
drop table person ; create table person ( pid varchar2(18), name varchar2(200) not null , age number(3) not null, birthday date, sex varchar2(4) default '男', constraint person_pid_pk primary key(pid) ); -- 插入数据 insert into person(pid , name , age , birthday , sex) values('0001',Null , 38 ,to_date('1976-02-13','yyyy-mm-dd')) -- 失败 无法将空值插入name
默认约束
-
default 默认值
-
create table person ( pid varchar2(18) primary key, --主键 name varchar2(200) not null , --非空 mobile varchar2(12) default '-' unique, --电话号码是唯一的 sex varchar2(4) default '男' not null check(sex = '男' or sex = '女'), age number(3) default 0 check(age between 0 and 150) not null, sign varchar2(64) default '这家伙很懒......', );
-
comment on column person.pid is '个人编号'; comment on column person.name is '昵称'; comment on column person.mobile is '手机号'; comment on column person.sex is '性别'; comment on column person.age is '年龄'; comment on column person.sign is '个性签名';
检查约束
-
列级检查
-
表级检查
唯一约束
unique
主键约束
施加了主键约束的列,不能插入重复值和空值。
-
使用主键
-
-- 使用主键 drop table person ; create table person ( pid varchar2(18) primary key, name varchar2(200) not null , age number(3) not null, birthday date, sex varchar2(4) default '男', );
-
指定一列作为主键
constraint person_pid_pk primary key(pid)
drop table person ; create table person ( pid varchar2(18), name varchar2(200) not null , age number(3) not null, birthday date, sex varchar2(4) default '男', constraint person_pid_pk primary key(pid) -- 表约束 );
-
联合主键
指定多列为主键
外键约束
- 案例一
- 父子表 删除