MySql教程

mysql学习

本文主要是介绍mysql学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

基本架构:
创建数据库,创建表,展示数据库,展现表,删除数据库,删除表。
创建数据库:
在这里插入图片描述
在这里插入图片描述

drop database java01//drop database if exists java01;
show databases;
在这里插入图片描述

在这里插入图片描述
drop table student // drop table if exists student;
show tables;
查看表结构:
desc student;

关于表中的数据增删改查:
增:insert into 表名或者(列名) values (…);
在这里插入图片描述
在这里插入图片描述

改:先通过条件找到对应行,再找到对应列。
update 表名 set 对应列修改 where …
在这里插入图片描述
删:只能按照行删除或者删除所有数据
在这里插入图片描述
查询:先通过条件找到对应行,再找到对应列,除了有group by 除外,需要先进行聚合运算,再找对应行,再找对应列。
找对应列:几个列进行运算,得到若干个新列,可以在此基础上起别名,也可以对一个列或者若干个列进行聚合运算,也可以在此基础上起别名:

在这里插入图片描述
也可以是:select score+id as … from student…
找到对应行:
可以通过升序和降序进行排序,或者进行分页,或者where进行筛选:
升序:asc 降序:desc
分页:limit 数量 offest 下标(从0开始)
select namefrom student1 order by score desc limit 2 offset 0;
此时升序降序和分页查询,where语句可以混合使用。

where后跟and时要把能筛选掉大量行数的放在左边,这样查询得更快。在这里插入图片描述

在这里插入图片描述
当有group by分组时:
需要先进性聚合运算,再筛选行,在选择列,注意:
having 可以对聚合运算得到的结果进行筛选,注意不能用where,where只能用创建表时的列名,不能用运算结果值
注意:这是错误的,不能有where跟聚合运算结果值,一般group by后面需要跟having,不能跟where.
在这里插入图片描述
这是正确的:
select name,sum(score) as allscore from student1 group by name having allscore<140 order by allscore desc limit 1 offset 0;
在这里插入图片描述
当有group by时,筛选行时一般是升序降序,分页,having,混合使用

where语句:
注意模糊查询,一般用在where语句中:
在这里插入图片描述
在这里插入图片描述
where语句常用:and ,or,between…and…
and的优先级比or高,如果先算or得加小括号
在这里插入图片描述
注意:含有null的运算结果都为null,除了null<=>null为真。一般不会涉及null运算。

表和表的关系为一对一,一对多,多对多。
建立在外键和主键的基础上,表中的每一行都是独立的,为一对一关系,两个表,有一个表的主键为另一个表中的外键,为一对多关系,三个表,第三张表中两个外键为另外两个表中的主键。
外键必须是其它表中的主键,否则无法判定对应关系
多表查询建立在表和表的关系上,通过各个表进行内连接然后查询相关数据。
连接:select … from a,b,c,… …

```handlebars
create table if not exists good(
    id int primary key auto_increment,
    name varchar(10)
);
create table if not exists custom(
    id int primary key auto_increment,
    name varchar(10),
    phone varchar(15)
);
create table if not exists ordergood(
    id int primary key auto_increment,
    price decimal(5,2),
    good_id int,
    custom_id int,
    foreign key (good_id) references good(id),
    foreign key (custom_id) references custom(id)
);
insert into good values (null,'西瓜'),
(null,'香蕉'),
(null,'茄子'),
(null,'铅笔'),
(null,'石油');
insert into custom values 
(null,'张飞',12345),
(null,'关羽',938912),
(null,'刘备',9329),
(null,'诸葛亮',12910);
insert into ordergood values 
(null,100,1,2),
(null,104,1,3),
(null,321,5,4),
(null,922,4,1),
(null,93.42,2,3),
(null,19.34,3,1)
(null,140,3,2),
(null,104.4,3,3),
(null,321,3,4);
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=c0c09adb434b491897e89140c1476b35.png?,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZGo5ZGoICDlmL_lmL8=,size_20,color_FFFFFF,t_70,g_se,x_16)


这篇关于mysql学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!