一文读懂navicat for mysql基础知识

一、数据库的操作

1、新建数据库

2、打开数据库

右键或者双击就可以了。

3、删除数据库

右键–>删除数据库

4、修改数据库

右键–>数据库属性

二、数据类型

1、常用的数据类型

整数:int
小数:decimal
字符串:varchar
日期时间:datatime

2、约束条件

主键:物理上储存的顺序(主键唯一、不能为空,所以允许空值的勾得去掉,不然不能新建或保存,还可以选择下面注释中得自动递增节省工作量)

非空:此字段不允许填空值
唯一:此字段不允许重复

默认值:当不填写时会使用默认值,如果填写以填写的值为止。
外键:维护两个表之间的关联关系

三、备份和恢复

备份:右键–>转储为SQL文件
恢复:右键运转SQl文件

三、操作动作

1、简单查询

语法:

select 字段 form 表名 where 条件;

通过as给表和字段取别名:select name as n from students as s;

消除重复行:select distinct * from students;

比较运算符:

等于:=
大于:>
大于等于:>=
小于: <
小于等于:<=
不等于:!=或<>

逻辑运算符:

与:and
或:or
非:not

模糊查询:

like
%表示任意多个任意字符
表示一个任意字符
例1:查询姓孙的学生
select * from students where name like ‘孙%';
例2:查询姓孙且名字是一个字的学生
select * from students where name like '孙
'

范围查询:

