Navicat Premium 8.1.12激活(MySql数据库增删改查操作)

Navicat Premium 8.1.12激活(MySql数据库增删改查操作)

1、配置Mysql

Docker配置Mysql可参考之前写的博文:https://blog.csdn.net/weixin_/article/details/

2、数据库操作

2.1 创建数据库


在这里插入图片描述刷新数据库连接后,可以看到新创建的数据库 testsql
在这里插入图片描述在这里插入图片描述

2.2 删除数据库


在这里插入图片描述再次刷新数据库连接,testsql数据库已删除

3、表操作

3.1 创建表


在这里插入图片描述右键表,选择设计表,可以看到表的字段类型和长度跟创建时是一样的。
在这里插入图片描述

3.2 删除表


把表userinfo删除后,刷新连接,表userinfo已删除
在这里插入图片描述

3.3 修改表

为了后面的测试,在把userinfo创建回来。

修改表达用alert语句

3.3.1 向表中添加新字段


在这里插入图片描述再次查看设计表,看到新增的status字段,类型为int
在这里插入图片描述

3.3.2 删除表中的已有字段


在这里插入图片描述再次查看表设计,email字段已被删除
在这里插入图片描述

3.3.3 修改表中已有字段的名称

modify不能用来修改字段名,change可以


在这里插入图片描述再次查看表设计,username已经变成login_name。
在这里插入图片描述
后续不再截图,执行sql语句后,可自行打开设计表进行查看效果。

3.3.4 修改表中已有字段的类型


3.3.5 同时修改字段名和字段类型


3.3.6 修改字段在表中的显示位置


4、数据完整性约束-实体完整性

4.1 主键约束

4.1.1 已有表添加主键约束

每个表有且只能有一个主键约束。
语法:

  • 关键字:primary key
  • 添加约束语法:
    alter table 表名 add constraint 约束名 primary key(字段名);
  • 约束名: PK_字段

4.1.2 删除表主键约束

语法:
删除约束语法:alter table 表名 drop primary key;


4.1.3 创建表指定主键


4.2 唯一约束

特点:不能重复,可以为空,可以添加多个

  • 关键字:unique
  • 添加约束语法:alter table 表名 add constraint 约束名 unique(字段名);
  • 约束名: UQ_字段
  • 删除约束语法:alter table 表名 drop key 约束名;

4.2.1 创建表指定唯一约束


4.2.2 已有表添加唯一约束


4.2.3 已有表删除唯一约束


4.3 主键自增

  • 特点:从1开始,每次自身加1(在oracle中不能使用)
  • 关键字: auto_increment
  • 只能在创建表的时候添加主键自增的约束,而且必须是主键才可以添加

4.3.1 创建表添加主键约束且自增


4.3.2 删除表主键自增


5、数据完整性约束-域完整性

域完整性约束:保证字段的数据准确的
域完整性包括类型约束、非空约束、默认值

1)非空约束

  • 特点:字段不允许为空
  • 关键字: not null
    2)默认值
  • 特点:设置默认的值
  • 关键字: default

6、数据完整性约束-引用完整性

一张表中通用列的取值必须参考另外一张表的主键
引用完整性有外键约束
1)外键约束

  • 特点:设置外键的字段的取值只能参考另一张表中同一个字段的值
  • 关键字: foreign key
  • 添加外键约束的语法:
    alter table 表名1 add constraint 约束名 foreign key(字段名) references 表名2(字段名)
  • 删除外键的语法:alter table 表名 drop foreign key 约束名;

注意:
1、主外键关联
2、外键关联字段名称可以不一样,但是类型必须一致

6.1 创建表使用外键约束


6.2 已有表添加外键约束

  • 语法:alter table 表名1 add constraint 约束名 foreign key(字段名)
    references 表名2(字段名)
  • 约束名: FK_字段名

在这里插入图片描述在这里插入图片描述

6.3 删除表的外键约束

