基本架构:
创建数据库,创建表,展示数据库,展现表,删除数据库,删除表。
创建数据库:
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)