一、五大约束

1.主键约束

关键词:primary key

特点:不能为空,唯一性一张表只有一个主键

自增长:auto_increment ,只能针对是整数型,每次递增1

设置方式

a.在创建表时设置,

create table p1(pid int(11) primary key auto_increment,pname varchar(20)
);

b.在创建表后设置,语法:alter table 表名 add primary key(列名)

删除主键:alter table 表名 drop primary key

create table p2(pid int(11),pname varchar(20)
);
alter table p2 add primary key (pid)
alter table p2 drop primary key

2.唯一约束

关键词:unique

特点: 可以为空,不重复,唯一一张表中可以有多个唯一约束

a.在创建表时设置

create table p3(pid int (11) primary key auto_increment,pname varchar(20) uinque,psize double
);

b.创建后设置语法:alter table 表名 addconstraint 唯一约束名称 unique(列名)

alter table p3 add constraint u_pname unique(pname)

3.非空约束

关键词:not null

用于限制列中的数据不能为null

4.默认约束

关键词:default

用于给列设置默认值,插入数据才会替换默认值

二、表与表之间的关系

1.一对一关系

2.一对多关系

3.多对多关系

外键关联:alter table 从表 add constraint  fk_外键的名称 foreign key (外键关联字段)

references 主表 (主键关联字段)

CREATE TABLE dept( did INT(11) PRIMARY KEY AUTO_INCREMENT, dname VARCHAR(20)
);
CREATE TABLE emp( eid INT(11) PRIMARY KEY AUTO_INCREMENT,ename VARCHAR(20), did INT(11)
);
alter table emp add constrainnt fk_did foreign key (did)
references dept (did)

删除外键关联:第一步:alter table 从表 drop foreign key fk_外键的名称

第二步:删除外键索引

alter table emp drop froeign key fk_did

多对多关系:创建中间表,通过中间表创建外键关联

三、三大范式

1.表的每一列都是最小原子单位,不能再进行拆分,如中国上海中中国还能进行拆分。

2.每一张表只能描述一种事。

3.在前两条的基础上,不能出现局部依赖,局部传递。

四、多表查询

1.非等值查询

select * from 左表,右表

会出现错误数据,一般不用,笛卡尔现象

2.连接查询

显式内连接:关键字inner join

select * from 左表 inner join 右表

select * from dept inner join emp 

隐式内连接:不使用关键字就是隐式内连接

select * from 左表,右表 where 匹配的条件

select d.*,e.* from dept d,emp e where d.did = e.did
#创建数据库
CREATE DATABASE day07db;
#创建表
CREATE TABLE dept( did INT(11) PRIMARY KEY AUTO_INCREMENT, dname VARCHAR(20), des VARCHAR(30)
);
INSERT INTO dept(dname,des)VALUES("行政部门","养花"), ("人事部门","压工资"),("研发部门","怼产品")#创建员工表
CREATE TABLE emp( eid INT(11) PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20), esal DOUBLE, edesc VARCHAR(20), did INT(11)
);
INSERT INTO emp(ename,esal,edesc,did)VALUES ("马云",1000,"对钱没有兴趣",1),("王健林",2000,"小目标",1), ("马化腾",3000,"冲q币",2),("雷军",4000,"小米不错",2), ("王思聪",5000,"都没我有钱",3),("刘强东",6000,"京东黑货",3);

左外连接:select * from 左表 left join 右表 on 匹配的条件

insert into dept(dname,des) values("销售部门","卖东西")
SELECT d.*,e.* FROM dept d LEFT JOIN emp e ON d.did = e.did 

右外连接:select * from 左表right join 右表 on 匹配的条件

