热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

1、MySQL简介

1、MySQL简介什么是MySQL?关系型数据库管理系统,使用标准sql,支持多种语言MySQL是一个关系型数据库管理系统,

1、MySQL 简介


什么是 MySQL?


关系型数据库管理系统,使用标准sql,支持多种语言


  1. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。
  2. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
  3. Mysql是开源的,所以你不需要支付额外的费用。
  4. Mysl支持大型的数据库,可以处理拥有上千万条记录的大型数据库。
  5. MySQL使用标准的SQL数据语言形式。
  6. Mysql可以允许于多个系统上,并且支持多种语言,这些编程语言包括C、C++、Python、Java、Ped、PHP、Eifel、Ruby和TCL等。
  7. Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。
  8. MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
  9. Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。

MySQL 高手是怎样练成的?


  1. mysql内核
  2. sql优化工程师
  3. mysql服务器的优化
  4. 查询语句优化
  5. 主重复制
  6. 软硬件升级
  7. 容灾备份
  8. sql编程

2、Linux 安装 MySQL


2.1、安装 MySQL


CentOS 6 通过 yum 安装mysql 5.6

下面是一些安装方式

\1. https://www.cnblogs.com/micfox/articles/10989905.html

\2. https://blog.csdn.net/MissDreamY/article/details/104938194

\3. 如果上面和下面的安装都失败的是话,试试这个https://www.jianshu.com/p/276d59cbc529

检查当前系统是否安装过 mysql


  • 检查系统是否安装其他版本的 MySQL 数据库

yum list installed | grep mysql
mysql-libs.x86_64 5.1.73-5.el6_6 @anaconda-CentOS-201508042137.x86_64/6.7

  • 有的话干掉老版本数据库

yum -y remove mysql-libs.x86_64

安装及配置


  • 拉取 rpm 包

wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm

  • 通过 rpm 安装 mysql

rpm -ivh mysql-community-release-el6-5.noarch.rpm

  • 列举可用的 mysql 版本

yum repolist all | grep mysql

通过命令行下载太慢了,自己在官网上下载了一个,存在了 d:/迅雷下载。

安装 mysql-community-server 版本(好像默认自带 mysql-community-client)

yum install mysql-community-server -y

mysql 服务的启动与停止


  • mysql 服务的启动

service mysqld start

  • mysql 服务的停止

service mysqld stop

  • 查看 mysql 服务的状态

service mysql status

备注:正在启动 mysqld: [失败] 问题

打下面这一套组合拳

