python开发mysql:表关系&单表简单查询
一 一对多,多对一
1.1 建立多对一 ,一对多的关系需要注意
先建立被关联的表,被关联的字段必须保证时唯一的
在创建关联的表,关联的字段一定是可以重复的 1.2 示例;
出版社 多对一,多个老师可能在一家出版社
一夫多妻 一对多
create table dep(. 被关联的字段必须保证唯一
id int primary key auto_increment,
name varchar(20),
comment varchar(50)
); create table emp(
id int primary key auto_increment,
name varchar(20),
dep_id int, 关联的字段一定保证可以重复的
constraint fk_depid_id foreign key(dep_id) references dep(id)
foreign key(dep_id) 本表关联字段
references 后面接指定关联的表,一定是唯一的
on update cascade
on delete cascade
);
二 一对一
2.1 示例. 用户表,管理员表
create table user(
uid int primary key auto_increment,
name varchar(20)
);
insert into user(name) values('egon'); create table admin(
id int primary key auto_increment,
user_id int unique, 唯一
password varchar(20),
constraint foreign key(user_id) refreences user(uid) 被关联的字段一定是唯一的
on update cascade
on delete cascade
);
insert into admin(user_id,password) values(3,'alex3714'); 2.2 注意关联字段与被关联的字段一定都是唯一的 2.3 示例 学生和客户,客户转化为学生
一个学生肯定是一个客户,但是客户不一定学生
三 多对多,双向的多对一,就变成多对多
3.1 示例. 作者,书
create table book(
id int primary key auto_increment,
name varchar(20)
price varchar(20)
); create table book2author(
id int primary key auto_increment,
book_id int,
author_id int,
constraint foreign key(book_id) references book(id),
constraint foreign key(author_id) references author(id)
on update cascade
on delete cascade,
unique(book_id,author_id) 联合唯一
); create table author(
id int primary key auto_increment,
name varchar(20)
);
四 简单单表查询
1 简单查询
select * from t1; 先找到表,在找到记录,测试时候用
select name,id from t1; 2 where条件 and > < = != between or in is not
select name,id from t1 where id > 3; 先找表,在走条件,然后字段
select name,id from t1 where id > 3 and id <1 0; 多条件
select name,id from t1 where id between 3 and 10; 在..之间 not between
select id from t1 where id=3 or id=4 or id=5;
select id from t1 where id in (3,4,5);
select id from t1 where id is Null;可以判断是不是为空''并非空这么简单,只有Null才能用is判断,''用==判断
select name from t1 where name like '%n%';
select name from t1 where name like 'e__n'; _代表是匹配一个 3 group by分组
select stu_id,group_concat(name) from t1 group by stu_id; 按照id分组
group_concat(name) 看组里面有哪些人,就需要这个聚合函数
select stu_id,count(id) from t1 group by stu_id; 查看每个组里面多个人
select stu_id,max(id) from t1 group by stu_id; 查看每个组里的最大id
max min sum avg平均 删除字段
alter table t1 drop age;
alter table t1 change id id(int3); 可以用modify替代
alter table t1 add primary key(id,age); 将谁设置成主键
alter table t1 drop primary key; 删除主键
python开发mysql:表关系&单表简单查询的更多相关文章
- Python、mysql四-1:单表查询
一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...
- mysql 数据操作 单表查询 目录
mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函 ...
- 数据库开发-Django ORM的单表查询
数据库开发-Django ORM的单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询集 1>.查询集相关概述 查询会返回结果的集,它是django.db.mod ...
- mysql 数据操作 单表查询 where 约束 目录
mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...
- mysql 数据操作 单表查询 group by 分组 目录
mysql 数据操作 单表查询 group by 介绍 mysql 数据操作 单表查询 group by 聚合函数 mysql 数据操作 单表查询 group by 聚合函数 没有group by情况 ...
- MySQL数据库之单表查询中关键字的执行顺序
目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...
- MySQL数据库语法-单表查询练习
MySQL数据库语法-单表查询练习 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要是对聚合函数和分组的练习. 一.数据表和测试数据准备 /* @author :yinz ...
- Python学习day44-数据库(单表及多表查询)
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- mysql 基础入门 单表查询
单表查询 select 表头,表头 as 别名 ,表头(+-*/的运算) from table_a 1.条件查询 where + 条件 <> , != 不等于 = 等于,也可以表示字符串值 ...
随机推荐
- 报错HTTP Status 500 - HHH000142: Javassist Enhancement failed: cn.itcast.entity.Customer; nested exception is org.hibernate.HibernateException: HHH000142: Javassist Enhancement failed: cn.itcast.entity.
报错 type Exception report message HHH000142: Javassist Enhancement failed: cn.itcast.entity.Customer; ...
- hdu1695莫比乌斯反演模板题
hdu1695 求1<=i<=n&&1<=j<=m,gcd(i,j)=k的(i,j)的对数 最后的结果f(k)=Σ(1<=x<=n/k)mu[x]* ...
- 遍历jsonArray和jsonObject
遍历jsonArray String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'}]&q ...
- 解决loadrunner在脚本回放时长时间等待及在vugen中create controller scenario时报错的方法!超管用!!
解决loadrunner在脚本回放时长时间等待及在vugen中create controller scenario时报错的方法 经过咨询,有两种方法.经过实践,下面的方法1有效,方法2无效(我下载安装 ...
- 打造万能的Python开发环境
一.下载与安装 python的版本众多,主流的分2和3,还有各种小版本. django等也有众多版本. 在我们开发过程中,为使用不同的版本测试,在一台电脑上进行只能进行替换. 为了简化.我们使用con ...
- 【Hive】窗口函数
我们都知道在sql中有一类函数叫做聚合函数,例如sum().avg().max()等等, 这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的. 但是有时我们想要既显示 ...
- Qt DLL总结
(转自:http://qimo601.iteye.com/blog/1397936) QT动态链接库的调用方法,主要包括: 1.显式链接DLL,调用DLL的全局函数,采用Qt的QLibrary方法 2 ...
- Today is weekend不是应该一定会输出吗
判断语句 If…else块,请看下面这个例子: <%! int day = 3; %> //声明变量感叹号 <html> <head><title>IF ...
- 网络爬虫必备知识之requests库
就库的范围,个人认为网络爬虫必备库知识包括urllib.requests.re.BeautifulSoup.concurrent.futures,接下来将结对requests库的使用方法进行总结 1. ...
- 【java反射】Class类型的相关操作演练
[一]获取范型接口的实现类的范型类型 (1)范型接口 package org.springframework.context; import java.util.EventListener; publ ...