day2 sqlyog单表查询相关推荐

  1. 3.4.1 单表查询

    3.4.1 单表查询 一.选择表中 若干列 1 查询 全体学生的  学号  和 姓名 select   sno,  sname from student 3 查询全体学生的   详细记录 select ...

  2. ORM单表查询,跨表查询,分组查询

    ORM单表查询,跨表查询,分组查询 单表查询之下划线 models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值models.T ...

  3. oracle 查询天,Oracle查询_ 单表查询

    前面我们详解了关于Oracle的增删改,今天让我们接着来学习Oracle的查询吧, Oracle中查询可是重头戏噢!!!跟着煌sir的步伐,走位,走位~~~ 小知识锦囊 在此前,先讲解一个小知识点 O ...

  4. 表操作,数据操作,单表查询,python操作数据库

    1.表操作 创建 create table 删除 drop table 查看表结构 desc 表/show create table 表 修改 alter table 表名 rename 新表名 al ...

  5. mysql 优化表 3000万_mysql优化:专题三、关于单表查询,可以这么优化

    mysql优化:专题三.关于单表查询,可以这么优化 作者:PHPYuan 时间:2018-10-18 03:41:26 上篇讲解了「mysql优化专题」90%程序员都会忽略的增删改优化(2),相信大家 ...

  6. mysql数据库实验3查询_MySQL数据库实验:任务三 数据库的单表查询设计

    任务三 数据库的单表查询设计 文章目录任务三 数据库的单表查询设计[实训目的与要求][实训原理][实训步骤]一.简单查询二.按条件查询1.比较大小查询2.带in关键字的查询(确定集合)3.带BETWE ...

  7. MySQL查询输入三个数的和_mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)...

    单表查询 select 建个表 1.查询表中所有学生的信息 2.查询表中所有学生的姓名和对应的英语成绩 3.过滤表中重复数据 4.在所有学生分数上添加10分特长分 下面方式并没有改变底层的数据记录,这 ...

  8. mysql 单表查询

    单表查询 语法: 一.单表查询的语法SELECT 字段1,字段2... FROM 表名WHERE 条件GROUP BY fieldHAVING 筛选ORDER BY fieldLIMIT 限制条数 二 ...

  9. php单表查询语句,单表查询

    一.SQL数据查询的一般格式 数据查询是数据库的核心操作.SQL提供了SELECT语句进行数据查询,其一般格式为: SELECT [ALL | DISTINCT][,]··· FROM[,···] | ...

最新文章

  1. php.ini 中开启短标签
  2. 22张深度学习精炼图笔记总结
  3. vSphere可用性之三准备实验环境
  4. Android 经典欧美小游戏 guess who
  5. OpenGL 坐标系统(Perspective)
  6. 吉林省计算机二级考试题型,吉林省 | 2018年上半年全国计算机二级考试报考简章...
  7. Mobile first 设计思路在 SAP 电商云 Spartacus UI 中的设计体现一例
  8. 【北京】微软技术直通车(第二期) 之 SQL Server 2017饕餮
  9. Visual Studio .Net团队开发[转]
  10. libcudart.so.8.0 cannot open shared object file: No such file or directory
  11. 使C#代码现代化——第四部分:类型
  12. horizon服务主要模块_Openstack入门篇(十四)之horizon服务的部署与测试
  13. 还有不会用 SQL 的程序员吗?
  14. C++轻量级微服务_微服务的部署
  15. 数字图像处理-绪论(下)
  16. mid制作乐谱_作品1:MIDI彩虹钢琴(将简谱或五线谱制作成mid)
  17. json转Map泛型Map<String,T>,json转集合Map泛型List<Map<String,T>>工具类
  18. 黑马JAVA P177 定时器
  19. MySQL Cluster测试过程中的错误汇总--ERROR 1296 (HY000)等等
  20. 十年开发技术 Bug 总结,程序员经验分享

热门文章

  1. 关于usb host和device 相关内容网址
  2. 解决mybatis二级缓存脏读问题
  3. 逗号用计算机怎么打,电脑标点符号怎么打(图文)
  4. android11以上 uri转file uri转真实路径
  5. android面试集锦
  6. assetbundle能不能删除_关于AssetBundle的卸载
  7. Beetl模板 以@为定位符常用的标签和方法
  8. 2022年辽宁沈阳市法库县招聘社区工作者精选题及答案
  9. 数字人民币究竟会颠覆谁?|链塔智库
  10. 树:寻找最近的公共祖先