注:如果表A有外键约束,是表B中的主键。那么删除表B时,应该先删除表A的外键约束,才能删除表B。例如,要想删除classroom表,要先删除student表的外键约束,才能删掉classroom表。


7、增删改查Sql


7.1 insert插入数据

语法:insert into 表名[(字段名….)] values(值….)

示例1:


在这里插入图片描述

示例2:
当两个表结构完全相同时,将一个表中的数据插入到另一个表中


在这里插入图片描述

7.2 删除表中满足条件的数据


在这里插入图片描述

7.3 删除表中所有数据


在这里插入图片描述

7.4 truncate和delete的区别

  • truncate清空表的数据

  • 语法:truncate table 表名;

  • 注意:delete与truncate的区别是什么

  • delete是逐行删除,truncate是文件级别的清空

  • delete删除后,自增性会继续执行,不会重置

  • truncate删除后,自增性重置

7.5 Update更新已有数据


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

7.6 Select语句


在这里插入图片描述

8、Select语句

员工表:emp


部门表:


8.1 查询全部信息


在这里插入图片描述

8.2 查询部分列信息


在这里插入图片描述

8.3 查询列(表达式)

SELECT子句中的目标列,可以是属性列,也可以是表达式。比如,sal+sal*0.05就是一个计算表达式。还可以是函数、字符串常量等。例如,lower(ename)


在这里插入图片描述

8.4 查询列指定别名


在这里插入图片描述

8.5 DISTINCT去除重复行

清除数据重复的行,使用DISTINCT关键词。
注意是行对查询结果进行去重,如果查询结果有很多列,所有列数据都完全相同时,才会被去重
在这里插入图片描述


例如两条数据,(3000,SCOTT)和(3000,FORD)就不是重复的数据,不会被去重。
在这里插入图片描述

8.6 Where子句

查询满足条件的组,通过WHERE 子句。多个查询条件中间用AND或者OR连接。AND优先级大于OR

查询条件谓词比较=、>、<、>=、<=、!=、<>、!>、!<、NOT+上述比较运算符确定范围BETWEEN AND、NOT BETWEEN AND确认集合IN、NOT IN字符匹配LIKE、NOT LIKE空值IS NULL、IS NOT NULL多重条件(逻辑运算)AND、OR、NOT

8.6.1 比较


8.6.2 范围查询:Between and


8.6.3 集合查询:IN、Not in


8.6.4 字符匹配:LIKE、NOT LIKE

字符匹配,使用LIKENOT LIKE,后跟匹配串,匹配串可以包含通配符。

通配符含义%(百分号)代表
任意长度的字符串(
长度可以为0)。例如a%b,代表以a开头,以b结尾任意长度的字符串。如ab,aaab, acb都满足_(下横线)代表任意
单个字符。a_b代表以a开头以b结尾的任意长度是3的字符串。

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
注:如果要查询的数据本身包含通配符,要用ESCAPE进行转义,如DB_Design


ESCAPE表示’‘是换码字符,这样匹配串‘’后面紧跟的’_’

就不是通配符,转义为普通的’_’字符

其他示例:以DB_开头的,倒数第3个字符是i的课程的Cno


8.6.5 空值查询:IS NULL、IS NOT NULL


8.6.6 多条件查询:AND、OR


8.7 ORDER BY子句

用处:根据查询结果的1个或者多个列属性进行升降序排列。默认升序ASC (ASC可省略)。降序为DESC
如果有空值,排序时次序按照具体系统实现来决定。例如升序,含空值的组最后显示。降序,含空值的组最先显示。不同系统实现可以不同,只要保持一致即可。

8.7.1 升序ASC


在这里插入图片描述

8.7.2 降序DESC


在这里插入图片描述

8.7.3 limit

limit m,n
m:开始的位置,索引值默认从0开始 n:取值的长度(个数)
limit 0, 100和limit 100等效。


在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

9、聚集函数

