B026-MySQL基础

目录

      • 数据库概述
        • 数据库概念
        • 数据库的由来和发展
        • 常见的关系型数据库服务器(DBMS)
        • SQL概述
        • 表的概念
      • 数据库的安装与配置
        • 安装
        • 启动和连接MySQL
          • 启动MySQL服务
          • 连接MySQL
        • MySQL图形化管理软件-Navicat
        • 数据库安装失败解决方案
      • MySQL数据库操作
        • 数据库操作和存储引擎
        • MySQL常用列类型[Mysql数据类型---Java数据类型]
        • 表的操作
      • 查询操作

数据库概述

在这里插入图片描述

数据库概念

在这里插入图片描述
1.数据库(Database,简称DB)
是按照数据结构来组织、存储和管理数据的仓库.保存有组织的数据的容器(通常是一个文件或一组文件)
【算法+IO+文件】

2.数据库管理系统(Database Management System,简称DBMS) — mysql
① 专门用于管理数据库的计算机系统软件;
② 能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并对数据完整性、安全性进行控制;
③ 我们一般说的数据库,就是指的DBMS,例如我们马上学习的MySQL就是其中之一;

3.数据库应用系统(Database Application System)
使用数据库技术的系统,基本上所有的信息系统都是数据库应用系统,它通常由软件、数据库和数据管理员组成。我们开发一款软件,然后这款软件能使用到数据库(和数据库有关系,有通信),那么,这一款软件我们就可以称之为数据库应用系统。

数据库的由来和发展

见文档

常见的关系型数据库服务器(DBMS)
数据库公司特点
OracleOracle(甲骨文/神域)运行稳定,可移植性高,功能齐全,性能超群!适用于大型企业领域。
DB2IBM速度快、可靠性好,适于海量数据,恢复性极强。适用于大中型企业领域。
SQL SERVER微软全面,效率高,界面友好,操作容易,但是不跨平台。适用于于中小型企业领域。
MYSQLAB–>SUN–>Oracle开源,体积小,速度快。适用于于中小型企业领域。
SQL概述

SQL:结构化查询语言(Structured Query Language),是关系数据库的标准语言,它的特点是:简单、灵活、功能强大,包含6个部分

一、数据查询语言(DQL):query查询[掌握]–用的多
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。

二、数据操作语言(DML):【掌握】–用的多
其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。

三、事务处理语言(TPL):java概念
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

四、数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

五、数据定义语言(DDL):
其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。

六、指针控制语言(CCL):Sql编程!..
它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

表的概念

表的特点和常用术语:
表具有固定的列和任意的行,在数学上称为”关系”;
二维表是同类实体的各种属性的集合,每个实体对应于表中的一行,在关系中称为元组,相当于通常的一条记录;表中的列表示属性,称为Field,相当于通常记录中的一个数据项,也叫列/字段
在这里插入图片描述

数据库的安装与配置

安装

见文档

启动和连接MySQL
启动MySQL服务

查看是否启动:
方式一:控制面板 - 管理工具 - 服务 - 查找mysql
方式二:任务管理器 - 服务 - 打开服务 - 查找mysql
方式三:win+r 输入 services.msc - 查找mysql

关闭mysql方式:
1.在服务里右键mysql可以停止mysql
2.win+R - net stop MySQL

启动方式:
方式一:在服务里右键mysql可以启动mysql
方式二:win+R - net start mysql

连接MySQL

win+r - mysql -u(用户名) -p(密码) -h(host) -P(端口)
如输入 mysql -uroot -proot -hlocalhost -P3306 回车

在运行窗口或cmd窗口输入都可以
密码可防窥输入,-p后回车再输入将以*号显示

MySQL图形化管理软件-Navicat

直接安装

连接mysql
在这里插入图片描述

数据库安装失败解决方案

控制面板 - 程序和功能 - 卸载程序 - 卸载mysql

查看Navicat连接不上代表卸载成功

卸载残留文件:
C盘 - Program Files 里搜索 mysql文件夹 删除掉
C盘 - Program Files (x86) 里搜索 mysql文件夹 删除掉
C盘 - ProgramData(这是个隐藏文件夹) 里搜索 mysql数据文件 删除掉

重启电脑

重新安装

MySQL数据库操作

数据库操作和存储引擎

见文档

MySQL常用列类型[Mysql数据类型—Java数据类型]

常用对照
在这里插入图片描述
其他见文档

表的操作

两种创建表的方式,查看表结构和删除表,表的约束
见文档

