day2 sqlyog单表查询
一、五大约束
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单表查询相关推荐
- 3.4.1 单表查询
3.4.1 单表查询 一.选择表中 若干列 1 查询 全体学生的 学号 和 姓名 select sno, sname from student 3 查询全体学生的 详细记录 select ...
- ORM单表查询,跨表查询,分组查询
ORM单表查询,跨表查询,分组查询 单表查询之下划线 models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值models.T ...
- oracle 查询天,Oracle查询_ 单表查询
前面我们详解了关于Oracle的增删改,今天让我们接着来学习Oracle的查询吧, Oracle中查询可是重头戏噢!!!跟着煌sir的步伐,走位,走位~~~ 小知识锦囊 在此前,先讲解一个小知识点 O ...
- 表操作,数据操作,单表查询,python操作数据库
1.表操作 创建 create table 删除 drop table 查看表结构 desc 表/show create table 表 修改 alter table 表名 rename 新表名 al ...
- mysql 优化表 3000万_mysql优化:专题三、关于单表查询,可以这么优化
mysql优化:专题三.关于单表查询,可以这么优化 作者:PHPYuan 时间:2018-10-18 03:41:26 上篇讲解了「mysql优化专题」90%程序员都会忽略的增删改优化(2),相信大家 ...
- mysql数据库实验3查询_MySQL数据库实验:任务三 数据库的单表查询设计
任务三 数据库的单表查询设计 文章目录任务三 数据库的单表查询设计[实训目的与要求][实训原理][实训步骤]一.简单查询二.按条件查询1.比较大小查询2.带in关键字的查询(确定集合)3.带BETWE ...
- MySQL查询输入三个数的和_mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)...
单表查询 select 建个表 1.查询表中所有学生的信息 2.查询表中所有学生的姓名和对应的英语成绩 3.过滤表中重复数据 4.在所有学生分数上添加10分特长分 下面方式并没有改变底层的数据记录,这 ...
- mysql 单表查询
单表查询 语法: 一.单表查询的语法SELECT 字段1,字段2... FROM 表名WHERE 条件GROUP BY fieldHAVING 筛选ORDER BY fieldLIMIT 限制条数 二 ...
- php单表查询语句,单表查询
一.SQL数据查询的一般格式 数据查询是数据库的核心操作.SQL提供了SELECT语句进行数据查询,其一般格式为: SELECT [ALL | DISTINCT][,]··· FROM[,···] | ...
最新文章
- php.ini 中开启短标签
- 22张深度学习精炼图笔记总结
- vSphere可用性之三准备实验环境
- Android 经典欧美小游戏 guess who
- OpenGL 坐标系统(Perspective)
- 吉林省计算机二级考试题型,吉林省 | 2018年上半年全国计算机二级考试报考简章...
- Mobile first 设计思路在 SAP 电商云 Spartacus UI 中的设计体现一例
- 【北京】微软技术直通车(第二期) 之 SQL Server 2017饕餮
- Visual Studio .Net团队开发[转]
- libcudart.so.8.0 cannot open shared object file: No such file or directory
- 使C#代码现代化——第四部分:类型
- horizon服务主要模块_Openstack入门篇(十四)之horizon服务的部署与测试
- 还有不会用 SQL 的程序员吗?
- C++轻量级微服务_微服务的部署
- 数字图像处理-绪论(下)
- mid制作乐谱_作品1:MIDI彩虹钢琴(将简谱或五线谱制作成mid)
- json转Map泛型Map<String,T>,json转集合Map泛型List<Map<String,T>>工具类
- 黑马JAVA P177 定时器
- MySQL Cluster测试过程中的错误汇总--ERROR 1296 (HY000)等等
- 十年开发技术 Bug 总结,程序员经验分享