Mysql数据库入门二
来源:互联网 发布:阿里云对个人有什么用 编辑:程序博客网 时间:2024/05/29 16:29
多表操作
外键约束:
一个实体的某个字段指向另一个实体的主键, 就称为外键被指向的实体
它的作用: 用于约束处于关系内的实体. 保证引用完整性, 也就是说数据的准确
tips:1.外键一定要指向主键, 有主键才有外键2.外键列的类型和长度一定要和参照的主键的类型和约定长度一致
添加外键:
有两张表分别为student表和score表:
student表为:
sex表为:
// 把student中的sex做为外键ALTER TABLE student ADD CONSTRAINT fk_sex FOREIGN KEY(sex) REFERENCES sex(sid);
通过student表中的sex列找到sex表中对应的sex列的字段值, 应该会很好理解吧
多表的分类有3种, 分别为:
A)内连接:join,inner join
B)外连接:left join,left outer join,right join,right outer join,union
C)交叉连接:cross join
内连接: 关键字 [INNER, JOIN]
隐式内连接:
SELECT a.*, b.* FROM a, b WHERE 连接条件; // a为表a, b为表b或者:SELECT * FROM a, b WHERE 连接条件;
显示内连接:
SELECT a.*, b.* FROM a [INNER] JOIN b ON 连接条件;SELECT * FROM a [INNER] JOIN b ON 连接条件 WHERE 其他条件;
SELECT * FROM student u JOIN sex s ON u.sex = s.sid;结果如下:
外连接: 关键字 [LEFT JOIN, LEFT OUTER JOIN, RIGHT JOIN, RIGHT OUTER JOIN, UNION]
左外连接:
以JOIN左边的表为主表,展示主表的所有数据,根据条件查询连接右边表的数据,若满足条件则展示,若不满足则以null显示
SELECT a.*, b.* FROM a LEFT [OUTER] JOIN b ON 连接条件;SELECT * FOMR a LEFT [OUTER] JOIN b ON 连接条件;
SELECT * FROM student u LEFT JOIN sex s ON u.sex = s.sid;结果如下:
右外连接:
以JOIN右边的表为主表,展示它的所有数据,根据条件查询JOIN左边表的数据,若满足则展示,若不满足则以null显示
SELECT a.*, b.* FROM a RIGHT [OUTER] JOIN b ON 连接条件;SELECT * FOMR a RIGHT [OUTER] JOIN b ON 连接条件;
子查询:
什么书子查询?
- 一个SELECT语句中包含另一个完整的SELECT语句。
- 子查询就是嵌套查询,即SELECT中包含SELECT,如果一条语句中存在两个,或两个以上SELECT,那么就是子查询语句了。
需求: 查询成绩比小明高的所有同学信息
-- 按以前的做法我们可以分为2个步骤去完成-- 首先我们要知道小明的成绩SELECT score from student WHERE name = '小明'; -- 比如查询到小明成绩为80-- 得到小明的成绩80后, 可用80来查询比小明成绩高的同学信息SELECT * FROM student WHERE score > 80;-- 下面用子查询来完成这个需求SELECT * FROM student WHERE SCORE > (SELECT score FROM student WHERE name = '小明');
分页查询: 关键字 [LIMIT]
我们在百度查询某个关键字的时候, 比如页面会给我显示15条相关信息, 在页面最下面会有一条分页按钮
当我按下2按钮时, 页面上会继续显示不同的15条相关信息. 这就是分页.
比如我们想要在页面上每页显示5条信息, 我们来模拟一下
SELECT * FROM info LIMIT 0,5; -- 第一页显示5个SELECT * FROM info LIMIT 5,5; -- 第二页显示5个SELECT * FROM info LIMIT 10,5; -- 第三页显示5个...
LIMIT A, B;
A为从第几个开始显示, B为显示的个数;
通过上面的代码我们可以发现一个规律;
A = (当前页数 - 1) * B;
阅读全文
0 0
- Mysql数据库入门二
- MySQL数据库入门(二)
- MySQL数据库入门--读书笔记(二)
- MySQL数据库(入门)(二)
- MySql简单入门二——数据库中的数据类型
- MySQL入门篇(二)数据库的基本操作
- MySQL入门学习(二)
- MySQL入门学习 二
- MySQL入门学习(二)
- MySQL入门学习(二)
- MySQL入门学习(二)
- MySQL入门(二)
- MySQL入门实践(二)
- mysql入门(二十)
- mysql入门(二)
- Mysql数据库学习入门
- mysql数据库入门
- MYSQL数据库入门
- CSS
- 完全二叉树判断 层次遍历
- JavaSe——7、集合简介
- uva 489 Hangman Judge
- Swift 中的枚举 (enum)
- Mysql数据库入门二
- C++函数调用时参数的传递方式遇到问题
- EXTJS4X的Grid导出Excel
- 今天遇到一面试题
- 破解最新版的Myeclipse2017ci-6
- Hibernate 简单入门
- char类型转换成int类型的C++实现
- 2017美图点评编程题
- HTTP协议—— 简单认识TCP/IP协议