查询操作

见文档和sql文件

-- 对表的查看 - 数据库查询语句
	SELECT 列名1,列名2,列名3,...(*) FROM 表名(视图 子查询)-->数据源; -- 不建议写 * (效率慢) 数据库优化方法
	SELECT * FROM product;  
 
    -- 查询所有货品(product) 信息
	SELECT * FROM product;

    -- 查询所有货品的id,productName,salePrice
	SELECT id,productName,salePrice  FROM product;

-- 消除重复的数据
	SELECT DISTINCT  brand FROM product
	
-- 实现数学运算
    -- 查询所有货品的id,名称和批发价(批发价=卖价*折扣)
    SELECT id, productName, salePrice*costPrice FROM product
	-- 查询所有货品的id,名称,和各进50个的成本价(成本=costPrice)
    SELECT id, productName, 50*costPrice FROM product;
	-- 查询所有货品的id,名称,各进50个,并且每个运费1元的成
	SELECT id, productName, 50*(costPrice+1) FROM product;

-- 别名的使用
    -- 查询所有货品的id,名称,各进50个,并且每个运费1元的成本(使用别名)
	SELECT id, productName, 50*(costPrice+1) as 成本 FROM product;  -- 使用别名的第一种方式
	SELECT id, productName, 50*(costPrice+1) 成本 FROM product;  -- 使用别名的第二种方式

-- 设置显示格式 CONCAT 函数		ex:列名:productSalePrice,行内容:罗技M90商品的零售价为:90.00
	SELECT CONCAT(productName,'商品的零售价为:',salePrice) AS productSalePrice FROM product;

-- 过滤查询 比较运算符 ------------- 公式
	SELECT 列名1,列名2,... FROM 表名  WHERE  条件;  单条件
	SELECT 列名1,列名2,... FROM 表名  WHERE  条件1 AND 条件2;  多条件  AND () 
	SELECT 列名1,列名2,... FROM 表名  WHERE  条件1 OR 条件2;  多条件  or ()

    -- 练习 
	-- 查询货品零售价为119的所有货品信息.
    SELECT * FROM product  WHERE salePrice=119;
	-- 查询货品名为罗技G9X的所有货品信息.
	SELECT * FROM product WHERE productName='罗技G9X';
	-- 查询货品名 不为 罗技G9X的所有货品信息.
	SELECT * FROM product WHERE productName<>'罗技G9X';
	-- 查询分类编号不等于2的货品信息
	SELECT * FROM product WHERE dir_id!=2;
	-- 查询货品名称,零售价,对于零售价小于等于200的货品
	SELECT productName,salePrice FROM product WHERE salePrice<=200;

	-- 查询id,货品名称,批发价,对于批发价大于350的货品
	SELECT id,productName,salePrice*cutoff AS pfj FROM product WHERE salePrice*cutoff>350;
	-- 思考:使用where后面使用别名不行,总结select和where的执行顺序
     SQL 的执行顺序  (面试题)
     from -> where -> SELECT 

-- 字符串大小写的区分 BINARY
	SELECT * FROM product WHERE  BINARY productName='罗技g9x'


-- 逻辑运算  and or NOT(....)
	-- 选择id,货品名称,批发价在300-400之间的货品
    SELECT id,productName, salePrice*cutoff as pfj from product where salePrice*cutoff>=300 and  salePrice*cutoff<=400   
	-- 选择id,货品名称,分类编号为2,4的所有货品
	SELECT id,productName ,dir_id FROM product where dir_id=2 OR dir_id=4;
	-- 选择id,货品名词,分类编号不为2的所有商品
	SELECT id, productName ,dir_id FROM product where dir_id != 2;
	-- 选择id,货品名称,分类编号的货品零售价大于等于250或者是成本大于等于200
	select id,productName ,dir_id ,salePrice,costPrice from product where salePrice>=250 OR costPrice>=200;

	SELECT 列名1,列名2,... FROM 表名 WHERE 条件;  单条件

	select 列名1,列名2,... from 表名 where 条件1 and (or) 条件2; -- ============================= 特重要


