MySQL-基本使用,数据类型,简单操作

1. 数据库概述

        1.1 数据库(DatBase)

        数据库,就是遵循一定数据格式的数据集合,可以认为他是对文件系统的改进。它解决了不同操作系统之间,数据格式的兼容性问题。也就是说,只要是同一个数据库的数据文件,即使从windows迁移到了Linux上,也可以正常运行的。

        1.2 关系型和非关系型的区别

      关系型数据库:  关系型数据库是一种采用关系模型(或称为表格模型)来组织和存储数据的数据库管理系统(DBMS)。在关系型数据库中,数据以行和列的形式存储在表格中,并通过表格之间的关系进行组织和管理。关系型数据库通常使用结构化查询语言(SQL)作为数据操作语言。

对于Java而言,一个类就可以对应一个表,一个类对象就可以对应表中的一条数据,一个成员变量可以对应表中的一个列,能够做到一 一映射,数据库中是以表作为基本单位的。

      非关系型数据库:非关系型数据库(NoSQL,Not Only SQL)是一种不使用传统的关系型表格模型来组织和存储数据的数据库系统。与关系型数据库相比,非关系型数据库通常具有更灵活的数据模型和更高的可伸缩性,适用于不同类型的数据处理需求。非关系型数据库是存储键值对的,如Redis,mongoDB等。

        1.3 MySQL介绍  

        MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发,目前属于 Oracle旗下产品。MySQL 是最流行的关系型数据库关系系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS(Relational Database Management System,关系数据库管理系统) 应用软件之一。

        MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

        MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

        1.4 数据库对象

        表:就是存储数据的表格,里面有一条条记录,记录有字段组成,每个字段都有自己的字段名,字段值,字符段类型。字段是存储数据的基本单元。类似java中的对象,由于存储数据。

        视图: 可以理解为一张虚表(它在物理磁盘上并不真实存在)。视图是基于select语句查询生成的结果集。当一条select语句比较复杂且调用频率较高时,我们不想再写一遍语句,这时候可以把这条select语句创建为一个视图。每次使用视图的时候,就可以把它当成一张表来用。

        函数:常是一个功能的实现,我们大部分使用的是系统函数(MYSQL提供的),我们也可以自定义函数。它的调用套路通过使用select 函数名(参数1,参数2..);来调用。它只有一个返回值。

        存储过程:也是一个功能的实现。我们所说的数据库编程,SQL语句编程,就主要是指自定义一个存储过程。调用存储过程是使用exec 存储过程名 参数1等来调用。它是可以返回多个值,也可以没有返回值。

        索引:就像书的目录一样,为了加快我们的查询速度而建立的。

2 MySQl基本使用

        2.1 用户创建和授权

            1. 创建用户:需要切换到mysql数据库下,操作user表

                username: 用户名; host: 指定在哪个主机上可以登录,本机可用localhost,%通配所有远程主机; password:用户登录密码

-- 创建用户 CREATE USER '用户名'@'HOST' IDENTIFIED BY '密码'
CREATE USER 'nono'@'localhost' IDENTIFIED BY '123123';

              2. 为用户授权

                 @ 后面是访问MySQL的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。

-- 赋予用户权限 grant ... ON 数据库名.表名 TO '用户名'@'HOST'
-- 权限 : 添加数据 INSERT 删除数据 DELETE 修改数据 UPDATE 查询数据 SELECT 删除库表 DROP 全部权限 ALL 或 ALL PRIVILEGES
GRANT All PRIVILEGES ON *.* TO 'nono'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;

                 3.  撤销用户权限

                        revoke 和 grant 的语法差不多,值需要将to换成from即可。

-- 撤销用户权限 REVOKE ... ON 数据库名.表名 FROM '用户名'@'HOST'
REVOKE ALL PRIVILEGES ON *.* FROM 'nono'@'localhost';
FLUSH PRIVILEGES;

                  4. 删除用户

-- 删除用户
DROP USER 'nono'@'localhost';
        2.2 数据库的创建和删除

               CREATE DATABASE 数据库名;

               DROP DATABASE 数据库名;   