当聚合函数有空值时,除COUNT(*)外都是跳过空值只处理非空值。因为COUNT是统计数据条数,所以组中某一列或者部分列有空值并不影响COUNT的统计结果。
注:只有SELECT子句和GROUP BY的HAVING子句才可以用聚集函数,WHERE子句不能使用。

聚集函数SQL含义COUNT(*)统计表中数据条数COUNT(DISTINCT/ALL 列名)统计表中Sno列值的个数且去重
SUM(DISTINCT/ALL 列名)统计表中Grade列值的
总和,必须是数值型
AVG(DISTINCT/ALL 列名)统计表中Grade列值的
平均值,必须是数值型
MAX(DISTINCT/ALL 列名)统计表中Grade列值的
最大值,必须是数值型
MIN(DISTINCT/ALL 列名)统计表中Grade列值的
最小值,必须是数值型

10、GROUP BY子句

将查询结果按某一列或者多列的值进行分组,值相等的为一组
WHERE 子句和HAVING短句的区别在于作用对象不同。WHERE作用于基本表和视图。HAVING短句作用于组,从中选择满足条件的组。having后面可接聚合函数where后不能接聚合函数

注:如果没有对查询结果进行分组,那么聚集函数作用域是整个查询结果。如果有对分组,聚集函数作用域是每个分组。

例如:APP首页的底部有3个btn,事件名是一样的,参数值是btn的名字。查询今天APP底部btn的数据量。如果没有使用分组,那么将统计的是整个3个btn量的总和。采用分组,那将分别统计每个btn的量

例子含义按课程进行分组查看选课人数查询选修了3门以上课程的学生学号。HAVING短句给出了选择组的条件,只有满足条件才会被选中。选择平均成绩大于等于90分的学生学号和平均成绩

共14个员工,3个来自部门No.10,5个来自部门No.20,30个来自No.30
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

10.1 where后不能接聚合函数


在这里插入图片描述

11、SQL关联查询

关联查询又叫做连接查询,常见的连接查询可分为:内连接、外连接、自然连接、自连接

查询方式区别备注等值连接连接运算符是=号非等值连接连接运算符是比较运算符(大于、等于、小于、小于等于、大于等于、不大于、不小于)连接条件中的各连接字段必须是可比的,但名字不必相同。自然连接目标列中重复的属性列去掉自身连接一个表与其自身进行连接表2是表2的别名

11.1 内连接

没有主从表之分,只会将两个表中相等的值列出在结果集中取的是两边相交的共同部分。
关键字:inner join …on
emp表中并没有在40编号的部门,都是编号10,20,30部门的员工。
在这里插入图片描述

dept表中有4个部门:10, 20, 30, 40
在这里插入图片描述
两张表相等的值就是,在10,20,30这3个部门的员工,共14个人。


在这里插入图片描述

11.2 左外连接

left join 前面的是主表,后面的是从表,会遍历主表中的每一个条记录

关键字:left join …on


在这里插入图片描述


在这里插入图片描述
从上面两个查询结果可以看出,谁是主表,谁是从表,查询结果的不同。

11.3 右外连接

主表、从表 right join 前面的是从表,后面的是主表,会遍历主表中的每一个条记录
关键词:right join … on


在这里插入图片描述


在这里插入图片描述

11.4 自连接

给当前表起不同的别名,从而实现自身的连接查询

例如:将emp表指定两个别名,分别是e和p。从e表中获取ename并且给列指定别名“员工”;从p表中获取ename并且给列指定别名“上级领导”。


11.5 子查询

嵌套查询,将一个查询结果当做另一个Navicat Premium 8.1.12激活查询的条件或结果集。子查询最接近思考方式,最自然的查询。
分类:单行子查询,多行子查询


今天的文章
Navicat Premium 8.1.12激活(MySql数据库增删改查操作)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/104258.html

(0)
编程小号编程小号
上一篇 2024-08-06
下一篇 2024-08-06

相关推荐