-- 范围查询  BETWEEN AND  between and 
	SELECT 列名1,列名2,(*) FROM 表名  WHERE 列名  between 最小值  and 最大值 ----

	-- 选择id,货品名称,批发价在300-400之间的货品
	SELECT id,productName,salePrice*cutoff pfj FROM product WHERE salePrice*cutoff>=300 AND salePrice*cutoff<=400; -- 没有用between and 的写法
	SELECT id,productName,salePrice*cutoff pfj FROM product WHERE salePrice*cutoff between 300 AND 400; -- 用between and 的写法

	-- 选择id,货品名称,批发价不在300-400之间的货品
	SELECT id,productName,salePrice*cutoff pfj FROM product WHERE salePrice*cutoff NOT between 300 AND 400;  -- not 的使用

-- 集合查询  in
	SELECT 列名1,列名2 (*) FROM 表名 WHERE 列名 in(1,2,)
   
	-- 选择id,货品名称,分类编号为2,4的所有货品
	SELECT * FROM product where dir_id=2 or dir_id=4; -- 不要in的写法
	SELECT * FROM product where dir_id IN(2,4); -- 用in的写法

	-- 选择id,货品名称,分类编号不为2,4的所有货品
	SELECT * FROM product where dir_id NOT IN(2,4);
	
-- 空值查询
	-- 查询商品名为NULL的所有商品信息
	SELECT * FROM product where productName  is  null -- 为空 

	SELECT * FROM product where productName ="";  -- 对空字符串的查询

-- 模糊查询 LIKE    % (匹配零个或多个字符串) _(匹配一个字符串)  like 
	-- 查询id,货品名称,货品名称匹配'%罗技M9_'  
	SELECT id,productName  FROM product  WHERE productName LIKE '%罗技M9_'
	-- 查询id,货品名称,分类编号,零售价大于等于200并且货品名称匹配'%罗技M1__'
	SELECT id,productName,dir_id,salePrice  FROM product  WHERE salePrice>200 AND productName LIKE '%罗技%'
	
-- 正则表达式 
	-- 查找product_name字段中包含字母的所有数据
	SELECT * FROM product WHERE  productName  REGEXP'[a-zA-Z]'
	
-- 排序  ORDER BY    DESC   ASC 
	-- 选择id,货品名称,分类编号,零售价并且按零售价降序排序
    SELECT id,productName,dir_id,salePrice FROM product ORDER BY salePrice  DESC  -- DESC 降序
    SELECT id,productName,dir_id,salePrice FROM product ORDER BY salePrice   -- ORDER BY 默认 是 ASC
     
	-- 选择id,货品名称,分类编号,零售价先按分类编号排序,再按零售价排序 
    SELECT id,productName,dir_id,salePrice FROM product ORDER BY dir_id, salePrice

	-- 查询M系列并按照批发价排序(加上别名)
	SELECT  *, salePrice*cutoff pfj FROM product WHERE productName like '%M%' ORDER BY pfj
     SQL 的执行顺序  (面试题)    
     from-> where -> SELECT -> ORDER BY
	 
	-- 查询分类为2并按照批发价排序(加上别名)      
	SELECT  *, salePrice*cutoff pfj FROM product WHERE dir_id=2 ORDER BY  pfj
     
--  分页查询 LIMIT  (重点 慢慢来掌握)
    逻辑分页-- 一次性全部查出来 ,然后把数据交给浏览器,让浏览器自己去分页
    SELECT * from product
    物理分页-- 推荐   不一次查询完   LIMIT 
	SELECT * FROM product limit ?,?  --  第一个?代表从哪一个开始查,第二个?代表查询多少条
    SELECT * FROM product limit 0,5  --  第一页
    SELECT * FROM product limit 5,5  --  第二页
--------------------------------------------------------------
   每页展示五条数据
   10,5        (1-1)*5=0
   25,5        (2-1)*5=5
   310,5       (3-1)*5=10
   4    15,5       (4-1)*5=15
 ................. (n-1)*5

-- 聚集函数
	-- 查询所有商品平均零售价
	SELECT AVG(salePrice) FROM product;
	-- 查询商品总记录数(注意在Java中必须使用long接收)
	SELECT COUNT(1) FROM product; -- 统计
	-- 查询分类为2的商品总数
	SELECT COUNT(1) FROM product WHERE dir_id =2
	-- 查询商品的最小零售价,最高零售价,以及所有商品零售价总和
	SELECT MIN(salePrice), MAX(salePrice),SUM(salePrice) FROM product;

