• 数据库关联查询
  • 数据库条件查询

条件查询

SELECT * FROM student WHERE age=18

比较运算符

> 、<、 =、>= 、<=、<>、 !=

mysql 学习总结 (二

逻辑运算

And

mysql 学习总结 (二

Or

mysql 学习总结 (二

Not

mysql 学习总结 (二

模糊查询
SELECT * FROM student WHERE name LIKE “小%”

%pip 0到多个字符

范围查询

mysql 学习总结 (二

查询为空

mysql 学习总结 (二

不为空

mysql 学习总结 (二

排序

SELECT * FROM student ORDER BY age;以年龄排序

mysql 学习总结 (二

多条件排序,第一个条件为主排序条件

mysql 学习总结 (二

排倒叙

mysql 学习总结 (二

筛选和排序连用(先筛选再排序)

mysql 学习总结 (二

子查询

子查询是一种嵌套查询,将一个查询用小括号包围起来,然后作为下一个查询的结果,子查询必须有别名。

SELECT nan.name FROM (SELECT name,age FROM student WHERE gender=”男” ) AS nan WHERE age = 18;

mysql 学习总结 (二

  • 数据库关系搭建

数据库关系针对是多表之间的联系。

一对一

两个表的每条数据之间,存在唯一映射关系。

举个栗子:

用户登陆表              用户

手机号             姓名

验证码             身份证号

                                        头像

邮箱

手机号

一对多

将两个表分为一个一表,一个多表,一表当中数据可以对应多表当中的多条数据,多表当中的一条数据只能对应一表当中的一条数据。

举个栗子:

父亲(一表)                        儿子(多表)

张三                         张1

                                                 张2

Id                                      p_id

mysql 学习总结 (二     mysql 学习总结 (二

这两张表通过parent的id来关联

查询老张的所有儿子

mysql 学习总结 (二

查询李3的父亲

mysql 学习总结 (二

 

多对多

一个表当中数据可以对应另一个表当中的多条数据,反之亦然。

专业 课程

mysql 学习总结 (二mysql 学习总结 (二

关系

mysql 学习总结 (二

Python所有的课程

mysql 学习总结 (二

包含计算机基础所有的专业

 

父子id关系

在商品类型当中会涉及到子类型

举个栗子:

服装

男装

中山装

高级中山装

Parent_id

mysql 学习总结 (二

主外键:

主键(primary key):全称叫做“主键约束”,可以是一列或者多列组合,其值可以唯一标识这条数据。

所以主键唯一性,不可以为空。

创建主键

创建表的时候创建主键

CREATE  TABLE  food(id INT PRIMARY KEY,name CHAR(32))。

mysql 学习总结 (二

创建主键,并且自增长

CREATE TABLE food(id INT PRIMARY KEY AUTO_INCREMENT,name CHAR(32))。

mysql 学习总结 (二

添加主键

在已经存在的表当中添加主键

ALTER TABLE food ADD PRIMARY KEY (id);

mysql 学习总结 (二

ALTER TABLE food ADD PRIMARY KEY AUTO_INCREMENT (id); 由于版本 问题,当前命令不会报错,但是无法将主键设置自增长。导致添加的 数据主键为0

ALTER TABLE food MODIFY id INT AUTO_INCREMENT PRIMARY EKY;

 

mysql 学习总结 (二

添加实际上是将一个已经存在的字段修改为主键

删除主键

ALTER TABLE food DROP PRIMARY KEY ;

mysql 学习总结 (二

删除主键只是删除了主键类型,并没有删除字段

mysql 学习总结 (二

如果主键设置自增长,先通过修改语句去掉自增长,然后在删除主键。

ALTER TABLE food MODIFY id INT; 去掉自增长

ALTER TABLE food DROP PRIMARY KEY ; 删除主键

外键

外键:(foreign key):全称叫做“外键约束”,主要用来约束一对多关系, 一对多关系当中,多表当中用外键来关联一表当中的主键字段。

create table parent(id int primary key auto_increment,name char(32));

create table child(id int primary key auto_increment,name char(32),p_id int, foreign key(p_id) references parent(id));

  1. 必须先有外键字段,再设置外键
  2. 一表必须先创建出来,最好有主键;
  3. 外键字段的数据必须一表对应字段有的数据。

 

mysql 学习总结 (二

mysql 学习总结 (二

多对多关系

 专业 课程

mysql 学习总结 (二mysql 学习总结 (二

关系

mysql 学习总结 (二

创建多对多关系:

创建专业表

create table major(id int primary key auto_increment,name char(32));

创建课程表

create table course(id int primary key auto_increment,name char(32));

创建关系表

create table major_course(

id int primary key auto_increment, 设置主键

major_id int, 设置和专业关联的字段

course_id int, 设置和课程关联的字段

foreign key(major_id) references major(id), 使用major_id和major表的 id字段进行外键关联

foreign key(course_id) references course(id)使用course_id和course表 的id字段进行外键关联

);

 

创建专业表

CREATE TABLE major(id INT PRIMARY KEY AUTO_INCREMENT,name CHAR(32));

创建课程表

CREATE TABLE course(id INT PRIMARY KEY AUTO_INCREMENT,name CHAR(32));

 

创建关系表

CREATE TABLE major_course(

Id INT PRIMARY KEY AUTO_INCREMENT, 设置主键

major_id INT, 设置和专业关联的字段

course_id INT, 设置和课程关联的字段

FOREIGN KEY(major_id) REFERENCES major(id), 使用major_id和major 表的id字段进行外键关联

FOREIGN KEY(course_id) REFERENCES COURSE(id)使用course_id和 course表 的id字段进行外键关联

);

 

相关文章: