mysql必学十大必会_MYSQL 学习(一)--启蒙篇《MYSQL必知必会》

MYSQL必知必会

一. DDL 数据定义语言

Data Definition Language 是指CREATE,ALTER和DROP语句。

DDL允许添加/修改/删除包含数据的逻辑结构,或允许用户访问/维护数据(数据库,表,键,视图......)的逻辑结构。DDL是关于“元数据”的。

Delimiter详解

Delimiter 指定命令行结束符。告诉MYSQL命令已经结束,可以执行了。MYSQL默认的delimiter是分号”;”,但是,有的情况下,希望输入完整后,再一次执行。这种情况下,首先修改结束符为自己指定的符号。比如//或者$$.在最后输入完成后,输入指定的命令行结束符。开始执行整个语句。

(1) 表操作

1.创建表

创建表至少包含两部分信息。表名称和列的细节信息。

建表语言例子

CREATE TABLE table_name

(

Column1 int not null,

....

PRIMARY_KEY(Column1)

)engine= InnoDB|MyISAM;

建表语言描述

建表语句,CREATE TABLE + 表名称 然后用小括号包含字段列表(需要定义主键primary_key)。最后是引擎类型。MySQL通常有InnoDB(事务处理的好)和MyISAM(支持全文检索)两种

引擎类型

MySQL具有多种引擎。SQL是在引擎中执行的。

InnoDB:可靠的事务处理引擎,不支持全文检索。

MyISAM:不支持事务,支持全文检索

MEMORY:功能和MyISAM类似。数据是在内存中保存,而不是磁盘。速度快,特别适合临时表。

2.修改表

Alter table table_name add column_n data_type;

3.删除表

Drop table table-name;

4.重命名表

Rename table table-name to table-name2;

(2) 视图

视图是虚拟的表,只包含使用时动态检索数据的查询。

1.使用视图的原因

复用SQL语句

简化基于视图的SQL。

保护数据

因为视图只能查询部分字段。使用视图可以授予指定部分访问权限,而不是整个的访问权限。

更改数据的格式和表示

可以把数据格式进行转换之后,提供给用户。(对检索出来的数据重新格式化)

2.视图相关的语句

创建视图

Create view view_name AS ---;

删除视图

Drop view view_name;

更新视图

Create or replace view_name ;

视图的数据是可以更新的。意味着可以对视图进行insert、update和delete操作的。但是视图如果包含以下情况,将不可以更新。

分组(group by 和having)

关联(任何join)

子查询

并(union 和union All)

聚集函数(count()、sum()、avg()、max()、min())

去重distinct

导出(计算)列

查看创建视图语句

Show create view view_name;

(3) 存储过程

1) 使用存储过程的原因

执行速度快

存储过程只在创建的时候编译一次。以后每次执行都不用编译。而SQL语句每次执行,都需要编译一次。所以,存储过程能提高执行效率。

编译:SQL通常在db接收到执行一般有以下几个操作。

(1)语法、语义解析。

(2)优化SQL语句,制定执行计划。

(3)执行并返回结构。

其中,语法语义解析、优化SQL语句、制定执行计划是编译的部分。

减少网络传输

复杂逻辑需要多条SQL语句,客户机和数据库服务器之间的操作多时,产生大量的网络传输。而封装在一个存储过程中,减少网络负载。

更灵活

使用条件判断和游标,使用数据库内置函数,有更强的灵活性和复杂性。

2) 存储过程的操作语句

创建存储过程

Create procedure 存储过程名称([参数列表]) begin SQL语句end;

参数列表格式

[类型限定 变量名 数据类型]

类型限定:

(1)IN

限定这个参数是传值给存储过程的。【in修饰的值,在存储过程内部不会被修改】

(2)OUT

限定这个值是从存储过程传出的一个值。

(3)INOUT

既可以作为参数传递给存储过程,也可以在存储过程中被修改,传值出来。

存储过程的调用

调用存储过程

Call 储存过程名(参数);

对于In类型的参数,参数可以是数值,也可以是变量。对于out/inout必须是变量。

MYSQL变量必须以@开始。比如call 存储过程名(“xxx”,@变量名)

存储过程的删除

