Day01-数据类型和运算符(MySQL服务器的安装,MySQL客户端,数据类型,运算符,MySQL的语法规范)

news2024/9/25 1:24:57

文章目录

  • Day01-数据类型和运算符
    • 学习目标
    • 1. 数据库介绍
      • 1.1 数据库的发展历史
      • 1.2 数据库分类
        • 1.2.1 关系型(SQL)数据库
        • 1.2.2 非关系型(NoSQL)数据库
        • 1.2.3 数据库排名
    • 2. MySQL服务器的安装
      • 2.1 MySQL介绍
      • 2.2 下载
      • 2.3 安装
      • 2.4 启动服务器
      • 2.5 卸载
    • 3. MySQL客户端
      • 3.1 使用命令行客户端连接
      • 3.2 使用图形化工具连接
    • 4. 数据类型
      • 4.1 整型
      • 4.2 浮(定)点型
      • 4.3 字符串类型
      • 4.4 枚举(enum)
      • 4.5 集合(set)
      • 4.6 时间类型
      • 4.7 布尔型
    • 5. 运算符
      • 5.1 算数运算符
      • 5.2 比较运算符
      • 5.3 逻辑运算符
      • 5.4 位运算
    • 6. MySQL的语法规范

Day01-数据类型和运算符

学习目标

  • 能够说出数据库的概念
  • 能够说出什么是关系型数据库
  • 能够安装卸载和配置MySQL数据库
  • 能够使用IDEA客户端连接到MySQL服务器
  • 能够说出MySQL里常见的数类型
  • 能够使用MySQL里的运算符进行查询

1. 数据库介绍

数据库是“按照数据结构来组织、存储和管理数据的仓库”,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
简单来说,就是一个用来存储数据的仓库。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。

数据库用来存储体量庞大的数据,为了更高效的存储和查询这些数据,这些数据必须要按照一定的规则来存放。数据库管理系统就是为管理数据库而设计的软件系统,一般具有存储、截取、安全保障、备份等基础功能。市场上比较流行的数据库管理系统产品主要是Oracle、IBM、Microsoft和Sybase、Mysql等公司的产品。

1.1 数据库的发展历史

在关系型数据库出现之前,主要是网状数据库(Network Databases)和层次数据库(Hierarchical Databases)。最早出现的是网状DBMS,是美国通用电气公司Bachman等人在1961年开发成功的IDS(Integrated DataStore),网状数据库模型对于层次和非层次结构的事物都能比较自然的模拟,当时网状DBMS要比层次DBMS用得更普遍。在数据库发展史上,网状数据库占有重要地位。

在这里插入图片描述

层次型数据库紧随网络型数据库出现。最著名最典型的层次数据库系统是IBM公司在1968年开发的IMS(Information Management System),一种适合其主机的层次数据库。这是IBM公司研制的最早的大型数据库系统程序。

在这里插入图片描述

1970 年,IBM研究员E.F.Codd博士在刊物Communication of the ACM上发表了一篇名为“A Relational Modelof Data for Large Shared Data Banks”的论文,提出了关系模型的概念,奠定了关系模型的理论基础。

在这里插入图片描述

1970年关系模型建立之后,IBM公司在San Jose实验室增加了更多的研究人员研究这个项目,这个项目就是著名的System R,目标是论证一个全功能关系DBMS的可行性。(该项目结束于1979年,完成了第一个实现SQL的DBMS)。

1973年加州大学伯克利分校的Michael Stonebraker 和EugeneWong利用System R已发布的信息开始开发自己的关系数据库系统Ingres(ORACLE数据库的雏形)。

由于当时IBM实验室的体制(IBM的研究人员大多是学术出身,他们最感兴趣的是理论和学术成果,而非推向市场的产品),以及当时IBM对IMS的承诺,IBM并不是第一个发布商用关系型数据库的公司。第一个商用关系型数据库是由霍尼韦尔公司在1976年发布Multics Relational Dat a Store(非SQL标准语句)。

1978年 Ellison (埃里森) 在为中央情报局做一个数据项目时,仔细阅读了 codd 发表的“R系统:数据库关系理论”,这个论文主要介绍了关系数据库理论和查询语言SQL。Ellison 看完后,敏锐意识到在这个研究基础上可以开发商用软件系统。而当时大多数人认为关系数据库不会有商业价值。而就在几个月后,Oracle 1.0 诞生了,Oracle 这个名字也来源于他们曾给中央情报局做过的项目名。

直到1985年IBM才发布了关系数据库 DB2,那时 oracle 已经占有了很大的市场,Ellison 已经成了千万富翁。1989年,微软发布了 SQL Server 1.0 版。三大商用关系型数据库的发布年份,也正好对应了市场占有率的排名。

1.2 数据库分类

早期较为时兴的数据库种类有三种,分别是层次式数据库、网络式数据库和关系型数据库。而在如今的互联网中,最常见的数据库种类主要有2种,即关系型数据库和非关系型数据库。

1.2.1 关系型(SQL)数据库

SQL 全拼为 Structured Query Language, 即 “结构化查询语言”。SQL语言诞生于1974年,是IBM提出的,但是关系型数据库在1970年已经出现,在没有出现SQL语言之前当时的查询语言依赖于复杂的数学逻辑和符号,查询语言成为关系型数据库发展的一个主要瓶颈,SQL的出现使没有接受过数学和计算机编程正规训练的用户也能简便的使用。

SQL 是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

数据库SQL 类型公司
OraclePL/SQL甲骨文
MySQLMy/SQL甲骨文
SQL-ServerT-SQL微软
AccessSQL微软
SQLite内嵌型小型数据库移动前端用的比较多
1.2.2 非关系型(NoSQL)数据库

关系型数据数据库有它的优点,但是也存在一些缺点,例如:当字段不固定时,关系型数据库处理起来很麻烦;对高并发读写的支持比较差;对简单查询需要快速返回结果的处理。随着互联网技术Web2.0的兴起,这些缺点越来越突出,因此出现了针对大规模数据量场景,以性能卓越和应用便捷为目的的的数据库产品——NOSQL数据库。

非关系型数据库主要是根据“非关系实体模型”的数据库,也称之为NoSQL数据库,NOSQL的原意是“Not only SQL”,而不是“NoSQL”的含意,因而,NoSQL的出现并不是要完全否认关系型数据库,只是做为传统关系型数据库的一个合理补充。NOSQL数据库在特殊的情景下能够充分发挥出无法想象的高效率和卓越性能。

最常见非关系型数据库有 Redis 和 MangoDB.

本次学习的重点以 甲骨文公司的 MySQL 数据库为例来研究关系型数据库的使用。

1.2.3 数据库排名