rm -fr /var/lib/mysql/*
rm /var/lock/subsys/mysqld
killall mysqld

然后启动 mysql 的服务

service mysqld start

2.2、配置 MySQL


查看安装时创建的 mysql 用户和mysql 组

查看 mysql 用户

cat /etc/passwd|grep mysql

查看 mysql 用户组

cat /etc/group|grep mysql

mysqladmin

是什么:他是mysql的一个管理器,可以创建、删除数据库,改变数据库的密码等等,有很多功能

怎么使用,如果在linux直接使用mysqladmin或者其他任何命令,linux一般都是去 /usr/bin里去找。有点类似于环境变量。但是如果 /usr/bin里面没有的时候,肯定就找不到啊

所以,在 /usr/bin里建立 mysqladmin的软连接

ln -s /usr/local/mysql/bin/mysqladmin /usr/bin

/usr/local/mysql/bin是自己设置的mysql的安装目录。

然后就可以用mysqladmin了。

设置mysql密码

首先确保mysql服务是开着的。

首次设置密码,mysql刚安装好的时候,不需要密码,直接mysql就能进入mysql系统。此时增加密码

mysqladmin -uroot -p root

就可以了

如果已经有密码,用下面的命令

./mysqladmin -uroot -p password

image.png

设置 mysql 开机启动

设置 mysql 为开机自启动

chkconfig mysqld on

查看是否设置成功:2、3、4都是on代表开机自动启动

chkconfig --list | grep mysqld

image

  • 如果想要关闭 mysql 的开机自启动,输入如下命令,找到 mysqld ,单击空格取消 mysql 的开机自启动,Tab 键选中确定,敲击 Enter 键确定即可

ntsysv

image

输入以上命令,如果mysqld里有星号就代表可以了

找到mysql安装目录

如果想找到msql的安装目录,就用下面的命令

ps -ef|grep mysql

image.pngimage.png

  • 目录含义列举如下

basedir = path安装目录
character-sets-dir = path给出存放着字符集的目录。
datadir = path数据库的数据库。就是各种数据库所在的位置。
pid-file = filename为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); Init-V脚本需要使用这个文件里的进程ID结束mysqld进程。
socket = filename为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统; 默认设置一般是/var/lib/mysql/mysql.sock文件)。在Windows环境下,如果MySQL客户与服务器是通过命名管道进行通信 的,–sock选项给出的将是该命名管道的名字(默认设置是MySQL)。
lower_case_table_name = 1/0新目录和数据表的名字是否只允许使用小写字母; 这个选项在Windows环境下的默认设置是1(只允许使用小写字母)。

怎么找到mysql 配置文件位置

mysql配置文件默认在/etc下,是my.cnf

修改配置文件位置

将其拷贝至 /etc 目录下,重命名为 my.cnf ,覆盖原有的配置文件

cp /usr/share/mysql/my-default.cnf /etc/my.cnf

修改 mysql 字符集(5.7及以后默认字符集就是utf-8,不用改)

查看 mysql 编码字符集

  • 如果在建库建表的时候, 没有明确指定字符集, 则采用默认客户端和服务器端的字符集都用了 latin1,其中是不包含中文字符的。
  • 如何查看默认的编码字符集:

show variables like '%char%';
# 或者
show variables like '%character%';

image

修改配置文dy.cnf 配置文件,修改字符编码

vim /etc/my.cnf

  • 修改或添加如下内容

[client]
default-character-set=utf8[mysqld]
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci[mysql]
default-character-set=utf8

好像比老师的配置文件少了很多内容???

image

测试配置文件是否生效


  • 建表测试:中文无乱码

create database db01;
create table user(id int not null, name varchar(20));
insert into user values(1,'张三1');
select * from user;

image

  • 查看 mysql 全局变量

show variables like '%char%';

imagemysql 的安装位置

**
**

**
**

**
**

2.5、额外知识


全局查找某文件

find / -name mysql -ls # /是从/开始找, -name mysql是文件名中包含mysql, -ls是显示详细信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AWyZ94as-1616028958991)(https://cdn.nlark.com/yuque/0/2021/png/2840444/1615967369962-9c6041ff-a405-454a-bfc4-b2fa5317a7df.png)]

新建数据库

mysql> create database db01

image.png

查看所有数据库

mysql> show databases

image.png

去数据库文件下查看

image.png

mysql命令:显示表,创建表,插入记录

use db01;
show tables;
create table user(id int not null, name varchar(20));
insert into user values(1,'zs');

3、MySQL 用户组管理


3.1、用户管理相关命令


创建用户

创建名称为 zhang3 的用户, 密码设为 123123;

create user zhang3 identified by '123123';

查看用户和权限的相关信息

查看用和权限的相关信息的 SQL 指令

select host, user, password, select_priv, insert_priv,drop_priv from mysql.user;

1.host :表示连接类型

    1. % 表示所有远程通过 TCP 方式的连接
    2. IP 地址 如 (192.168.1.2,127.0.0.1) 通过制定 ip 地址进行的 TCP 方式的连接
    3. 机器名 通过制定 i 网络中的机器名进行的 TCP 方式的连接
    4. ::1 IPv6 的本地 ip 地址 等同于 IPv4 的 127.0.0.1
    5. localhost 本地方式通过命令行方式的连接 , 比如 mysql -u xxx -p 123xxx 方式的连接。
  1. user:表示用户名


    • 同一用户通过不同方式链接的权限是不一样的。

  1. password:密码

    • 所有密码串通过 password(明文字符串) 生成的密文字符串。 加密算法为 MYSQLSHA1 , 不可逆 。
    • mysql 5.7 的密码保存到 authentication_string 字段中不再使用 password 字段。

  1. select_priv , insert_priv 等

    • 为该用户所拥有的权限。

mysql> select host, user, password, select_priv, insert_priv,drop_priv from mysql.user;
+-----------+------+-------------------------------------------+-------------+-------------+-----------+
| host | user | password | select_priv | insert_priv | drop_priv |
+-----------+------+-------------------------------------------+-------------+-------------+-----------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y | Y | Y |
| heygo | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y | Y | Y |
| 127.0.0.1 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y | Y | Y |
| ::1 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y | Y | Y |
+-----------+------+-------------------------------------------+-------------+-------------+-----------+
4 rows in set (0.04 sec)

修改当前用户的密码

set password =password('123456');

修改其他用户的密码

修改李四用户的密码

update mysql.user set password=password('123456') where user='li4';

注意:所有通过 user 表的修改, 必须 用 flush privileges; 命令才能生 效

修改用户名

将王五的用户名修改为李四

update mysql.user set user='li4' where user='wang5';

注意:所有通过 user 表的修改, 必须 用 flush privileges; 命令才能生 效

删除用户

删除李四用户

drop user li4

注意:不要通过 delete from user u where user='li4' 进行删除, 系 统会有残留信息保留。

3.2、MySQL 的权限管理


授予权限

该权限如果发现没有该用户, 则会直接新建一个用户。

grant 权限 1,权限 2,…权限 n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令'

示例:给 li4 用户用本地命令行方式下, 授予 atguigudb 这个库下的所有 表的插删改查的权限。

grant select,insert,delete,drop on atguigudb.* to li4@localhost ;

授予通过网络方式登录的的 joe 用户,对所有库所有表的全部权 限, 密码设为 123

grant all privileges on *.* to joe@'%' identified by '123';

收回权限

查看当前用户权限:

show grants;

收回权限命令

revoke [权限 1,权限 2,…权限 n] on 库名.表名 from 用户名@用户地址;

收回全库全表的所有权限

REVOKE ALL PRIVILEGES ON mysql.* FROM joe@localhost;

收回 mysql 库下的所有表的插删改查 权限

REVOKE select,insert,update,delete ON mysql.* FROM joe@localhost;

注意:权限收回后, 必须用户重新登录后, 才能生效。

查看权限


  1. 查看当前用户权限:show grants;
  2. 查看所有用户权限:select * from user ;

4、MySQL 配置文件


二进制日志文件 log-bin

二进制日志文件 log-bin :用于主重复制

错误日志 log-error

默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等

查询日志 log

默认关闭,记录查询的sql语句,如果开启会减低mysql的整体性能,因为记录日志也是需要消耗系统资源的

数据文件


  1. 数据库文件:默认路径:/var/lib/mysql
  2. frm文件:存放表结构
  3. myd文件:存放表数据
  4. myi文件:存放表索引

如何配置


  1. Windows 系统下:my.ini文件
  2. Linux 系统下:etc/my.cnf

5、MySQL 逻辑架构介绍


mysql 的分层思想


  1. 和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上。
  2. 插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。

image

mysql 四层架构


1. 连接层:

最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。

2. 服务层:

第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化及部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定查询表的顺序,是否利用索引等,最后生成相应的执行操作。如果是select语句,服务器还会查询内部的缓存。如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。

Management Serveices & Utilities系统管理和控制工具
SQL InterfaceSQL 接口。 接受用户的 SQL 命令, 并且返回用户需要查询的结果。 比如 select from 就是调用 SQL Interface
Parser解析器。 SQL 命令传递到解析器的时候会被解析器验证和解析
Optimizer查询优化器。 SQL 语句在查询之前会使用查询优化器对查询进行优化, 比如有 where 条件时, 优化器来决定先投影还是先过滤。
Cache 和 Buffer查询缓存。 如果查询缓存有命中的查询结果, 查询语句就可以直接去查询缓存中取 数据。 这个缓存机制是由一系列小缓存组成的。 比如表缓存, 记录缓存, key 缓存, 权限缓存等

3. 引擎层

是啥?比如车子,有的车子可以跑沙漠,有的跑山地,还有的跑雪地。

引擎层就相当于给mysql这部车子配备了多个发动机。当mysql跑雪地的时候,装上雪地发动机。跑沙漠的时候,装上沙漠发动机等等。

存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过APl与存储引擎进行通信。不同的存储引擎具有的功能不同,这样我们可以根据自己的实际需要进行选取。后面介绍MyISAM和InnoDB

4. 存储层:

数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互。

MySQL 部件


  1. Connectors:指的是不同语言中与SQL的交互
  2. Management Serveices & Utilities: 系统管理和控制工具
  3. Connection Pool:连接池

    • 管理缓冲用户连接,线程处理等需要缓存的需求。负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到线程管理模块。
    • 每一个连接上 MySQL Server 的客户端请求都会被分配(或创建)一个连接线程为其单独服务。而连接线程的主要工作就是负责 MySQL Server 与客户端的通信。接受客户端的命令请求,传递 Server 端的结果信息等。线程管理模块则负责管理维护这些连接线程。包括线程的创建,线程的 cache 等。

  1. SQL Interface:SQL接口。接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface
  2. Parser:解析器

    • SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。
    • 在 MySQL中我们习惯将所有 Client 端发送给 Server 端的命令都称为 Query,在 MySQL Server 里面,连接线程接收到客户端的一个 Query 后,会直接将该 Query 传递给专门负责将各种 Query 进行分类然后转发给各个对应的处理模块。
    • 解析器的主要功能:
      • 将SQL语句进行语义和语法的分析,分解成数据结构,然后按照不同的操作类型进行分类,然后做出针对性的转发到后续步骤,以后SQL语句的传递和处理就是基于这个结构的。
      • 如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的

  1. Optimizer:查询优化器

    • SQL语句在查询之前会使用查询优化器对查询进行优化。就是优化客户端发送过来的 sql 语句 ,根据客户端请求的 query 语句,和数据库中的一些统计信息,在一系列算法的基础上进行分析,得出一个最优的策略,告诉后面的程序如何取得这个 query 语句的结果
    • 他使用的是“选取-投影-联接”策略进行查询。
      • 用一个例子就可以理解: select uid,name from user where gender = 1;
      • 这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤
      • 这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤
      • 将这两个查询条件联接起来生成最终查询结果

  1. Cache和Buffer:查询缓存

    • 他的主要功能是将客户端提交 给MySQL 的 Select 类 query 请求的返回结果集 cache 到内存中,与该 query 的一个 hash 值 做一个对应。该 Query 所取数据的基表发生任何数据的变化之后, MySQL 会自动使该 query 的Cache 失效。在读写比例非常高的应用系统中, Query Cache 对性能的提高是非常显著的。当然它对内存的消耗也是非常大的。
    • 如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等

  1. 存储引擎接口

    • 存储引擎接口模块可以说是 MySQL 数据库中最有特色的一点了。目前各种数据库产品中,基本上只有 MySQL 可以实现其底层数据存储引擎的插件式管理。这个模块实际上只是 一个抽象类,但正是因为它成功地将各种数据处理高度抽象化,才成就了今天 MySQL 可插拔存储引擎的特色。
    • 从上图还可以看出,MySQL区别于其他数据库的最重要的特点就是其插件式的表存储引擎。MySQL插件式的存储引擎架构提供了一系列标准的管理和服务支持,这些标准与存储引擎本身无关,可能是每个数据库系统本身都必需的,如SQL分析器和优化器等,而存储引擎是底层物理结构的实现,每个存储引擎开发者都可以按照自己的意愿来进行开发。
    • 注意:存储引擎是基于表的,而不是数据库。

SQL 大致的查询流程


mysql 的查询流程大致是:


  1. mysql 客户端通过协议与 mysql 服务器建连接, 发送查询语句, 先检查查询缓存, 如果命中, 直接返回结果,否则进行语句解析,也就是说, 在解析查询之前, 服务器会先访问查询缓存(query cache)——它存储 SELECT 语句以及相应的查询结果集。 如果某个查询结果已经位于缓存中, 服务器就不会再对查询进行解析、 优化、 以及执行。 它仅仅将缓存中的结果返回给用户即可, 这将大大提高系统的性能。
  2. 语法解析器和预处理: 首先 mysql 通过关键字将 SQL 语句进行解析, 并生成一颗对应的“解析树”。 mysql 解析器将使用 mysql 语法规则验证和解析查询; 预处理器则根据一些 mysql 规则进一步检查解析数是否合法。
  3. 查询优化器当解析树被认为是合法的了, 并且由优化器将其转化成执行计划。 一条查询可以有很多种执行方式,最后都返回相同的结果。 优化器的作用就是找到这其中最好的执行计划。
  4. 然后, mysql 默认使用的 BTREE 索引, 并且一个大致方向是:无论怎么折腾 sql, 至少在目前来说, mysql 最多只用到表中的一个索引。

6、MySQL 存储引擎


查看 mysql 存储引擎


  • 查看 mysql 支持的存储引擎

show engines;

image

  • 查看 mysql 默认的存储引擎

show variables like '%storage_engine%';

image

MyISAM 引擎和 InnoDb 引擎的对比


是否支持外键、事务、行锁还是表锁。 MyISAM更关注性能,偏重于读。 而InnoDB全面。

image

阿里巴巴用的是啥数据库?


  1. Percona为MySQL数据库服务器进行了改进,在功能和性能上较MySQL有着很显著的提升。该版本提升了在高负载情况下的InnoDB的性能、为DBA提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。
  2. 该公司新建了一款存储引擎叫xtradb完全可以替代innodb,并且在性能和并发上做得更好,阿里巴巴大部分mysql数据库其实使用的percona的原型加以修改。

image


推荐阅读
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
author-avatar
手机用户2502883515
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有