目录
1):左连接( LEFT JOIN),体现在from语法后面
2):右连接(RIGHT JOIN),体现在from语法后面
3):内连接(INNER JOIN),体现在from语法后面
一、登录数据库:
1):命令行:输入命令,然后输入root账号的密码。
mysql -uroot -p
结果:
ps:当出现“zsh: command not found: mysql”时应急解决办法:
alias mysql=/usr/local/mysql/bin/mysql
再次输入 “mysql -uroot -p”即可
2):工具:DBeaver
下载地址:Download | DBeaver Community
二、操作库:创建、显示、删除数据库
1):创建数据库
create database 【库名】;
2):显示数据库
show databases; # 全部数据库
show databases like 【库名】/'%【库名】%'; # 定向查询
3):删除数据库
drop database 【库名】;
4):其他操作
use oldboy; # 连接数据库
select version(); #查看数据库版本
select user(); #查看数据库用户
select now(); #查看当前时间
三、操作表:使用、创建、删除、修改、显示表
1):创建表
create table test02(
id int(8),
name char(20),
sex int(4) );
2):删除表
drop table test02;
3):显示表
show tables;
4):修改表名
rename table test to test01;
四、操作数据:增、删、改、查(重点中的重点)(重点)
1):插入表中数据
单条数据:
insert into test values(1001 ,'fangbu', 16);
多条数据:
insert into test values(1001 ,'Tangbu', 16),(1002,'Wang', 17),(1002 ,'Jack', 17),(1003 ,'Tom', 16);
2):删除表中数据
delete from test where id=1001;
3):修改表中数据
update test set name='FangBu' where id=1001;
4):查询表中数据(后面详细说明)
select * from test;
5):*增加表中字段
alter table test add passtest int(4);
6):*删除表中字段
alter table test drop column passtest;
7):*修改表中字段
alter table 表名 change 旧得字段 新的字段 字段的数据类型;
alter table ta0 change unames uname varchar(20);
五、select 查询详解
在设计数据库时,经常会出现分表的情况,原因是减少重复信息存储节省空间。
书写顺序
select distinct * from '表名' where '限制条件' group by '分组依据' having '过滤条件' order by limit '展示条数'
执行顺序
from -- 查询
where -- 限制条件
group by -- 分组
having -- 过滤条件
order by -- 排序
limit -- 展示条数
distinct -- 去重
select -- 查询的结果
正则:select * from emp where name regexp '^j.*(n|y)$';
集合查询:max 、min 、avg 、sum 、count 、group_concat 。
内连接:inner join
左连接:left join
右连接:right join
全连接: 左连接 union 右连接
replace 替换
拼接:concat、concat_ws、group_concat
准备数据:
来几个链接:
练习:
1):左连接( LEFT JOIN),体现在from语法后面
select * from Student s left join Course c on c.CID=s.SID;
2):右连接(RIGHT JOIN),体现在from语法后面
select * from Student s right join Course c on c.CID=s.SID;
总结:不管是左连接还是右连接,表的显示顺序和【from】后面的顺序一致,显示数据数量根据基础表的数量而定,即left join后面的表,和right join前面的表。
3):内连接(INNER JOIN),体现在from语法后面
select * from Student s inner join Course c on s.SID=c.CID;
等价于
select * from Student s,Course c where s.SID=c.CID;
4):分组查询(GROUP BY)
select class_id, count(*) from statistics GROUP BY class_id;
结果:
5):条件查询(WHERE)
select * from test01 where id=1001;
结果:
6):排序函数(ORDER BY)
select * from test01 order by id desc;
结果:
其中order by默认是生序(asc),倒序使用desc。