以下是2019年DB-Engines Ranking 对各数据库受欢迎程度进行调查后的统计结果:(查看数据库最新排名:https://db-engines.com/en/ranking)

在这里插入图片描述

2. MySQL服务器的安装

在使用数据库之前,需要先安装数据库管理软件。MySQL数据库管理软件支持多个平台的安装,我们的课程中以Windows系统下的MySQL安装设置为例,如果想要了解(类)Unix和(类)Linux平台下,MySQL的安装方式,请自行上网查询。

2.1 MySQL介绍

MySQL是一种开放源代码的关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。目前 MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得很多互联网公司选择了MySQL作为网站数据库。

MySQL主要分为两大版本:

  • 企业版(Enterprise Edition):功能齐全,但是收费,而且费用不便宜……
  • 社区版(Community Edition):功能相对比较简单,开源免费。

我们学习过程中使用MySQL社区版,目前社区版最新的版本号是8.0.27(截止至2021年12月)。

注意:MySQL8其实是MySQL5.8的别名,由于在MySQL5.8中,增加和修改了很多功能,版本号直接修改为了8.0. 所以,MySQL5.7和8.0只相差了一个大版本,而不是3个。

2.2 下载

MySQL官方下载地址: https://dev.mysql.com/downloads/windows/installer/ 选择自己想要安装的MySQL版本,推荐下载 8.0.27 版本的安装器。

注意:下载选项里只有32位的安装器,如果是64位的系统也不会影响。我们在这儿下载的只是安装器,在运行安装器的时候,会根据系统的版本自动选择安装32位还是64位的MySQL.

2.3 安装

  1. 双击运行 mysql-installer-community-8.0.27.1.msi 文件。 .msi 和 .exe 一样,都是Windows里的可执行文件。

  2. 选择 Custom,点击Next,选择要安装的MySQL程序。在这一步中,虽然选择了只安装 MySQL Server,但是同时也会自动安装 MySQL的客户端。

    在这里插入图片描述

  3. 不断的点击 Next 或者 Execute按钮,执行下一步操作,直到输入密码页面。注意:要牢记密码,登录MySQL服务器时需要使用!

    在这里插入图片描述

  4. 点击Next或者Execute直到MySQL安装完成并启动。

2.4 启动服务器

右键我的电脑–>管理–> 服务和应用程序–>服务,找到MySQL80这个服务,查看服务的状态。通常情况下,MySQL安装完成以后会自动启动MySQL服务器,如果此时服务器状态不是正在运行,可以右键这个服务,选择启动,将MySQL服务器开启。

2.5 卸载

  1. 停止MySQL服务:右键我的电脑–>管理–> 服务和应用程序–>服务,找到MySQL80这个服务,然后右键选择停止。

  2. 在控制面板中找到MySQL8.0相关软件,右键进行卸载。

  3. 找到MySQL的相关文件夹,默认会有C:\Program Files\MySQLC:\ProgramData\MySQL,删除这两个文件夹。

  4. 上面三步完成以后,MySQL就已经从本机上卸载了。但是此时如果 右键我的电脑–>管理–> 服务和应用程序–>服务,依然能够看到MySQL80这个服务存在。此时需要在DOS界面使用sc delete MySQL80 即可将服务删除。

  5. 删除环境变量里的MySQL配置。

3. MySQL客户端

连接MySQL服务器通常有两种方式:

  1. 使用命令行连接
  2. 使用图形化页面工具连接

推荐大家使用命令行工具连接,而不是使用图形化页面工具。

3.1 使用命令行客户端连接

  1. 在启动MySQL客户端之前,还需要将 MySQL 客户端添加到环境变量中。

在这里插入图片描述

  1. 在DOS命令行中执行命令,连接到MySQL服务器。

    mysql -h 主机IP地址 -P 端口号	-u 用户名	-p回车
    Enter Password:密码
    

    其中,如果服务器的主机是localhost的话,-h 主机名可以省略;如果在配置时没有修改默认端口,使用的是3306, -P 端口号 也可以省略。

    在这里插入图片描述

3.2 使用图形化工具连接

常用的图形化工具有:

  1. MySQL Workbench: 这个也是MySQL自带的工具,可以使用图形化页面来连接和操作数据库。注意:需要在安装MySQL时,选择安装WorkBench才能使用。

    在这里插入图片描述

    在这里插入图片描述

  2. Navicat MySQL是最常见的一款用来操作MySQL数据的图形化页面工具(收费)

    在这里插入图片描述

  3. SQLYog 也是一款功能强大的图形化页面工具。

    在这里插入图片描述

  4. IDEA自带的数据库处理功能。

    在这里插入图片描述

4. 数据类型

SQL也是一种计算机语言,它也有自己支持的数据类型。

4.1 整型

在这里插入图片描述

  • 一个无符号数一定是非负数

    create table t3(
        age tinyint unsigned
    );
    
  • 显示宽度 (zerofill)

    整型显示宽度, 位数不足时用 0 填充

    create table t4(
        id int(10) zerofill primary key auto_increment,
        name char(32)
    );
    insert into t4 values(12345, '5个');
    insert into t4 values(1234567890, '10个');
    insert into t4 values(123456789012, '12个');
    select * from t4;
    

4.2 浮(定)点型

在这里插入图片描述

定点数的位数更加长

  • float(M,D)
  • double(M,D)
  • decimal(M,D)
  • M 是支持多少个长度, D 是小数点后面的位数
create table t5 (
    a float(10, 2),
    b double(10, 2),
    c decimal(10, 2)
);

4.3 字符串类型

在这里插入图片描述

CHARVARCHAR 类型的区别:

  1. 允许的最大值范围不同。

    注意:<span style="color:red">无论是char(n)还是varchar(n),n表示的都是字符数,而不是字节数。</span>

    • char(n)类型里,无论数据库使用的是哪种编码方式,n的最大取值都只能取到255.
    • varchar(n)类型里,如果使用的是Latin1编码,最大值允许到65535(但是实际取值只能到65532,还要保留三个字节用来记录长度);如果使用的是UTF8编码,最大值允许到21845(但是实际取值只能到21844,还要保留一个字符用来记录长度)。
  2. 数据库内存存储的长度不同。

    • char(n)类型里,无论输入的内容是什么,存储的长度都是 n个字符。例如,数据类型char(10),写入字符串’张三’,在数据库里存入的数据长度是10个字符。
    • varchar(n)类型里,存储的长度是不固定可变的。
  3. 对于空格的处理不同。

    • char类型在存储字符串时,会将右侧末尾的空格去掉。
    • varchar类型在存储字符串时,会将右侧末尾的空格保留。
    create table student (id int primary key auto_increment ,name char(20),city varchar(20));  -- 创建数据表
    insert into student values(0,'  zhangsan   ','   shanghai    '); -- 插入数据
    
    select concat(id,name,'good') from student where id=1;
    /*
    从查询的结果中可以看到,name左侧的空格保留了,但是右侧的空格被去掉了
    +------------------------+
    | concat(id,name,'good') |
    +------------------------+
    | 1  zhangsangood        |
    +------------------------+
    */
    select name,length(name) from student where id=1;
    /*
    从查询的结果中可以看到,长度只包括左边的空格,不包括右边的空格
    +------------+--------------+
    | name       | length(name) |
    +------------+--------------+
    |   zhangsan |           10 |
    +------------+--------------+
    */
    
    select concat(id,city,'good') from student where id=1;
    /*
    从查询的结果中可以看到,city右侧的空格也保留了
    +------------------------+
    | concat(id,city,'good') |
    +------------------------+
    | 1   shanghai    good   |
    +------------------------+
    */
    select city,length(city) from student where id=1;
    /*
    从查询的长度中也可以看到,city两端的空格都被保留了
    +-----------------+--------------+
    | city            | length(city) |
    +-----------------+--------------+
    |    shanghai     |           15 |
    +-----------------+--------------+
    */
    

其他类型字符串使用注意事项:

  • binary和varbinary类似于char和varchar,不同的是它们包含二进制字符串,不支持模糊查询之类的。
  • 一般在保存少量字符串的时候,我们会选择char和varchar;而在保存较大文本时,通常会选择使用text或blob系列。blob和text值会引起一些性能问题,特别是在执行了大量的删除操作时,会在数据表中留下很大的“空洞”,为了提高性能,建议定期时候用optimize table功能对这类表进行碎片整理。可以使用合成的(Synthetic)索引来提高大文本字段的查询性能,如果需要对大文本字段进行模糊查询,MySql提供了前缀索引。但是仍然要在不必要的时候避免检索大型的blob或text值。

4.4 枚举(enum)

多选一的时候使用的一种数据类型

在前端使用单选框的时候, 枚举类型可以发挥作用

枚举类型的优点:

  1. 限制了可选值
  2. 节省空间
  3. 运行效率高
create table t6(
    name varchar(32),
    sex enum('男','女','保密') default '保密'
);

-- 枚举类型的计数默认从1开始
insert into t6 set name='王宝强',sex=1;

4.5 集合(set)

SET最多可以有64个不同的成员。类似于复选框, 有多少可以选多少。

create table t7 (
    name varchar(32),
    hobby set('吃','睡','玩','喝','抽')
);

insert into t7 values('张三','睡,抽,玩,吃,喝');
insert into t7 values('李四','睡,抽');

4.6 时间类型

在这里插入图片描述

  • datetime

    create table datetime_test (
        create_at datetime
    );
    
    insert into datetime_test values('2019-4-2 16:54:00');
    insert into datetime_test values('2019/4/2 16:54:00');
    insert into datetime_test values(now());
    -- 年份最大支持4个长度
    insert into datetime_test values('10000/4/2 16:54:00');  -- 错误
    insert into datetime_test values('9999/4/2 16:54:00');
    
  • time

    create table time_test (
        create_at time
    );
    
    insert into time_test values('12:12:12');
    insert into time_test values('100:12:12');
    insert into time_test values('-100:12:12');
    insert into time_test values('10 10:12:12');
    -- 时间的范围是: [-838:59:59 - 838:59:59]
    insert into time_test values('839:12:12'); -- 错误的
    
  • timestamp 时间戳类型

    1. 时间戳类型在显示方面和datetime是一样的, 在存储上不一样
    2. 范围从 1970-1-1 0:0:0 到 2038-1-19 11:14:07
    3. 时间戳使用 4 个字节表示
    4. 该值大小与存储的位长有关: 2 ** (4 * 8 - 1)
    create table timestamp_test (
        create_time timestamp
    );
    
    insert into timestamp_test values(now());
    insert into timestamp_test values('2038-1-19 11:14:07');  -- 时间戳最大值
    insert into timestamp_test values('2038-1-19 11:14:08');  -- 错误
    
  • year

    create table `year`(    create_at year);-- 从1900年开始 - 1900+255
    insert into `year` values(now());insert into `year` values('2155'); -- 年份最大值
    insert into `year` values('2156'); -- 错误
    

4.7 布尔型

mysql中的bool类型其实就是数字类型。使用0表示false,非0就表示true.

create table `bool`(cond boolean);
insert into `bool` set cond=True;    -- 成功
insert into `bool` set cond=False;   -- 成功
insert into `bool` set cond=1;       -- 成功
insert into `bool` set cond=10;      -- 成功
insert into `bool` set cond=-1;      -- 成功
insert into `bool` set cond=0;       -- 成功
insert into `bool` set cond=0.1;     -- 成功
insert into `bool` set cond='True';  -- 失败

5. 运算符

MySQL中同样也支持运算符。

5.1 算数运算符

select 123 + 543, 321 * 5, -456 / 2, 10 % 3, 2 / 0, 3 % 0;

/*  输出:

+-----------+---------+-----------+--------+-------+-------+
| 123 + 543 | 321 * 5 | -456 / 2  | 10 % 3 | 2 / 0 | 3 % 0 |
+-----------+---------+-----------+--------+-------+-------+
|       666 |    1605 | -228.0000 |      1 |  NULL |  NULL |
+-----------+---------+-----------+--------+-------+-------+
1 row in set, 2 warnings (0.00 sec)
*/

5.2 比较运算符

在这里插入图片描述

  • 常规比较

    select 1=2, 2<3, 3<=4, 4>5, 5>=3, 8!=9, 8<>9, 'abc' = 'Abc', 'z' > 'a';
    
    /* 输出:
    +-----+-----+------+-----+------+------+------+---------------+-----------+
    | 1=2 | 2<3 | 3<=4 | 4>5 | 5>=3 | 8!=9 | 8<>9 | 'abc' = 'Abc' | 'z' > 'a' |
    +-----+-----+------+-----+------+------+------+---------------+-----------+
    |   0 |   1 |    1 |   0 |    1 |    1 |    1 |             1 |         1 |
    +-----+-----+------+-----+------+------+------+---------------+-----------+
    1 row in set (0.00 sec)
    
    */
    
  • 范围比较

    select 123 between 100 and 200, 'b' in ('a', 'b', 'c');
    
    /* 输出
    
    +-------------------------+------------------------+
    | 123 between 100 and 200 | 'b' in ('a', 'b', 'c') |
    +-------------------------+------------------------+
    |                       1 |                      1 |
    +-------------------------+------------------------+
    1 row in set (0.04 sec)
    
    */
    
  • Null 比较:判断是否是Null时,不能使用=,而要使用is,或者<=>

    select 12 is null, 23 = null, null = null, null <=> null, null is null, 32 is not null;
    
    /* 输出
    
    +------------+-----------+-------------+---------------+--------------+----------------+
    | 12 is null | 23 = null | null = null | null <=> null | null is null | 32 is not null |
    +------------+-----------+-------------+---------------+--------------+----------------+
    |          0 |      NULL |        NULL |             1 |            1 |              1 |
    +------------+-----------+-------------+---------------+--------------+----------------+
    1 row in set (0.00 sec)
    
    */
    
  • 模糊比较: like

    select 'HelloWorld' like 'hello%';
    
    /* 输出
    
    +----------------------------+
    | 'HelloWorld' like 'hello%' |
    +----------------------------+
    |                          1 |
    +----------------------------+
    1 row in set (0.00 sec)
    
    */
    
  • 正则比较:regexp

    select "good" regexp "go{2}d";
    /*输出
    +------------------------+
    | "good" regexp "go{2}d" |
    +------------------------+
    |                      1 |
    +------------------------+
    1 row in set (0.01 sec)
    */
    

5.3 逻辑运算符

在这里插入图片描述

select 1 < 2 && 5 < 4, 4 > 1 || 5 < 7, !3 > 2,4 > 5 xor 4 < 3;
/* 输出
+----------------+----------------+--------+-----------------+
| 1 < 2 && 5 < 4 | 4 > 1 || 5 < 7 | !3 > 2 | 4 > 5 xor 4 < 3 |
+----------------+----------------+--------+-----------------+
|              0 |              1 |      0 |               0 |
+----------------+----------------+--------+-----------------+

1 row in set (0.00 sec)
*/

5.4 位运算

MySQL中同样支持位运算。需要注意的是,MySQL在运算时,不会根据运算数据的类型来决定到底是位运算还是逻辑运算。 <span style="color:red">&&是逻辑运算,而&是位运算符,两个运算符不能混用。</span>

select 1 < 2 & 5 < 4,1 < 2 && 5 < 4;
/*输出
+---------------+----------------+
| 1 < 2 & 5 < 4 | 1 < 2 && 5 < 4 |
+---------------+----------------+
|             1 |              0 |
+---------------+----------------+
*/

6. MySQL的语法规范

  • mysql是否区分大小写

    MySQL的关键字和函数名等不区分大小写。但是对于数据值是否区分大小写,和校对集规则有关。

    • ci(大小写不敏感)
    • cs(大小写敏感)
    • _bin(二元,即比较是基于字符编码的值而与language无关,区分大小写)
  • 字段命名规则:尽量使用26个英文字母大小写,数字0-9,下划线,不要使用其他符号

  • 建议不要使用mysql的关键字等来作为表名、字段名等,如果不小心使用,请在SQL语句中使用`(飘号)引起来

  • 数据库和表名、字段名等对象名中间不要包含空格

  • 同一个MySQL服务器中,数据库不能同名,同一个库中,表不能重名,同一个表中,字段不能重名。

  • 标点符号:

    • 必须成对
    • 必须英文状态下半角输入方式
    • 字符串和日期类型可以使用单引号’’
    • 列的别名可以使用双引号"",给表名取别名不要使用双引号。取别名时as可以省略
    • 如果列的别名没有包含空格,可以省略双引号,如果有空格双引号不能省略。
  • SQL脚本中如何加注释

    • 单行注释:#注释内容
    • 单行注释:–空格注释内容 其中–后面的空格必须有
    • 多行注释:/* 注释内容 */

规范

  • mysql是否区分大小写

    MySQL的关键字和函数名等不区分大小写。但是对于数据值是否区分大小写,和校对集规则有关。

    • ci(大小写不敏感)
    • cs(大小写敏感)
    • _bin(二元,即比较是基于字符编码的值而与language无关,区分大小写)
  • 字段命名规则:尽量使用26个英文字母大小写,数字0-9,下划线,不要使用其他符号

  • 建议不要使用mysql的关键字等来作为表名、字段名等,如果不小心使用,请在SQL语句中使用`(飘号)引起来

  • 数据库和表名、字段名等对象名中间不要包含空格

  • 同一个MySQL服务器中,数据库不能同名,同一个库中,表不能重名,同一个表中,字段不能重名。

  • 标点符号:

    • 必须成对
    • 必须英文状态下半角输入方式
    • 字符串和日期类型可以使用单引号’’
    • 列的别名可以使用双引号"",给表名取别名不要使用双引号。取别名时as可以省略
    • 如果列的别名没有包含空格,可以省略双引号,如果有空格双引号不能省略。
  • SQL脚本中如何加注释

    • 单行注释:#注释内容
    • 单行注释:–空格注释内容 其中–后面的空格必须有
    • 多行注释:/* 注释内容 */

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

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

相关文章

记录一次服务器内存使用率过高达到90%告警问题排查。

目录 一、前言二、问题排查处理三、 结尾 &#x1f469;&#x1f3fd;‍&#x1f4bb;个人主页&#xff1a;阿木木AEcru &#x1f525; 系列专栏&#xff1a;Docker容器化部署系列 &#x1f4b9;每一次技术突破&#xff0c;都是对自我能力的挑战和超越。 一、前言 一大早就有一…

Java设计模式 | 工厂方法模式

工厂方法模式 针对简单工厂模式案例中的缺点&#xff0c;使用工厂方法模式就可以完美的解决&#xff0c;完全遵循开闭原则。简单工厂模式只有一个工厂类&#xff0c;负责创建所有产品&#xff0c;如果要添加新的产品&#xff0c;就需要修改工厂类的代码。而工厂方法模式引入了…

通过人工智能驱动的交互提升客户体验

用AI创造无限可能&#xff1a;打造极致客户体验的秘诀 在当今竞争激烈的市场中&#xff0c;客户体验至关重要。 企业正在迅速采用人工智能驱动的交互来彻底改变与客户的互动。 人工智能技术不仅简化了运营&#xff0c;还带来了以前无法达到的个性化和效率水平。 对于寻求满足客…

【Java - 框架 - SpringMVC】(01) SpringMVC框架的简单创建与使用,快速上手

"SpringMVC"框架的简单创建与使用&#xff0c;快速上手&#xff1b; 环境 Java版本"1.8.0_202"&#xff1b;Spring Boot版本"2.5.9"&#xff1b;Windows 11 专业版_22621.2428&#xff1b;IntelliJ IDEA 2021.1.3(Ultimate Edition)&#xff1…

8.2K star!史上最强Web应用防火墙

&#x1f6a9; 0x01 介绍 长亭雷池SafeLine是长亭科技耗时近 10 年倾情打造的WAF(Web Application Firewall)&#xff0c;一款敢打出口号 “不让黑客越雷池一步” 的 WAF&#xff0c;我愿称之为史上最强的一款Web应用防火墙&#xff0c;足够简单、足够好用、足够强的免费且开源…

【Spring 篇】走进Java NIO的奇妙世界:解锁高效IO操作的魔法

欢迎来到Java NIO的神奇之旅&#xff01;在这个充满活力的世界里&#xff0c;我们将一起揭示Java NIO&#xff08;New I/O&#xff09;的奥秘&#xff0c;探索其在高效IO操作中的神奇魔法。无需担心&#xff0c;即使你是Java的小白&#xff0c;也能轻松领略这个强大而灵活的IO框…

如何设置IDEA远程连接服务器开发环境并结合cpolar实现ssh远程开发

文章目录 1. 检查Linux SSH服务2. 本地连接测试3. Linux 安装Cpolar4. 创建远程连接公网地址5. 公网远程连接测试6. 固定连接公网地址7. 固定地址连接测试 本文主要介绍如何在IDEA中设置远程连接服务器开发环境&#xff0c;并结合Cpolar内网穿透工具实现无公网远程连接&#xf…

SpringBoot+Vue前后端分离项目在Linux系统中基于Docker打包发布

文章目录 SpringBootVue前后端分离项目在Linux系统中基于Docker打包发布一、Java项目基于Docker打包发布1.打包应用&#xff0c;将打好的jar包放到我们的linux系统中2.新建dockerfile3.打包镜像4.测试运行5.上传镜像到阿里云免费私仓 二、Vue项目打包到docker镜像1.编译打包前端…

记一次由于buff/cache导致服务器内存爆满的问题

目录 前言 复现 登录服务器查看占用内存进程排行 先了解一下什么是buff/cache&#xff1f; 尝试释放buffer/cache /proc/sys/vm/drop_caches dirty_ratio dirty_background_ratio dirty_writeback_centisecs dirty_expire_centisecs drop_caches page-cluster swap…

罗技G29游戏方向盘试玩拆解,带震动力反馈

1.正好有时间记录下 自己的爱好 一千多的罗技G29游戏方向盘试玩拆解&#xff0c;带震动力反馈&#xff0c;值这个价吗_哔哩哔哩_bilibili 一千多的罗技G29游戏方向盘试玩拆解&#xff0c;带震动力反馈&#xff0c;值这个价吗_哔哩哔哩_bilibili 2.拆解 3.2个大电机 4.主控芯…

智能模型新篇章:RAG + Fine-Tuning 混合增强策略

一、前言 在之前的探讨中&#xff0c;我们已经分别深入了解了RAG&#xff08;检索增强生成&#xff09;和 Fine-tuning&#xff08;微调&#xff09;这两种优化大型语言模型的方法&#xff0c;探讨了它们在不同业务场景下的适用性、优势及局限。然而&#xff0c;我们很少讨论将…

深度学习——微积分基础

目录 1、导数和微分 1.1 定义函数&#xff1a; 1.2 趋近过程&#xff1a; 1.3 绘图表示&#xff1a; 2、偏导数 3、梯度 4、链式法则 5、学习心得 在2500年前&#xff0c;古希腊人把一个多边形分成三角形&#xff0c;并把它们的面积相加&#xff0c;才找到计算多边形面积…

【记录39】html element-ui 加载

环境 html使用element-ui组件、用vue框架搭建 方法一&#xff1a; 方法二&#xff08;推荐&#xff09; 将相关资源下载下来&#xff0c;在对应的html文件中相对路径引入。注意&#xff1a;css加载放在js之前

Windows 11 鼠标右键可选择 cmd 命令行选项

** Windows 11 鼠标右键可选择 cmd 命令行选项 ** 在文件夹内打开命令行&#xff0c;只能使用 Windows 自带的 PowerShell &#xff0c; 作为一个 cmd 重度使用用户来说很是折磨&#xff0c;需要打开 cmd 然后切换盘符再 cd 。。。 现在咱们自己创建一个可以打开 cmd 的方法…

【C++庖丁解牛】stack的介绍和使用 | queue的介绍和使用 | priority_queue的介绍和使用

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 1. stack的介绍和使用1.1…

微信小程序外卖跑腿点餐(订餐)系统(uni-app+SpringBoot后端+Vue管理端技术实现)

项目介绍 自从计算机发展开始&#xff0c;计算机软硬件相关技术的发展速度越来越快&#xff0c;在信息化高速发展的今天&#xff0c;计算机应用技术似乎已经应用到了各个领域。 在餐饮行业&#xff0c;除了外卖以外就是到店里就餐&#xff0c;在店里就餐如果需要等待点餐的话…

VUE2 Day08智慧商城案例

shift alt f 格式化代码快捷键 vant组件库的安装 安装出错在指令后面加 --force 安装出错在指令后面加 --force **封装api模块的好处&#xff1a; 请求与页面逻辑分离相同的请求可以直接复用请求进行了统一管理** ![在这里插入图片描述](https://img-blog.…

c语言扫雷改进版

目录 文章目录 主体 整体架构流程 技术名词解释 技术细节 测试情况 文章目录 概要整体架构流程技术名词解释技术细节测试情况 主体 主体包括菜单&#xff0c;游戏规则简绍&#xff0c;选择进行与否 int main() {int input;srand((unsigned int)time(NULL));do{ menu()…

Linux--gdb调试

一.安装gdb sudo apt install gdb 二.使用gdb 三.gdb的相关操作 gdb 可执行文件名 显示代码: l 加断点: b 行号 启动程序:r(运行之前一定要加断点) 查看断点信息: info break/info b 删除断点信息:delete 断点编号 单步执行:n 打印 :p 显示:display 变量名: 退出:q …

Vue字符串里的中文数字转换为阿拉伯数字

js字符串里的汉字数字转化为数字 <template><view><view><view class"inpbox" ><textarea v-model"voiceMane" input"convert" ></textarea></view></view></view> </template> &…