eudaimonia-Whiplashmuse

mysql与sql语句的基本操作(3部分)

Toretto·2022-03-14 14:45·55 次阅读

mysql与sql语句的基本操作(3部分)

--第一部分:数据库的基本使用和增删改查#

 

--创建数据库:
creat datebase FP;

 

--显示数据库:
show database;

 

--选中数据库:
use FP;

 

--创建表:
creat table fapiao (
id varchar(20),
user varchar(20),
mon int,
crdt date,
crtm time
);

 

--查看表:
show tables;

 

--查看表的结构:
describe fapiao;

 

--增:
insert into fapiao
values ('id','user',int,'date','time');

 

--删:
delete from fapiao where id='xxxxx';

 

--改:
update fapiao set id='xxx' where id='xxxxx'

 

--查:

全盘查:
select * from fapiao;

字段查:
select 'id','time' from 'fapiao' where user='张三'

 

 

--第二部分:建表的约束#

--主键约束
creat table fapiao1(
id varchar(20) primary key,
user varchar(20)
);
--这里的primary key就是主键约束
--主键约束是规定为不重复且不能为空的
--所以主键约束的值就可以唯一确定一行(也就是一个记录record)

 

--主键约束之联合主键
--当建表需求为多个字段共同锁定一个记录的时候(也就是一行)
--我们采用联合主键的方式
creat table fapiao2(
id varchar(20),
user varchar(20),
primary key(id,user)
);
--这样就可以将id和user两个字段设置成联合主键约束
--联合主键约束的任何一个字段都不能为空
--但是联合字段不全部相同就可以
--例如同名可以存在,同名同id不可以存在

 

--自增约束
--当我们希望插入时,未输入的字段自动加一,可以使用自增约束
creat table fapiao3(
id varchar(20) primary key auto_incriment,
user varchar(20),
);
--自增约束可以与主键约束搭配使用,自动使得id增加

 

--建表后的约束调整
--创建表时忘记创建约束或者是后续需要调整约束条件时
alter table fapiao3 drop primary key(id);
--删除主键约束
alter table fapiao3 add primary key(user);
--增加主键约束

 

--唯一约束
--约束字段不可重复,与主键约束不同,主键约束不仅不可重复而且非空
--主键约束的目的是唯一确定一个记录,而唯一约束的目的是指定字段唯一
creat table fapiao4(
id varchar(20) unique,
user varchar(20),
);
--直接在字段后定义
creat table fapiao4(
id varchar(20),
user varchar(20),
unique(id) --/unique(id,user)联合唯一约束
);
--删除和修改形式都与主键相同

 

--对约束的调整策略,我们做一个总结
--总结:
--1,建表添加约束
--字段后直接添加
--建表末尾添加
--2,建表后利用alter。。。。add。。。。添加约束
--3,建表后利用alter。。。。drop。。。删除约束
--4,利用alter。。。。modify。。。调整约束

 

--后续为其他约束的种类和一些使用情况
--具体删改情况同理于上述总结

 

--非空约束
--在约束位置填not null即可
--添加删改方式和之前所说的约束条件一致

 

--默认约束
--当我们插入字段value时,没有传值的,就会填入默认值
creat table fapiao4(
id varchar(20),
user varchar(20),
age char(1) default 10 --添加default 默认值 即可
);

 

--外键约束
--有时候一些表之间具有引用或者依赖关系,这种情况下使用外键约束
--例如需要实现班级表和学生表,其中学生表的班级信息必须依赖于班级表
--那么班级表就是主表,学生表就是副表
--而副表中的班级字段就需要被设置为外键约束
creat table classes(
id int,
class_name varchar(20)
);--主表
creat table student(
name varchar(20),
class_id int,
foreign key(class_id) references classes(id)
--要注意references,单三人称,带s
--字面意思也很好理解,引用于
--副表的外键字段引用于主表中的字段信息
);

 

 

--第三部分:数据表设计:范式#

--范式的存在能够让工作人员在不同的数据库上操作时都能具有一定的规律性--能够使我们的数据库开发维护都更标准,从而提高工作效率


--第一范式:针对每一个字段的值都不可再分的表,就符合第一范式
--如果字段的值可以再分的更详细,就不符合第一范式


--第二范式
--在满足第一范式的基础上,如果一个表中,必须有一个主键
--并且由主键唯一的一一对应一条记录,那么这种关系称为依赖主键
--如果所有的字段都完全依赖主键,那么这种表就符合第二范式
--不能出现联合主键,依赖其中一部分,这样就需要拆表以达到第二范式


--第三范式
--在满足第二范式的基础上,同一张表内不能有除了主键依赖外的传递依赖

posted @   mu3e  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示
目录