Drop procedure if exists 存储过程名称;

存储过程的亮点使用

游标

存储过程中可以使用游标,可以对检索出来的数据集合进行遍历操作。

条件分支

可以根据条件分支,建立SQL执行分子,使存储过程更加智能。

IF XXX THEN  SQL语句END IF

(4) 游标

游标是MYSQL数据库上的数据库查询出来的数据结果集。且只能用于存储过程。

1) 使用游标的步骤

定义游标

这个过程实际上没有检索数据,只是定义要使用的SELECT语句。

打开游标

这个过程用前面定义的SELECT语句把数据实际检索出来。

使用游标

对于填有数据的游标,根据需要取出(检索)各行。

关闭游标

结束游标使用时,必须关闭游标。

2) 创建游标

定义游标

DELCAREordernumbers  CURSOR

FOR

SELECT order_num FROM orders;

打开游标

OPEN ordernumbers;

关闭游标

CLOSEordernumbers;

3) 使用游标

1.FETCH:获取每一条数据

FETCH指定检索什么数据(所需的列),检索出来的数据存储在什么地方。它还向前移动游标中的内部行指针,使下一条FETCH语句检索下一行(不重复读取同一行)。

2.FETCH:循环检索数据

DELIMITER //CREATE PROCEDURE processorders()BEGIN

-- Declare local variables

DECLARE done BOOLEAN DEFAULT 0;

DECLARE o INT;

-- Delcare the cursor

DELCARE ordernumbers CURSOR

FOR

SELECT order_num FROM orders;

-- Declare continue handler

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;

-- Open the cursor

OPEN ordernumbers;

-- Loop through all rows

REPEAT

-- Get order number

FETCH ordernumbers INTO o;

-- End of loop

UNTIL done END REPEAT;

-- Close the cursor

CLOSE ordernumbers;END //DELIMITER ;

这里的FETCH在REPEAT内,因此反复执行直到done为真。

上面这条语句定义了一个CONTINUE HANDLER,它是在条件出现时被执行的代码。指出当SQLSTATE '02000'出现时,SET done=1。

DECLARE语句的次序

i. DECLARE语句定义的局部变量必须在定义任意游标或句柄之前定义

ii. 句柄必须在游标之后定义(如循环的条件等)

(5) 触发器

触发器是一种和数据操作有关的数据库对象。当触发器所在的表出现指定的事件时,将调用该对象。

1) 创建触发器

MYSQL创建触发器的命令如下

CREATE TRIGGER trigger_name

trigger_time

trigger_event ON tbl_name

FOR EACH ROW

trigger_stmt ;

trigger_name:标识触发器名称,用户自行指定;

trigger_time:标识触发时机,取值为BEFORE或AFTER;

trigger_event:标识触发事件,取值为INSERT、UPDATE或DELETE;

tbl_name:标识建立触发器的表名,即在哪张表上建立触发器;

trigger_stmt:触发器程序体,可以是一句SQL语句,或者用BEGIN和END包含的多条语句。

不能在同一张表建立多个相同类型的触发器。所以,一张表最多能建立6个触发器。

2) NEW和OLD详解

NEW和OLD用来表示触发器的所在表中,触发了触发器的那一行数据。具体如下:

在INSERT触发器中。NEW用来表示将要BEFORE或者已经AFTER插入的数据。

在UPDATE触发器中,OLD用来表示将要或者已经被修改的原数据。NEW用来表示将要或者已经被修改后的新数据。

在DELETE触发器中。OLD用来表示将要或者已经被删除的原数据。

使用方法:

NEW.columnName (columnName为相应数据表某一列名)

OLD 是只读的,而NEW则可以在触发器中使用SET赋值,这样不会再次触发触发器,造成循环调用(例如,在一列前添加前缀等)

3) 删除触发器

Drop trigger [IF EXISTS] trigger_name ;

4) 触发器的执行顺序

触发器一般建立InnoDB引擎的MYSQL.所以,触发器也是事务安全的。

如果BRFORE 触发器执行失败,SQL无法执行。

如果SQL执行失败,则AFTER触发器就不会执行。

如果AFTER触发器执行失败,SQL就会回滚。

二. DML数据库操作语言

Data Manipulation Language (数据操作语言)是指INSERT,UPDATE和DELETE语句

DML允许自己添加/修改/删除数据。

(1) 增-插入数据

插入数据的同时,会插入数据对应的索引。所以,比较耗时。如果,需要尽快将数据插入,方便及时查询数据。可以先插入数据。之后再生成索引。

在insert into之间加入关键字。LOW_PRIORITY. =>INSERT LOW_PRIORITY INTO

1) 插入单行数据

INSERT INTO TABLE_NAME(column1,...column_N) values(value1,... value_N)

2) 插入多行数据

INSERT INTO TABLE_NAME(column1,...column_N) values(value1,... value_N),(value1,... value_N),(value1,... value_N)...,(value1,... value_N);

3) 插入查询数据 insert into select

INSERT INTO TABLE_NAME(column1,...column_N) selectcolumn1 , ... column_N fromTABLE_NAME2;

(2) 删-删除数据

DELETE FROM TABLE WHERE 子句;

Truncate 和delete比较 ; -删除整张表。比delete from table速度快。主要原因是,先删除原来的表,再创建一个新表。

(3) 改-修改数据

UPDATE TABLE SET COLUMN =“xxx”WHERE 子句;

三. DQL 数据库查询语言

Data Query Language (数据查询语言)是指SELECT,SHOW和HELP语句(查询)

SELECT是主要的DQL指令。它会检索您需要的数据。SHOW检索有关元数据的信息。HELP...适合需要帮助的人。

(1) 基本查询

Select 的子句顺序如下:

Select -> from ->where ->group by -> having -> order by ->limit

1) Select

Select columns|* from table ;字段别名使用 column as alias

1.常规字段

Select子句中,column一个或者多个或者*

2.拼接字段

使用拼接函数concat(),拼接一个或者多个字符/字段 作为一个字段返回。

3.计算字段

多个字段进行四则计算,作为一个字段返回。

4.测试使用

Select 可以不配合from子句,自己直接运行。通常用来测试/验证函数。

5.去重

在select 和form之间 使用distinct。对检索出的数据集去重。

2) Aggregate function

聚集函数

需注意两点:

其一:一种是ALL模式,也是默认的模式。另外一种DISTINCT模式。DISTINCT是对数据先进行去重,之后再进行聚合运算。

其二:聚合函数和分组子句并不需要一定配合使用。也就是说,聚合函数单独使用就是对当前数据集进行聚合运算。聚合函数和分组子句配合使用,就是先分组,然后在各个组上再进行聚合运算。

1.Count(*|column)

有两种使用,count(*) 和count(column)。都是确定表中的行数。区别。第一个count(*)代表所有的行数,真正查出集合的行数。第二个column(column)代表所有行中column非空的行数。

2.Avg(column)

针对column 如果为null,在计算平均值的时候,不计算在内(总值不会加,行数也不会加)。

3.Sum(column)

返回列之和

4.Max(column)

返回列中最大值

5.Min(column)

返回列中最小值

3) Where

搜索条件、过滤条件。复杂逻辑的时候,最好使用小括号,逻辑关系更清楚一些。

1.单条件过滤

等于、不等于、大于、小于等直接过滤

范围 Where column begin start_value and end_value ;

空值 where column is null ;

2.组合Where

And 操作

Where column1_condition and column2_condition ;

可以是2个或者多个条件,使用and链接。相当于逻辑且。检索出的数据集合必须两个条件都满足。

Or 操作

Where column1_condition orcolumn2_condition ;

相当于逻辑或,只要满足多个条件中的一个就行。

In 操作

Where columnin (值域集合,用逗号隔开);

功能上类似or,column是集合中任何一个即可。

Not 操作

否定它之后跟的任何条件。Not 只和IN、Between和Exists三个配合使用。

3.Like

模糊匹配,对不确定的进行匹配。是整列匹配。意思是,描述的是整列的结构。整列的结构和通配符描述的结构一致,才可以。通配符:用来匹配值的一部分的特殊字符。

模糊匹配效率比较低,所以在多个条件过滤的时候,将模糊匹配放在最后执行。

Wherecolumn likeXXX(使用通配符)

%

%表示任意字符出现任意多次【0或者多个】。

_

只匹配单个字符而不是多个字符。

4.Regexp

正则表达式的作用是匹配文本。将一个模式(正则表达式)和一个文本进行比较。不是整列匹配。只要正则描述的单元在列中出现,这行数据即匹配上了。

Wherecolumn regexp“model” ;

基本字符匹配

进行OR匹配

Or 在正则中表示”|”

匹配几个字符之一

用中括号[]

匹配范围

[1-5]

匹配特殊字符

转义字符 \\紧跟特殊字符。

匹配多个实例

*代表0或者多个;+代表一个或多个;?代表0个或者1个;{n}代表指定数据个;{n,}不少于指定数目个;{n,m}匹配数据的范围

定位符

^代表文本的开始。$代表文本的结束。[[:<:>:]]代表词的结束。

4) Group By

数据分组:允许对数据逻辑分组,以便对每个组进行聚合计算。但是聚集函数不是必须需要和分组子句配合使用的。

1.创建分组

通常在where 子句后 ,使用Group By columns;

如果多个分组字段,使用逗号隔开。

Group by 语句中的对应的select子句。必须是聚集函数或者是group by后的字段。

如果有where 子句。则group by出现在where子句之后,在order by子句之前。

Rollup,使用with ROLLUP关键字,可以使得每个分组以及每个分组汇总级别的值。

2.Having 分组过滤

所有的where 都可以使用having替代。唯一差别是where是过滤行,having是过滤分组。

Having aggregate function() 比较符 数值。

3.分组和排序

Order by 可以和Group By配合使用,通常order by跟在group By子句之后。对数据集合分组聚合之后,再按照指定的字段进行排序。

5) Order by

排序

后面跟一个或多个字段。升序或者降序排列的确定,需要给每个字段指定。比如 order by column1 desc ,column2 asc

其中 desc 为降序,asc为升序。

6) Limit 限制返回结果

1.Limit 2

返回最前面2行。如果总行数小于2,则全部返回。

2.Limit 2,3

从第2行开始,返回3行,即为行3至行5。检索出来第一行是0而不是1.

(2) 复杂查询

1) 子查询

嵌套在其它查询中的查询。

子查询的执行顺序是由内向位处理的。

1.子查询做过滤

即在where 子句中使用子查询。子查询的结果作为外层查询的过滤集合。

2.子查询作为计算字段

即在select 子句中,某些字段使用子查询来实现。

2) 关联组

关联的本质是将第一张表的每一行和第二张表中的每一行配对。

1.内关联

Inner join

使用格式为select XXX from table1 inner join table2 oncondition

最后选择出的是两侧都有值的行。

2.外关联

Left/right join

假设 A left/right B ,如果是左关联,则可以理解为A是主表。如果是右关联,则B表位主表;主表的所有的行都存在,附表中只有关联上的行才存在。

3.自关联

同一张表和自己关联。称之为自关联。关联需要使用别名。

3) 组合查询

Union 将多个查询结果并起来返回 称之为组合查询。

场景:其一:两种表结构类似的表查询,返回后union。其二:对同一张表多次查询,结果合并返回。

1.Union 和union all区别

Union 是去除重复的。

Union All 是不去重复的。多个元素行,如果有重复的。会保留。

2.组合查询排序

Union 的 最后一条select语句之后,使用order by子句。结果就是对整个union 句子进行排序。

(3) 操作符

1) 比较操作符

大于>小于

2) 算数操作符

加+减-乘*除/

3) 连接操作符

且and 或or

4) 逻辑操作符

Between ... and

like/not like

in/not in

(4) 通配符

% 代表0个或多个字符

_ 代表一个字符

(5) 常用函数

1) 字符串函数

Left(str,length)、right(str,length)

从左开始截取指定长度的字符串

从右开始截取指定长度的字符串

Length(str)

返回字符串的长度

Locate(substr,str)

返回子串在字符串中第一个位置。

Lower(str)、Upper(str)

字符串转小写、字符串转大写

Trim(Str)、LTrim(str)、RTrim(str)

字符串两边去空格、字符串左边去空格、字符串右边去空格

substring(str, pos),substring(str, pos, length)

分别代表

字符串从pos位置开始截取,直至字符串尾部。

字符串从pos位置开始截取,截取长度为length个字符的字符串。

2) 聚集函数

3) 数值处理函

4) 数日期函数

AddDate()、DayOfWeek()

(6) 复杂函数

(7) 全文本搜索

四. DCL数据库控制语言

data control language (数据控制语言)是指GRANT和REVOKE语句

DCL用于授予/撤消对数据库及其内容的权限。DCL很简单,但MySQL的权限相当复杂。DCL是关于安全性的。

MYSQL数据库的安全基础是:用户对自己需要的数据具有适当的权限。

DCL思维导图

(1)权限

权限类型

常用权限(pri_type)包括:ALL, SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP等

级别全局级

*.*  所有数据库

数据库级

.*   某一个数据库,例如:test.*

表级

.   某个数据库的某个表:test.students

(2)用户权限操作

给用户授权

grant pri_type on db_name.t_name to 'username'@'host' ; grant pri_type on db_name.t_name to 'username'@'host' ;

删除用户权限

revoke pri_type on db_name.t_name from 'user'@'host';

查看权限指定用户(root用户)

show grants for 'username'@'%';

自己

show grants;

(1) 用户管理

1) 创建用户

MYSQL是一个数据库管理系统。有自带数据库和用户创建的数据库。用户创建数据库的结构在自带数据库中保存。同样,创建的用户在mysql数据库的user表中保存。

Create USER‘用户名’@’允许其登录的地址’identified by ‘密码’;

说明

创建的用户需同时指定该用户可以在哪个地址进行登录。

其中“%”代表“任何地址”。

用户创建之后,自动在mysql的user表中添加了一条记录,但该用户还没有权限。

2) 删除用户

DROP USER ‘用户名’@’允许其登录的地址’;

3) 修改用户密码

修改自己密码

set password = password(‘新密码’);

修改其它用户密码

set password for ‘用户名’@’允许其登录的地址’ =password(‘新密码’);

(2) 权限分配

1) 添加权限

Grant

添加权限至少包含三部分内容。要授予的权限、被授予权限的数据库或者表、用户名。

格式:

Grant权限名1,...权限名nON数据库名.对象名TO‘用户名’@’允许登录的地址’ ;

常用权限(pri_type)包括:ALL, SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP等

对象名:代表数据库中的东西,通常是表、视图、存储过程。

其中”*.*”代表所有数据库的所有对象。

2) 收回权限

Revoke,格式如下

revoke 权限名1,权限名2,....on 数据库名.对象名from‘用户名’@’允许其登录的地址’ ;

五. DTL事务控制语言

Data Transaction Language(数据事务语言)是指START TRANSACTION,SAVEPOINT,COMMIT和ROLLBACK [TO SAVEPOINT]语句。

DTL用于管理事务(包含更多指令的操作,如果其中一个指令失败,则不能执行这些指令)。

(1) 是什么事务

事务就是用来保证多条”增删改”语句执行的一致性。要么都执行,要么都不执行。

MYSQL 的执行引擎,innoDB支持事务。MyISAM不支持事务。

(2) 事务的特点

1) 原子性

一个事务中的所有语句,应该做到:要么都做,要么都不作。

2) 一致性

数据在逻辑上保持”合理性”。

3) 隔离性

如果多个事务并发执行,每个事务都像各自独立执行一样。

4) 持久性

一个事务执行成功,对数据而言,是一个明确的磁盘数据更改(而不是仅仅内存的变化)。

(3) 事务模式

在cmd命令行模式中,是否开启了”一行命令就是一个事务”的这个开关。这个称谓自动提交模式。

1.自动提交模式

MYSQL默认是自动提交模式。autocommit=1;

2.手动提交模式

Set autocommit=0;如果设置为手动提交模式,则所有的增删改操作都需要手动的提交。即在执行SQL语句后,再执行commit才能生效;

(4) 事务执行流程

1.事务的几个概念

事务Transaction

指一组SQL语句。

回退Rollback

指撤销执行指定SQL语句的过程。

提交Commit

指将为未存储的SQL语句结果写入数据库。

保留点Savepoint

指事务处理中设置的临时占位符。可以对它发布回退。可以在之前定义一个位置为保留点,需要回滚的时候,可以回滚到指定的保留点。

2.事务的执行流程

开始事务

Start transaction ;

执行多条增删改语句

根据语句的执行结果,提交或者回退

If(没有出错){

Commit; //事务提交,所都都执行

}else {

Rollback; //回滚事务,所有都没执行

}

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

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

相关文章

python连接wifi_python 自动重连wifi windows的方法

如下所示&#xff1a;# codingutf-8import urllib2import urllibfrom cookielib import CookieJarimport osimport reimport timeclass ConnectWeb(object):def __init__(self):self.cookiejarinmemory CookieJar()self.opener urllib2.build_opener(urllib2.HTTPCookieProce…

java for新循环_Java 8 新语法习惯 (for 循环的函数替代方案)

我们看这样一个示例public class ForDemo {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("Get set...");for (int i 0; i < 4; i) {System.out.println(i"...");}}}测试结果Get set...0...1...2...…

喜马拉雅 xm文件转m4a_喜马拉雅电台、课程语音如何转成文字?

今天看了一篇文章“AI面前人类一败涂地”就是说了AI的发展让所有的事情几乎都可以实现科技化&#xff0c;无需人工操作&#xff0c;工作效率还比人工要高很多。这样说来的确是这样。语音转换也是其中一门技术&#xff0c;人们现在对于语音的交流很多&#xff0c;比如社交软件的…

java url特殊字符转义字符_URL中包含有特殊字符,进行转义

String temp URLEncoder.encode(json);URL中的特殊字符有些符号在URL中是不能直接传递的&#xff0c;如果要在URL中传递这些特殊符号&#xff0c;那么就要使用他们的编码了。编码的格式为&#xff1a;%加字符的ASCII码&#xff0c;即一个百分号%&#xff0c;后面跟对应字符的A…

java 多重注解_Java注解-元数据、注解分类、内置注解和自定义注解

大家好&#xff0c;我是乐字节的小乐&#xff0c;上次说过了Java多态的6大特性|乐字节&#xff0c;接下来我们来看看Java编程里的注解。Java注解有以下几个知识点&#xff1a;元数据注解的分类内置注解自定义注解注解处理器Servlet3.0本文先介绍前面4个知识点&#xff1a;元数据…

python getattr函数_Python中的getattr()函数详解

在计算机编程中&#xff0c;自省是指这种能力&#xff1a;检查某些事物以确定它是什么、它知道什么以及它能做什么。自省向程序员提供了极大的灵活性和控制力。自省(introspection)&#xff0c;在计算机编程领域里&#xff0c;是指在运行时来判断一个对象的类型的能力。它是Pyt…

ie8不兼容java项目_常见IE8兼容性问题及解决

1、css3媒体查询IE8不支持媒体查询解决&#xff1a;respond.js&#xff0c;在页面中所有css文件的引用位置之后引用Respond.js2、HTML5新标签IE8不支持H5新标签解决&#xff1a;html5shiv.js&#xff0c;在页面中引用html5shiv.js文件。必须添加在页面的元素内&#xff0c;因为…

python对图像二值化_python如何二值化图像

在python中二值化图像的方法&#xff1a;首先将图片转化为灰色图像&#xff1b;然后自定义灰度界限&#xff1b;最后输入“photoImg.point(table,1)”命令(table为自己创建的数组名)即可二值化图像。# 图片二值化代码如下&#xff1a;from PIL import Imageimg Image.open(tes…

Java快速提升_java快速复习 一 基础语法

最近看很多算法书&#xff0c;比较不错的有不少都是java语言描述&#xff0c;所以用一天时间快速研究并整理java &#xff0c;参考资料&#xff1a;java入门经典Call this file "Example2.java".class Example2 {public static void main(String args[]) {int a&…

酷狗音乐linux版_酷狗音乐概念版APP内测获用户好评:极简化,更高级

