Navicat可视化数据库

Navicat可视化数据库


昨日回顾


自增特性


自增值是唯一的,原值被删除后,新创建的也不会继承被删除的值

delete from无法重置自增值,truncate则可以实现重置


外键约束


外键字段:标识数据与表关系的字段,为从表的主键


外交关系


存在外键字段的就是父表,否则就是从表


一对多:从表中数据可以被个父表的多个数据对应,而父表中的数据不能与从表的数据多次对应;比如,一个团队可以有多个成员,但是该成员不能添加多个团队;这当中的团队就是一,就是从表;成员就是多,就是父表;外键字段一般就建立在多中。


多对多:多对多中的数据表都是从表,需重新创建一个表来表示双方的关系,重新创建的关系表才是父表;比如说作者与书籍,一个作者可以编写多本书籍,一本书籍也可以有多个作者;作者数据和数据数据都是从表,关系建立的才是父表。


一对一:一对一中双方都可以当对方的从表或者父表,常规我们将外键字段添加于使用率较高的表中;就比如说是信息对应,用户的基础信息可以和详细信息进行关联,作为基础信息的访问量肯定更高,那么就将基础信息作为父表,详细信息作为父表。


外键书写


	foreign key(字段名) references 表名(字段名)
  on update cascade  # 级联更新
  on delete cascade  # 级联删除

查询关键字


where筛选


比较运算符:< <= > >=

逻辑运算符:and or not

成员运算符:in not in

身份运算符:is

模糊查询符:like(启动模糊查询) % (匹配任意数量字符) _(匹配单个数量字符)


group by分组


按照指定条件将单个数据组织成整体

 '''聚合函数'''
		max\min\sum\count\avg  # 筛选出 最大,最小,求和,次数,平局值
 '''拼接操作'''
		group_concat()  # 按照要求拼接数据并分组
  group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )
 '''字段别名'''
		select id as '序号',name as '姓名' from emp;

今日学习内容


having过滤


功能与where别无二致,相同的判断语法;主要差别在于where是在分组之前对数据进行判断,而having是在分组之后对数据进行判断,所以一个我们称where为筛选,having为过滤。


使用实例:

统计出每个部门年龄在30岁以上的员工的平均薪资并保留平均薪资大于10000的部门;

对于编写SQL语句,我们牢记遇到多层筛选题目,需要先分解题目,然后依次解题;

1.筛选出三十岁以上的员工的平均薪资

select post,avg(salary) from emp where age> group by post;

2.筛选出平均薪资大于10000的数据

  select post,avg(salary) from emp 
  	where age>30 
    group by post
    having avg(salary) > 10000
    ;

'''针对聚合函数 如果还需要在其他地方作为条件使用 可以先起别名'''

  select post,avg(salary) as avg_salary from emp 
  # 计算了一次平均数 起个名字
  	where age>30 
    group by post
    having avg_salary > 10000
    # 过滤的时候直接按照别名进行判断
    ;

distinct去重


select distinct age from emp;

针对去重功能很简单很好理解

需要注意的点是,数据必须是一模一样才可被去重,如果带上主键,那么就不存在完全一样的数据了,也就没办法达到去重的作用了;所以封装起来的数据,没办法从外部去使用去重功能。


order by排序


默认是升序

select * from emp order by salary asc;  # asc可忽略

使用关键词desc转为降序

select * from emp order by salary desc;

先筛选在排序:

	select post,avg(salary) as avg_salary from emp  # 先算出平均工资
  		where age > 10  # 删选出年龄大于10
    	group by post  # 制表
      having avg_salary > 1000  # 过滤出薪资大于1000
      order by avg_salary desc;  # 按照降序排序

limit分页


限制展示数据量

select * from emp limit 5;  # 限制只展示五条数据
select * from emp limit 5,5;  # 分页效果
select * from emp order by salary desc limit 1;  # 查询工资最高的人的详细信息
# 当数据特别多的时候 经常使用limit来限制展示条数 节省资源 防止系统崩溃

regexp正则


select * from emp where name regexp '^j.*(n|y)$';
# 按照正则表达式筛选

多表查询思路


第一种:子查询
	一张表一张表的查找

第二种:连表操作
	将多张表拼接在一起,形成一张大表,基于大表去做数据查询获取消息
	
	拼接表关键字
	
	inner join 内连接 只连接两张表中有对应关系的数据
	select * from emp inner join dep on emp.dep_id=dep.id;
	
	left join 左连接 以左表为基准 展示所有的数据 没有对应项则用NULL填充
	select * from emp left join dep on emp.dep_id=dep.id;
	
	right join 右链接 以右表为基准 展示所有的数据 没有对应项则用NULL填充
	select * from emp right join dep on emp.dep_id=dep.id;
	
	union 全连接 左右两表数据全部展示 没有对应项则用NULL填充
	select * from emp left join dep on emp.dep_id=dep.id
	select * from emp right join dep on emp.dep_id=dep.id;


mac版破解汉化Navicat下载地址


如果报错 不能完成此操作,因为您没有权限,或者是不能完成此操作 因为您没有必要的权限,就是因为mac自带的安全机制。我们可以开机时长按开机键进入选项模式

在sip系统完整性关闭前,我们先检查是否启用了SIP系统完整性保护。

打开终端输入以下命令并回车(可以通过点击屏幕右上角的搜索图标,输入终端快速运行):

csrutil status

你会看到以下信息中的一个,指示SIP状态

未关闭 enabled:

System Integrity Protection status: enabled.

已关闭 disabled:

System Integrity Protection status: disabled

如果是未关闭状态就需要关闭SIP了!

ARM M1

ARM M1 处理器关闭 SIP 步骤

  1. 关机

  2. 按住开机键不松手直到出现下图的画面,然后点击选项

  3. 点击继续

  4. 点击菜单栏的实用工具,再点击终端

  5. 输入csrutil disable,然后按下回车也就是 return

  6. 输入y,然后按下回车也就是 return

  7. 输入您的电脑密码,然后按下回车也就是 return

  8. 等待执行结果……

  9. 出现 System Integrity Protection is off. 证明 SIP 已成功关闭。

  10. 输入 reboot 然后按下回车也就是 return 键重启电脑即可。

如果后期想再开启 SIP,只需要将上面第 5 步的 csrutil disable 换成 csrutil enable 即可。



内部封装了SQL语句,用户使用鼠标点击,底层依旧是使用SQL语句进行操作

连接数据库 创建库和表 录入数据 操作数据 外键 SQL文件 逆向数据库到模型 查询(自己写SQL语句)


练习题


练习题就再单独编写一篇博客吧,今天被软件折磨吐了。

posted @   Eason辰  阅读(323)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示