-- 创建数据库
CREATE DATABASE _29_02;-- 删除数据库
DROP DATABASE _29_02;

                命令行基本使用

-- 单行注释/*多行注释
*/-- 输出指定内容,字符串需要用单引号括起来,不区分字符和字符串,一律使用单引号
SELECT 'XXXXX';-- 设置字段名,AS可以省略
SELECT 'XXXXX' AS '字段名';-- 查看版本
SELECT VERSION();-- 查看当前链接下所有的数据库
SHOW DATABASES;-- 查看当前数据库下所有的表
SHOW TABLES;-- 切换数据库
USE 数据库名;
        2.3 表创建和删除

        存储引擎:InnoDB        默认编码方式:utf8mb4        排序规则:utf8mb4_0900_ai_ci

-- 在数据库 _29_02下创建表
USE _29_02;
-- 创建表
/*
CREATE TABLE 表名(列名 类型,列名 类型,...
)
*/
-- 写的建表语句
CREATE TABLE student_info(`id` INT,`name` VARCHAR(20),score DECIMAL(5,2)
);-- 查看建表语句
SHOW CREATE TABLE student_info;
-- 实际建表语句
CREATE TABLE `student_info` (`id` int DEFAULT NULL,`name` varchar(20) DEFAULT NULL,`score` decimal(5,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci-- 删除表
DROP TABLE student_info;

3. 数据类型

        数值型

        时间类型

        字符串型

        掌握常用的几个数据类型即可,比如整型int,浮点型decimal,字符型就是字符串类型varchar,日期时间型datetime。

        补充:char与varchar的区别:

        char(100) 类型的字段一旦定义,不管里面是否有值,他就会固定占用100个字符对应的存储空间,这种类型对空间的利用率并不高。varchar(100) 类型的字段定义后,它所占用的空间就是里面存储内容占用的空间,但是最大不会超过100个字符,这种类型对空间的利用率是很高的。

        如手机号码,是定长的11位,可以使用char存储。姓名或者家庭住址由于长度不确定,就适合用变长的varchar存储了。当然还需要视具体需求而定。

4. DML操作

        DML: Data Manipulate Language(数据操作语言) ,主要用于向数据库插入,修改,删除数据使用。涉及的关键字有insert,update,delete

       4.1  INSERT(用于向表中添加数据)  
-- 创建表
CREATE TABLE users(`id` INT PRIMARY KEY,`name` VARCHAR(20),`age` INT,`sex` CHAR(2)
);-- 格式:INSERT INTO 表名(列名1,列名2...) VALUES (值1,值2...)
-- 示例:
-- 添加单条数据
INSERT INTO users(`id`,`name`,`age`,`sex`)
VALUES(1,'张三',18,'男');-- 一次性添加多条数据
INSERT INTO users(`id`,`name`,`age`,`sex`)
VALUES(2,'李二',18,'男'),(3,'赵四',19,'男'),(4,'苏七',17,'女');-- 向指定列添加数据
INSERT INTO INSERT INTO users(`name`,`age`)
VALUES('依依',13);
          4.2 DELESTE (用于删除表中的数据)
-- 格式:DELETE FROM 表名 WHERE 列名=值
-- 示例:删除users表中,姓名位张三的数据。WHERE 后为删除的条件,如果不加会删除全表的数据
DELETE FROM users
WHERE `name` = '张三';
        4.3 UPDATE(用于更新表中数据)
-- 格式:UPDATE 表名 SET 列名=值,列名=值 WHERE 列名=值
-- 示例:将users表中姓名为李二的年龄改为20,会修改所有满足WHERE条件的值
UPDATE users SET age=20 WHERE name='李二'; 
         4.4 SELECT(用于查询表中的数据,属于DQL)
-- 格式:SELECT 列限定 FROM 表限定 WHERE 行限定
-- 示例:
-- 查询表中所有数据
SELECT * FROM users;
-- 查询表中指定条件的数据,例如查询users表中id为3的name值
SELECT `name` FROM users WHERE `id`=3;

5 .练习

-- 使用root用户,创建一个test_01数据库,并创建test01用户,赋予test01用户对test_01数据库拥有所有权
CREATE DATABASE test_01;
USE test_01;CREATE USER 'test_01'@'localhost' IDENTIFIED BY '1234';GRANT ALL PRIVILEGES ON test_01.* TO 'test_01'@'localhost';FLUSH PRIVILEGES;-- 
-- 登录test01用户,在test_01数据库下创建t_student表,表中有 id,name,sex,course,score
-- 其中 id是 int 
--     name 是 varchar
--   sex 是 char
--   course 是 varchar
--   score 是 decimal
--     向t_student表中插入3条数据
--     1 张三 男 javaSE 99
--   2 李四 女 javaWEB 98
--     3 王五 男 javEE 99.5CREATE TABLE t_student(`id` int,`name` varchar(20),`sex` char(2),course varchar(20),score decimal(5,2)
);INSERT INTO t_student(`id`,`name`,`sex`,course,score)
VALUES(1,'张三','男','javaSE',99),(2,'李四','女','javaWEB',98),(3,'王五','男','javEE',99.5);-- 把 course为javaEE的分数 更改为100
-- 把 张三的性别更改为 女
-- 把 王五删除UPDATE t_student SET score = 100 
WHERE course = 'javaSE';UPDATE t_student SET `sex` = '女'
WHERE `name` = '张三';DELETE FROM t_student
WHERE `name` = '王五';-- 把t_student表删除
-- 把test_01数据库删除
-- 把 test01用户删除(登录root用户)DROP TABLE t_student;
DROP DATABASE test_01;
DROP USER 'test_01'@'localhost';

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 kind 集群安装运行极狐GitLab Runner【下】

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 上一篇内容中,我们已经利用 kind 创建好了一个本地…

GPT-SoVITS 快速声音克隆使用案例:webui、api接口

参考: https://github.com/RVC-Boss/GPT-SoVITS 环境: Python 3.10 PyTorch 2.1.2, CUDA 12.0 安装包: 1、使用: 1)下载项目 git clone https://github.com/RVC-Boss/GPT-SoVITS.git2)下载预训练模型 https://huggingface.co/lj1995/GPT-SoVITS 下载模型文件放到GPT…

C# (WebApi)整合 Swagger

SpringBoot-整合Swagger_jboot整合swagger-CSDN博客 C# webapi 也可以整合Swagger webapi运行其实有个自带的HELP页面 但是如果觉得UI不好看,且没办法显示方法注释等不方便的操作,我们也可以整合Swagger 一、使用NuGet控制台安装Swagger 在菜单中选择…

Pycharm服务器配置与内网穿透工具结合实现远程开发的解决方法

文章目录 一、前期准备1. 检查IDE版本是否支持2. 服务器需要开通SSH服务 二、Pycharm本地链接服务器测试1. 配置服务器python解释器 三、使用内网穿透实现异地链接服务器开发1. 服务器安装Cpolar2. 创建远程连接公网地址 四、使用固定TCP地址远程开发 本文主要介绍如何使用Pych…

力扣随笔之颜色分类(中等75)

思路:定义两个指针划分left,right划分三个区域left左边是红色区域,right右边是蓝色区域,left和right之间是白色区域;定义一个遍历指针遍历整个数组,遇到红色与left所指位置数字交换,并将left自加…

2023最新简绘AI开源版支持MJ绘画,AI问答

应用介绍 本文来自:2023最新简绘AI开源版支持MJ绘画,AI问答 - 源码1688 简介: 简绘AI开源版,从闲鱼上买的,搭建教程如下 测试环境:NginxPHP7.4MySQL5.6 图片:

STM32F4XX - CAN设置

can协议部分 - 逻辑信号和电平信号 先贴上CAN信号在物理信号线上的查分信号表示形式 显性电平: 电压差范围为1.5-2.5v。 对应的逻辑电平是0 隐性电平: 其他 对应的逻辑电平是1 为什么显性电平对应的逻辑电平值为0,而隐性电平对应的逻辑电平…

2023全新UI千月影视APP源码 | 前后端完美匹配、后端基于ThinkPHP框架

应用介绍 本文来自:2023全新UI千月影视APP源码 | 前后端完美匹配、后端基于ThinkPHP框架 - 源码1688 简介: 2023全新UI千月影视APP源码 | 前后端完美匹配、后端基于thinkphp框架 图片:

免费多域名证书,最多支持保护250个域名

随着企业规模扩大和多元化发展,拥有多个域名的需求变得普遍,此时,多域名SSL证书应运而生,并且这一类型的证书已经发展到能够安全地支持多达250个不同域名的加密需求。 多域名SSL证书,也称为SAN(Subject Alt…

【前端素材】推荐优质后台管理系统Tiny平台模板(附源码)

一、需求分析 后台管理系统是一个重要的工具,用于管理和维护网站、应用程序或系统的正常运行。通过灵活的权限管理和各种功能模块的结合,后台管理系统能够有效地帮助管理员管理和控制系统,提高工作效率和系统安全性。 后台管理系统是一种用…

OSCP靶场--Slort

OSCP靶场–Slort 考点(1.php 远程文件包含 2.定时任务提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.178.53 -sV -sC -p- --min-rate 5000 Starting Nmap 7.92 ( https://nmap.org ) at 2024-02-24 04:37 EST Nmap scan report for 192.168.178.53 …

二手旧物回收系统开发:推动可持续发展的关键

随着人们环保意识的增强,二手旧物回收系统的发展逐渐成为社会关注的焦点。开发二手旧物回收系统,不仅能有效减少废弃物的排放,降低对环境的污染,还能实现资源的循环利用,推动可持续发展。本文将深入探讨二手旧物回收系…

java8新特性-Lambda

目录 一、Lambda 1、什么是Lambda表达式 2.Lambda表达式的基本语法: 3.参数列表 4.Lambda表达式使用前后对比 举例一: 举例二: 二、函数式接口 1.函数式接口的使用说明 2.4个基本的函数式接口 3.如何定义函数接口 1.保证接口中只…

Javaweb之SpringBootWeb案例之AOP案例的详细解析

4. AOP案例 SpringAOP的相关知识我们就已经全部学习完毕了。最后我们要通过一个案例来对AOP进行一个综合的应用。 4.1 需求 需求:将案例中增、删、改相关接口的操作日志记录到数据库表中 就是当访问部门管理和员工管理当中的增、删、改相关功能接口时&#xff0c…

MyBatis之Mapper.xml文件中parameterType,resultType,resultMap的用法

MyBatis之自定义数据类型转换器 前言1.parameterType2.resultType3.resultMap实例代码总结 前言 今天我们来学习Mapper.xml(编写SQL的)文件中,增删改查标签中,使用parameterType属性指定传递参数类型,resultType属性指…

【Java程序设计】【C00291】基于Springboot的网上图书商城(有论文)

基于Springboot的网上图书商城(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的网上图书商城 本系统分为系统功能模块、管理员功能模块以及卖家功能模块。 系统功能模块:在系统首页可以查看首页、图书…

GEE必须会教程—Map工具的使用

一个星期的时间,跟着小编的角度,我们已经学习了数值、字符串、字典、列表、日期、矩阵等基本的编程数据类型,这些是学习任何一门编程语言都需要掌握的知识,还有不懂得赶紧关注小编,进行主页查看过往文章!! …

离散数学 第八单元 布尔代数

目录 1. 布尔函数 2. duality 二元性 3. 表示布尔函数的布尔表达式 sum-of-products expansions 4. Functional Completeness 5. Logic Gates 逻辑门​​​​​​​ 4. 最小化 K-map卡诺图 Quine-McCluskey法 1. 布尔函数 嗯也就是我要知道布尔代数是啥形式&#xff…

【Spring】 AOP面向切面编程

文章目录 AOP是什么?一、AOP术语名词介绍二、Spring AOP框架介绍和关系梳理三、Spring AOP基于注解方式实现和细节3.1 Spring AOP底层技术组成3.2 初步实现3.3 获取通知细节信息3.4 切点表达式语法3.5 重用(提取)切点表达式3.6 环绕通知3.7 切…

【RAG实践】基于LlamaIndex和Qwen1.5搭建基于本地知识库的问答机器人

什么是RAG LLM会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。 正是在这样的背景下,检索增强生成技术(Retrieval-Augmented G…