这两天在网上冲浪的时候&#xff0c;发现不少网友都在安利一个叫做“酷狗音乐概念版”的APP&#xff0c;难道是酷狗又在闷声搞大事了&#xff1f;搜了一下发现&#xff0c;原来是酷狗音乐概念版APP已经开始进入内测阶段&#xff0c;尝试着下载使用&#xff0c;果然发现“更酷更…

java 计算器类图_多态计算器(封装、继承、多态、简单工厂)

一.封装向对象程序设计中&#xff0c;一个非常重要的技术便是封装&#xff0c;也就是把客观事物封装成抽象的类&#xff0c;并且类可以把自己的数据和方法只让可信的类或者对象操作&#xff0c;对不可信的进行信息隐藏。这样做的好处在于可以使类内部的具体实现透明化&#xff…

图书管理系统 java 源码_[源码和文档分享]基于C语言和SQL SERVER数据库实现的图书管理系统...

摘 要本文根据《数据库应用系统设计》课程要求而做。选择图书馆管理系统设计与开发是因为觉得图书馆管理系统对我们的帮助很大&#xff0c;并且经常去图书馆&#xff0c;对图书馆的大部分功能及流程还是比较了解&#xff0c;而且现在有些地方可能还不够完善。这次课程设计目标是…

java useragent 360 遨游 火狐_各种浏览器UserAgent一览表(桌面+移动)

桌面IE而IE各个版本典型的userAgent如下&#xff1a;Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)其中&#x…

sql server 修改字段不能为空_SQL-SQL介绍

一SQL 介绍SQL&#xff08;Structured Query Language&#xff09;,语义是结构化语言&#xff0c; 是一门 ANSI 的标准计算机语言&#xff0c;用来访问和操作数据库系统&#xff1b;二 数据库介绍2.1 数据库我们已经知道了SQL是操作数据库的语言&#xff0c;那么数据库是什么&a…

python 数组转音频_Python3+将2声道音频,分拆成1声道

现在是将双声道的音频分拆成单声道的。同理可以将多声道的音频文件&#xff0c;转为1声道的音频文件。注意新形成的音频文件的rate&#xff0c;需要与原音频的相同。import osimport waveimport numpy as npimport pyaudiofile1 os.path.join(os.path.abspath(os.path.dirname…

java定义一个矩阵的类_java写入一个矩阵,如何编程求该矩阵的秩

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Fraction.java如下:(这个是网上找来的&#xff0c;处理分数的类)// 支持查找功能的分数类class Fraction implements Comparable {// 分子private int numerator;// 分母private int denominator;// 默认构造函数public Fraction()…

python动态映射_Python Django框架url反向解析实现动态生成对应的url链接示例

本文实例讲述了Python Django框架url反向解析实现动态生成对应的url链接。分享给大家供大家参考&#xff0c;具体如下&#xff1a;url反向解析&#xff1a;根据url路由规则,动态生成对应的url链接 (防止硬编码)。url反向解析应用在两个地方&#xff1a;模板中的超链接&#xff…

java标量替换_JAVA逃逸分析、栈上分配、标量替换、同步消除

一、逃逸分析逃逸分析是编译语言中的一种优化分析&#xff0c;而不是一种优化的手段。通过对象的作用范围的分析&#xff0c;为其他优化手段提供分析数据从而进行优化。逃逸分析包括&#xff1a;全局变量赋值逃逸方法返回值逃逸实例引用发生逃逸线程逃逸:赋值给类变量或可以在其…

python图像人类检测_OpenCV人类行为识别(3D卷积神经网络)

1. 3D卷积神经网络相比于2D 卷积神经网络&#xff0c;3D卷积神经网络更能很好的利用视频中的时序信息。因此&#xff0c;其主要应用视频、行为识别等领域居多。3D卷积神经网络是将时间维度看成了第三维。人类行为识别的实际应用&#xff1a;安防监控。(检测识别异常行为&#x…

Spring Cloud Feign作为HTTP客户端调用远程HTTP服务

如果你的项目使用了SpringCloud微服务技术,那么你就可以使用Feign来作为http客户端来调用远程的http服务。当然,如果你不想使用Feign作为http客户端,也可以使用比如JDK原生的URLConnection、Apache的Http Client、Netty的异步HTTP Client或者Spring的RestTemplate。 那么,为…