-- 分组查询 GROUP BY  (稍难的)
	-- 查询每个商品分类编号和每个商品分类各自的平均零售价
	SELECT AVG(salePrice) FROM product  GROUP BY dir_id
	-- 查询每个商品分类编号和每个商品分类各自的商品总数。
	SELECT  count(*),dir_id  FROM product  GROUP BY dir_id
	-- 查询每个商品分类编号和每个商品分类中零售价大于100的商品总数:
	SELECT  count(*),dir_id FROM product WHERE salePrice>100 GROUP BY dir_id 
	-- 查询零售价总和大于1800的商品分类编号以及总零售价和:
	SELECT   sum(salePrice) ,dir_id FROM product  GROUP BY dir_id HAVING sum(salePrice)>1800
	-- 分组前的条件用where,分组后的条件用having

-- 存储引擎
   MyISAM  不支持事务  表锁
   InnoDB   支持事务   行锁
   memory  不支持事务  表锁    不入库
  对事务要求高我们用InnoDB,对事务要求不高我们用MyISAM,对事务要求不高 且查询修改极其频繁 且数据不用入库(重启数据库数据就消失)我们用memory

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/207282.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实验五 C语言函数程序设计习题 (使用函数计算两点间的距离,请编写函数fun,使用函数输出字符矩阵,使用函数求最大公约数和最小公倍数)

1. 使用函数计算两点间的距离&#xff1a;给定平面任意两点坐标(x1,y1)和(x2,y2)&#xff0c;求这两点之间的距离(保留2位)小数。要求定义和调用dist(x1,y1,x2,y2)计算两点间的距离。坐标中两点坐标之间的距离公式如下&#xff1a; #include <stdio.h> #include <math…

再探Java集合系列—HashMap

前面我们已经针对LinkedList和ArrayList的底层原理进行了具体研究讨论&#xff0c;大家可以跳链接阅读哦~ 再探Java集合系列—ArrayList-CSDN博客 再探Java集合系列—LinkedList-CSDN博客 HashMap有哪些特征呢&#xff1f; value可以重复&#xff0c;key不能重复&#xff0c…

【C++干货铺】继承 | 多继承 | 虚继承

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 继承的概念及定义 继承的概念 继承的定义 继承基类成员访问方式的变化 基类和派生类的赋值转化 继承中的作用域 派生类的默认成员函数 构造函数 拷贝构造…

解决Flutter运行报错Could not run build/ios/iphoneos/Runner.app

错误场景 更新了IOS的系统版本为最新的17.0, 运行报以下错误 Launching lib/main.dart on iPhone in debug mode... Automatically signing iOS for device deployment using specified development team in Xcode project: GN3DCAF71C Running Xcode build... Xcode build d…

羊大师分析,鲜羊奶对健康的影响与作用

羊大师分析&#xff0c;鲜羊奶对健康的影响与作用 你是否曾经听到过“羊奶比牛奶更健康”的说法&#xff1f;而鲜羊奶作为最纯正的羊奶形式&#xff0c;其营养价值更是不可小觑。除了拥有传统奶类所包含的营养成分外&#xff0c;鲜羊奶还含有更多人体必需的氨基酸和微量元素&a…

12.1_黑马Redis实战篇Redis优化秒杀Redis消息队列实现异步秒杀

目录 实战篇22 实战篇23 实战篇24 实战篇25 实战篇26 实战篇27 实战篇28 实战篇29 实战篇30 实战篇22 将任务分布给不同的线程去做&#xff0c;可以加快程序运行速度。 放到lua脚本&#xff0c;保证原子性。同时&#xff0c;这样的优化&#xff0c;可以减轻数据库的压…

《尚品甄选》:后台系统——商品管理,对商品数据进行维护(debug一遍)

文章目录 一、表结构介绍二、列表查询三、添加功能(复杂)3.1 加载品牌数据3.2 加载商品单元数据3.3 加载商品规格数据3.4 保存商品数据 四、修改功能4.1 查询商品详情4.2 保存修改数据 五、删除商品六、商品审核七、商品上下架 一、表结构介绍 商品管理就是对电商项目中所涉及…

基于H5“汉函谷关起点新安县旅游信息系统”设计与实现

目 录 摘 要 1 ABSTRACT 2 第1章 绪论 3 1.1 系统开发背景及意义 3 1.2 系统开发的目标 3 第2章 主要开发技术介绍 5 2.1 H5技术介绍 5 2.2 Visual Studio 技术介绍 5 2.3 SQL Server数据库技术介绍 6 第3章 系统分析与设计 7 3.1 可行性分析 7 3.1.1 技术可行性 7 3.1.2 操作…

办公软件PDF转换工具 - Bruce的PDF工具pdftool

