mysql left join_关系型数据库之MYSQL

关系型数据库(SQL)

数据库就是用来储存数据的仓库,分为关系型数据库和非关系型数据库,通过关系模型存储数据,称之为“关系型数据库”,简言之就是存储数据的多张表之间存在关联关系。

关系型数据库关系型数据库(SQL)特点:储存方式固定,安全。

  • 基本命令(常用进出数据库系统)
  1. 查看已有虚拟环境:workon
  2. 进入虚拟环境:workon+虚拟环境名
  3. 退出虚拟环境:deactivate
  4. 进入数据库操作系统:mysql -u+用户名 -p+密码

MySQL数据库

  • MySQL数据库作为关系型数据库的一种,也是我们最常用的一种。

746734368a921a7d3d384bdcc705a313.png
  • MySQL数据库的特点
  1. 性能卓越,服务稳定,很少出现异常宕机;
  2. 开放源代码无版本制约,自主性及使用成本低;
  3. 历史悠久,社区和用户非常活跃,遇到问题及时寻求帮助;
  4. 软件体积小,安装使用简单且易于维护,维护成本低;品牌口碑效应;
  5. 支持多种OS,提供多种API接口,支持多种开发语言,对流行的PHP,JAVA很好的支持。

数据库的表数据操作

数据库命令末尾加 “ ; ”

  1. 查看当时时间:select now;
  2. 展示已有数据库:show databeses;
  3. 查看数据库结构:show create database db_name;
  4. 创建数据库及其设置默认编码:create database db_name charater set utf8;(现有ubuntu以默认为utf-8)
  5. 进入数据库:use db_name;
  6. 展示已有表格:show tables;
  7. 查看表结构:show create table tb_name或者desc tb_name;
  8. 创建表格且添加属性:create table tb_name(字段,字段属性))
  9. 展示表格内容:select * from tb_name/表格属性desc tb_name
  10. 插入数据(数据的增删改查)insert into tb_name(字段名(可不写)) value's'(字段值,字段值····)
  11. 数据的(全部)删除:delete from (if exist)tb_name;(condition条件删除)
  12. 表格的删除:drop tb_name;
  13. 枚举:enum;
  14. 数据的更改:update tb_name set 修改属性=属性值 where 判定属性=判定值;
  15. 比较运算符:=,<,<=,>=,>,!=(<>),is null,is not null.
  16. 逻辑运算符:and,not,or。
  17. 排序:select columns from tb_name order by column asc/desc(正逆序,默认正序)
  18. 限制:select * from tb_name limit start_index(索引开始位置),count_index.
  19. 去重:select distinct * from tb_name.
  20. 模糊查询:like 'qwewd%'(1.任意多字符:%,2.任意一个字符:_ )

范围查找

1.连续范围:between a and b,

2.间隔返回:in

# 举个例子

a in (10,20,30[...])

聚合分组常用聚合函数:

  • (只有count里可以写*。)
  • 统计个数:count(column)
  • 求和:sum(column)
  • 最大值:max(column)
  • 最小值:min(column)
  • 平均值:avg(column)
  • 列出字段值:group_concat(column):
  • select column1 from tb_name group by column1.
  • select 聚合函数(column1) from tb_name group by column*.
  • 后可以加筛选条件(同where):having+条件。

先执行where


  • ,再执行聚合函数和别名(as),最后执行having。

特殊命令

一、子查询(了解):

select 中镶嵌select。

二、连接查询(了解):

  • # 内连接(inner join):

无条件内连接:一张表的每一项都会和另一张表的每一项依次连接。

select * from tb_name1 [inner] join tb_name2。

有条件连接:在无条件连接的基础上,加上一个on子句,当连接的时候,筛选出那些有实际意义的记录来进行组合。

select * from tb_name [inner] join tb_name2 on tb_name1.column1=···。

  • # 外连接({left | right} join默认左外连接):

左外连接:(以左表为基准)

两张表做连接的时候,在连接条件不匹配的时候,留下左表中的数据,而右表中的数据以NULL填充

右外连接:(以右表为基准)

对两张表做连接的时候,在连接条件不匹配的时候,留下右表中的数据,而左表中的数据以NULL填充

select * from tb_name1 left|right join tb_name2 on tb_name1.column1=tb_name2.column2。

表结构的修改

  • 修改表名:alter table 原名 to 新名,
  • 修改字段名:alter table tb_name change 原名 新名 字段属性,
  • 修改字段属性:alter table tb_name modify 字段名 属性,
  • 添加字段:alter table tb_name add 字段名 属性,
  • 删除字段:alter table tb_name drop 字段名,

约束条件:

  • 默认约束·:默认赋值default,默认为null(空),
  • 非空约束:not null,空字符不等于空
  • 唯一约束:unique key,
  • 主键约束:primary key,非空且唯一
  • 自增长约束(一般绑定在主键上):auto_increment。(一个表里只能由一个自增长)
  • 外键约束:foreign key

表关系分类

  • 表关系含义:两表连接(外键:次表外键有,主表一定有,主表没有,次表外键一定没有):foreign key+(次表主键属性名) +references 主表(主表主键属性名)
  1. 一对一:两个连接的字段均要设置主键
  2. 多对多:(需要一个中间表,联合主键(两个字段不能同时重复primary key(c_id,s_id)))
  3. 一对多:次表不用主键绑定字段。
关系型数据库之MYSQL​mp.weixin.qq.com
7a15cf840e034b85dd07d6ee366e4073.png

更多有趣资料和干货学习,欢迎关注!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值