in表示在一个非连接的范围内;
例1:查询家乡是北京或上海或广东的学生
select * from students where hometown in(‘北京',‘上海',‘广东');
between…and…表示在一个连续的范围内
例2:查询年龄为18至28的学生
select * from students where age between 18 and 28;
空判断:
注意:null与''是不同的
判断is null
例1:查询没有填写身份证的学生
select * from students where card is null;
判非空is not null
select * from students where card is not null;

排序:

语法:select * from 表名 order by 列1 asc|desc,列1 asc|desc…;
默认按照列值从小到大排列
asc从小到大排序,即升序。
desc从大到小排序,即降序。

聚合函数:

1、count(*)表示计算总行数,括号中写星和列名结果一样。
聚合函数不能再where中使用
例1:查询学生总数
select count(*) from students;
2、max(列)表示求此列的最大值
例2:查询女生的最小年龄
select max(age) from students where sex=‘女';
3、min(列)表示此列最小值
例:查询1班最大的年龄
select min(age) from students where 班级=‘1'
4、sum(列)表示求此列的和
select sum(age) from students
5、avg(列)表示求此列的平均值
select avg(age) from students

分组:

1、按照字段分组,表示此字段相同的数据会被放到一个组中
2、分组后,分组的依据列会显示在结果集中,其他列不会显示在结果集中
3、可以对分组后的数据进行统计,做聚合运算
语法:
select 列1,列2,count(*) from 表名 group by/having 列1,列2
having后面的条件运算符与where的相同
对比where与having
1、where是对from后面指定的表进行数据筛选,属于对原始数据的筛选
2、having是对group by 的结果进行筛选

分页查询:获取部分行

1、当数据过大时,在一页中查看数据是一件非常麻烦的事情
2、语法:
select * from limit start,count;
2.1 从start开始,获取count条数据。
2.2 start索引从0开始
例1:查询前3行学生信息
select * from students limit 0,3;
分页:
1、已知:每页显示m条数据,求:显示第n页的数据
select * from students limit (n-1)*m,m;
2、求总页数
查询总条数p1
使用p1除以m得到p2
如果整除则p2为总数页
如果不是整数则p2+1为总页数

连接查询:

1、当查询结果得列来自于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回
2、等值连接查询:查询的结果为两个表匹配到的数据
3、左连接查询:查询结果为两个表匹配到的数据加左表特有的数据,对于右表中不存在的数据使用null
4、右连接查询:查询结果为两个表匹配到的数据加右表特有的数据,对于左表中不存在的数据使用null

等值连接:

方式1:select * from 表1,表2 where 表1.列=表2.列;
方式2(又称内连接): select * from 表1 inner join 表2 on 表1.列=表2.列;
方式3(表内连接):select * from 表1,表2,表3 where 表1.列=表2.列 and 表2=表3;
方式4(又称左连接): select * from 表1 left join 表2 on 表1.列=表2.列;
方式5(又称右连接): select * from 表1 right join 表2 on 表1.列=表2.列;

主查询:

主要查询的对象,第一条select语句

子查询:

在第一个select语句中嵌入了另一个select语句,那么嵌套的select语句称之为子查询

主查询和子查询的关系:

1、子查询时嵌入到主查询中
2、子查询是辅助主查询的,要么充当条件,要么充当数据源
3、子查询是可以独立存在的语句,是一条完整的select语句

子查询分类:

1、标量子查询:子查询返回的结果是一个数据(一行一列)
2、列子查询:返回的结果是一列(一列多行)
3、行子查询:返回的结果是一行(一行多列)
4、表级子查询:返回的结果是多行多列
标量子查询:
例1:查询班级学生的平均年龄
select avg(age) from students;
列子查询:
例1:查询18岁的学生学号
select studentno from students where age=18;
行级查询:
例1:查询男生中年龄最大的学生信息
select max(age) from students where sex=‘男';

2、插入数据

语法:
insert into 表名 values(…)
插入多条:insert into 表名 values(…),(…)

3、删除数据

语法:
delete from 表名 where 条件

4、修改/更新数据

语法:
update 表名 set 列1=值1,列2=值2… where 条件

四、高级

视图:

1、对于复杂的查询,在很多地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦。
2、解决:定义视图。
3、视图本质就是对查询的封装
4、定义视图,建议以V_开头
select view 视图名称 as select 语气;
查看视图:查看表会将所有的视图也列出来

show tables;

删除视图:

drop view 视图名称;

使用:视图的用途就是查询
select * from 视图名称;

索引:

语法:
查看索引:show index from 表名;

外键:

一个外键的值一定是另一个表的主键,在设置主键以前,必须先将两个表选项中的引擎修改为InnoDB:

然后设置外键:

注意:外键所在的表不能设置主键

唯一:

设置唯一后,数据能出现重复的数据。

输入重复的数据就会报错:

五、知识补充

ctr+/ 注释作用
笛卡尔积=两个表数据个数相乘

以上就是一文读懂navicat for mysql基础知识的详细内容,更多关于navicat mysql基础的资料请关注我们其它相关文章!

(0)

相关推荐

  • MySQL数据库安装和Navicat for MySQL配合使用教程

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司. MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一. 体积小.速度快.成本低.开放源代码等特点. MySQL下载地址: http://dev.mysql.com/downloads/installer/ 双击进入的是安装引导界面,点击N

  • Navicat for MySQL导出表结构脚本的简单方法

    使用MySQL可视化工具Navicat导出MySQL的表结构脚本的方法. 1.右键Navicat中的数据库→数据传输(Data Transfer). 2.左边数据库对象(Database Objects)中选择对应的表,右边目标(Target)中选择文件(File)选择脚本存储的名称及位置,再在上面选择高级(Advanced). 3.去掉记录选项(Record Options)中插入记录(Insert records)的勾. 4.左边的表选项(Table Options)里,可以根据自己情况勾选

  • 解决Navicat for MySQL 连接 MySQL 报2005错误的问题

    上篇文章给大家介绍过解决Navicat for Mysql连接报错1251的问题(连接失败),今天介绍Navicat for MySQL 连接 MySQL 报2005错误的问题. 关于Navicat for MySQL 连接 MySQL 报2005 -Unknown MySQL server host 'localhost'(0)错误的情况与解决方法 2005报错原因: 在本地MySQL的服务启动后,由于Navicat的一些功能需要联网才可以使用,由于报错提示说连接不上主机的localhost,

  • Navicat for MySQL 15注册激活详细教程

    1.下载Navicat for MySQL 15 https://www.navicat.com.cn/download/navicat-for-mysql 2.下载激活工具 链接: https://pan.baidu.com/s/1BtEADEk3_3oKc1ic7IHhiQ   提取码: haqj 3.安装Mavicat,按步骤安装即可,安装完毕后先不要打开软件,断开网络连接,将激活工具复制到Navicat安装路径下,以管理员身份运行. 在弹出界面选择Navicat 15 Products选

  • 安装mysql8.0.11及修改root密码、连接navicat for mysql的思路详解

    1.1. 下载: 官网下载zip包,我下载的是64位的: 下载地址:https://dev.mysql.com/downloads/mysql/ 下载zip的包: 下载后解压:(解压在哪个盘都可以的) 我放在了这里 E:\web\mysql-8.0.11-winx64 ,顺便缩短了文件名,所以为 E:\web\mysql-8.0.11. 1.3. 生成data文件: 以管理员身份运行cmd 程序--输入cmd 找到cmd.exe 右键以管理员身份运行 进入E:\web\mysql-8.0.11\

  • navicat 8 for mysql建库的方法

    开发网站,往往需要用数据库保存数据.我们该如何创建数据库与创建数据表呢?方法其实很简单,下面就由小编教你如何用Navicat for MySql创建数据库的操作流程. 第一步:在本地创建数据库,首先把数据库运行环境启动,Apache与MySQL都显示绿色,表示环境开启成功,否则环境开启失败就无法操作数据库. 第二步:打开Navicat for MySql这个数据库管理工具,它是用来管理我们的数据库的创建,管理等操作,如下图所示: 第三步:打开Navicat for MySql之后,在左侧用鼠标右

  • Navicat for MySQL定时备份数据库及数据恢复详解

    在做数据库修改或删除操作中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库.本篇文章主要讲述Navicat for MySQL定时备份数据库和数据恢复等功能,同时可以定时播放电影等设置,希望对您有所帮助,如果文章中存在错误或不足之处,还请海涵~ 一. 设置计划任务定时备份数据库 计划任务就是让电脑在指定的时间内执行指定的动作,这些动作可以是一个程序,也可以是一个批处理,但是至少是可以运行的!其实再通俗一点也就是相当于你在那个时间里面进行了对某个东西对鼠标双击的操作. 1.

  • Navicat for MySQL 11注册码\激活码汇总

    推荐阅读: Navicat12.1系列破解激活教程亲测有效 Navicat for MySQL注册码用来激活 Navicat for MySQL 软件,只要拥有 Navicat 注册码就能激活相应的 Navicat 产品.目前 Navicat 注册码比较难找,很多已经流传出来的注册码已经被官方注销掉,正规途径需要通过 Navicat 官网授权获取.为节省用户的时间,现将已经被禁用的Navicat for MySQL注册码进行收集整理. Navicat for MySQL 注册码获取地址:http

  • 一文读懂navicat for mysql基础知识

    一.数据库的操作 1.新建数据库 2.打开数据库 右键或者双击就可以了. 3.删除数据库 右键–>删除数据库 4.修改数据库 右键–>数据库属性 二.数据类型 1.常用的数据类型 整数:int 小数:decimal 字符串:varchar 日期时间:datatime 2.约束条件 主键:物理上储存的顺序(主键唯一.不能为空,所以允许空值的勾得去掉,不然不能新建或保存,还可以选择下面注释中得自动递增节省工作量) 非空:此字段不允许填空值 唯一:此字段不允许重复 默认值:当不填写时会使用默认值,如

  • 一文读懂数据库管理工具 Navicat 和 DBeaver

    Navicat "Navicat" 是一套可创建多个连接的数据库管理工具,用以方便管理 MySQL.Oracle.PostgreSQL.SQLite.SQL Server.MariaDB 和/或 MongoDB 等不同类型的数据库,并支持管理某些云数据库,例如阿里云.‎腾讯云.Navicat 和 Navicat Premium 都可以用来连接和管理数据库.Navicat Premium 支持更多的数据库,并且功能更多,但是这两个都是收费软件. Navicat Premium 15:ht

  • 一文读懂MySQL 表分区

    目录 1. 什么是表分区 2. 分区的两种方式 2.1 水平切分 2.2 垂直切分 3. 为什么需要表分区 4. 分区实践 4.1 RANGE 分区 4.2 LIST 分区 4.3 HASH 分区 4.4 KEY 分区 4.5 COLUMNS 分区 5. 常见分区命令 6. 小结 松哥之前写过文章跟大家介绍过用 MyCat 实现 MySQL 的分库分表,不知道有没有小伙伴研究过,MySQL 其实也自带了分区功能,我们可以创建一个带有分区的表,而且不需要借助任何外部工具,今天我们就一起来看看. 1

  • 一文读懂vue动态属性数据绑定(v-bind指令)

    v-bind的基本用法 一.本节说明 前面的章节我们学习了如何向页面html标签进行插值操作,那么如果我们想动态改变html标签的属性,该怎么办呢? 这就是我们这节开始要讲的内容v-bind. 二. 怎么做 ":"为v-bind的简写形式,也可称为语法糖 三. 效果 四. 深入 在上图中将a标签的href属性值设置为toutiao,VUE实例将自动去data里面寻找toutiao属性进行值绑定. 不只是a标签,所有的html标签属性都可以通过v-bind进行值绑定,然后通过改变数据动态

  • 一文读懂c++11 Lambda表达式

    1.简介 1.1定义 C++11新增了很多特性,Lambda表达式(Lambda expression)就是其中之一,很多语言都提供了 Lambda 表达式,如 Python,Java ,C#等.本质上, Lambda 表达式是一个可调用的代码单元[1]^{[1]}[1].实际上是一个闭包(closure),类似于一个匿名函数,拥有捕获所在作用域中变量的能力,能够将函数做为对象一样使用,通常用来实现回调函数.代理等功能.Lambda表达式是函数式编程的基础,C++11引入了Lambda则弥补了C

  • 一文读懂Python 枚举

    enum 是一组绑定到唯一常数值的符号名称,并且具备可迭代性和可比较性的特性.我们可以使用 enum 创建具有良好定义的标识符,而不是直接使用魔法字符串或整数,也便于开发工程师的代码维护. 创建枚举 我们可以使用 class 语法创建一个枚举类型,方便我们进行读写,另外,根据函数 API 的描述定义,我们可以创建一个 enum 的子类,如下: from enum import Enum class HttpStatus(Enum): OK = 200 BAD_REQUEST = 400 FORB

  • 一文读懂python Scrapy爬虫框架

    Scrapy是什么? 先看官网上的说明,http://scrapy-chs.readthedocs.io/zh_CN/latest/intro/overview.html Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫. S

  • 一文读懂Android Kotlin的数据流

    目录 一.Android分层架构 二.ViewModel + LiveData 2.1 LiveData 特性 观察者的回调永远发生在主线程 仅持有单个且最新数据 自动取消订阅 提供「可读可写」和「仅可读」两种方式 配合 DataBinding 实现「双向绑定」 2.2 LiveData的缺陷 value 可以是 nullable 的 传入正确的 lifecycleOwner 粘性事件 默认不防抖 transformation 工作在主线程 2.3 LiveData 小结 三.Flow 3.1

  • 一文读懂ava中的Volatile关键字使用

    在本文中,我们会介绍java中的一个关键字volatile. volatile的中文意思是易挥发的,不稳定的.那么在java中使用是什么意思呢? 我们知道,在java中,每个线程都会有个自己的内存空间,我们称之为working memory.这个空间会缓存一些变量的信息,从而提升程序的性能.当执行完某个操作之后,thread会将更新后的变量更新到主缓存中,以供其他线程读写. 因为变量存在working memory和main memory两个地方,那么就有可能出现不一致的情况. 那么我们就可以使

  • 一文读懂JAVA中HttpURLConnection的用法

    针对JDK中的URLConnection连接Servlet的问题,网上有虽然有所涉及,但是只是说明了某一个或几个问题,是以FAQ的方式来解决的,而且比较零散,现在对这个类的使用就本人在项目中的使用经验做如下总结: 1:> URL请求的类别: 分为二类,GET与POST请求.二者的区别在于: a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet, b:) post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内. 2:>

随机推荐