Bruce的PDF工具 - 办公软件PDF转换工具 - pdftool&#xff0c;支持&#xff1a; 1、图片转PDF&#xff0c;支持图片自动压缩&#xff0c;可预览图片 2、合并PDF&#xff0c;支持多个PDF合并成一个PDF 3、PDF转图片&#xff0c;PDF的每页转成一张图片 4、OFD转PDF&#xff0c;O…

Postman:专业API测试工具,提升Mac用户体验

如果你是一名开发人员或测试工程师&#xff0c;那么你一定知道Postman。这是一个广泛使用的API测试工具&#xff0c;适用于Windows、Mac和Linux系统。今天&#xff0c;我们要重点介绍Postman的Mac版本&#xff0c;以及为什么它是你进行API测试的理想选择。 一、强大的功能和易…

honle电源维修UV电源控制器EVG EPS40C-HMI

好乐UV电源控制器维修&#xff1b;honle控制器维修&#xff1b;UV电源维修MUC-Steuermodul 2 LΛmpen D-82166 主要维修型号&#xff1a; EVG EPS 60/120、EVG EPS 100、EVG EPS200、EVG EPS 220、EVG EPS 340、EVG EPS40C-HMI、EVG EPS60 HONLE好乐uv电源维修故障包括&#…

2023年第十二届数学建模国际赛小美赛B题工业表面缺陷检测求解分析

2023年第十二届数学建模国际赛小美赛 B题 工业表面缺陷检测 原题再现&#xff1a; 金属或塑料制品的表面缺陷不仅影响产品的外观&#xff0c;还可能对产品的性能或耐久性造成严重损害。自动表面异常检测已经成为一个有趣而有前景的研究领域&#xff0c;对视觉检测的应用领域有…

智能优化算法应用:基于平衡优化器算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于平衡优化器算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于平衡优化器算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.平衡优化器算法4.实验参数设定5.算法结果…

Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 构建可移植的计算机视觉环境 文章目录 前言引言简介&#xff1a;目的和重要性&#xff1a; 深入理解Docker和OpenCVDocker的基本概念和优势&#xff1a;OpenCV简介和应用领域&#xff1a;…

几个linux指令提升编程效率

history history命令是Linux/Unix系统中的一个常用命令&#xff0c;用于查看当前用户在命令行中执行过的命令历史记录。该命令允许用户查看、搜索、编辑和执行之前执行过的命令&#xff0c;为用户提供了方便、快捷的操作方式。 查看历史命令&#xff1a; history查看最近n条…

nginx三种虚拟主机的配置(IP,端口,域名)

准备工作&#xff1a; [rootbogon ~]# mkdir -p /data/nginx{1..3} #-p是用于递归创建使用 [rootbogon ~]# echo "hello nginx1" > /data/nginx1/index.html [rootbogon ~]# echo "hello nginx2" > /data/nginx2/index.html [rootbogon ~]# echo &q…

adb环境搭建(adb下载与安装)

文章目录 前言一、adb下载二、adb安装1.将下载的安装包解压缩2.将解压缩后的文件夹放到自己想存放的目录下&#xff08;不要放到带有中文的目录下&#xff09;——我这放到D盘根目录下3.配置环境变量3.1.鼠标放到 "此电脑"→鼠标右击→选择属性3.2.点击 "高级系…

海银・颖奕海南国际健康管理基地启航!“财富+健康”双轮驱动战略加速中

现场&#xff0c;颖奕集团、颖奕生物科技集团董事长凌临贵&#xff0c;海南博鳌乐城国际医疗旅游先行区管理局党委书记、局长贾宁&#xff0c;海银控股董事长韩宏伟&#xff08;从左至右&#xff09;共同启动该项目。 11月24日&#xff0c;“海银颖奕海南国际健康管理基地”在…

正则表达式及文本三剑客grep sed awk

正则表达式 1.元字符 . //匹配任意单个字符&#xff0c;可以是个汉字 [yang] //匹配范围内的任意单个字符 [^y] //匹配处理指定范围外的任意单个字符 [:alnum:] //字母和数字 [:alpha:] //代表…

二叉树的操作(C++实现)

目录 ⚽实现要求&#xff1a; &#x1f3d0;题目分析&#xff1a; &#x1f3c0;代码展示&#xff1a; &#x1f4cc;前提类和函数声明&#xff1a; &#x1f94e;模块一&#xff08;层次—>创建二叉树&#xff09;&#xff1a; &#x1f3b1;模块二&#xff08;三种…