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 @ 2022-05-06 23:40  Eason辰  阅读(406)  评论(0)    收藏  举报