首页 > 数据库 >数据库(MySQL)基础

数据库(MySQL)基础

时间:2024-05-17 15:30:55浏览次数:22  
标签:语句 数据库 基础 查询 字段 MySQL WHERE SELECT

时间:2024-05-11 星期六

mysql基础

mysql基础学习内容

MySQL数据库安装与配置、SQL基本查询、SQL写入操作、MySQL表操作、SQL高级查询、MySQL基本函数

数据库分类

主流关系型数据库

商用数据库:DB2、Oracle

开源免费数据库:MySQL、SQL Server(微软开发的,主要用于windows系统,现在也支持linux系统,但是不活跃)

NoSQL数据库系统

NoSQL数据库是对关系型数据库的补充,NoSQL数据库指的是数据分类存放,但是数据之间没有关联关系的数据库系统

主要用于存放(秒杀库存信息、登录信息、消息通知)不太重要的信息

主流的NoSQL数据库:

用内存保存数据的NoSQL数据库:Redis、MemCache

用硬盘保存数据的NoSQL数据库: MongoDB、Neo4J

mysql介绍

重置root用户密码

  • 创建一个temp.txt文件,写入定义修改密码的SQL语句

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
      

Mysql配置文件

  • 配置文件my.ini,存放路径为MySql安装路径下的第一级目录下即MySql/my.ini
    • 可以设置各种MySQL的配置,例如字符集、端口号、目录地址等。

数据库表的操作

课程内容

  • 管理逻辑库和数据表
    • 创建、删除、修改逻辑库和数据表
  • 了解常用的数据类型和约束
    • 字符串、整数、浮点数、精确数字、日期、枚举、主键约束、非空约束、唯一约束、外键约束等
  • 掌握索引运行机制和使用原则
    • 排序为什么可以提高数据检索速度
    • 怎么创建和删除索引?
    • 什么条件下使用索引?

相关语言分类

  • 网页设计

    • HTML、CSS、JavaScript
  • IOS

    • Swift
  • 桌面程序

    • C++、C#、VB
  • 数据库

    • SQL语言

      • DML(数据库管理语言) DCL(数据库控制语言) DDL(数据库定义语言)
        添加 修改 删除 查询 用户 权限 事务 逻辑库 数据表 视图 索引

数据表相关内容

数据类型
数据类型分类 类型 大小 说明
字符串 CHAR 1-255字符 固定长度字符串
VARCHAR 1-65535字符 不固定长度字符串
TEXT 1-65535字符 不确定长度字符串
MEDIUMTEXT 1-1千6百万字符 不确定长度字符串
LONGTEXT 1-42亿字符 不确定长度字符串
日期类型 DATE 3字节 日期
TIME 3字节 时间
YEAR 1字节 年份
DATETIME 8字节 日期时间
TIMESTAMP 4字节 时间戳
数字 TINYINT 1字节 小整数
SMALLINT 2字节 普通整数
MEDIUMINT 3字节 普通整数
INT 4字节 较大整数
BIGINT 8字节 大整数
FLOAT 4字节 单精度浮点数
DOUBLE 8字节 双精度浮点数
DECIMAL ------ 可变精度的十进制数(如:DECIMAL(10,2))
修改表的结构

修改字段类型和约束

ALTER TABLE 表名称
MODIFY 列1 数据类型 【约束】 【COMMENT 注释】,
MODIFY 列2 数据类型 【约束】 【COMMENT 注释】,
......;

添加表的字段

ALTER TABLE 表名称
ADD 列1名 数据类型 【约束】 【COMMENT 注释】,
ADD 列2名 数据类型 【约束】 【COMMENT 注释】
.........;

修改字段名称

ALTER TABLE 表名称
CHANGE 列1 新列名 数据类型 【约束】 【COMMENT 注释】,
CHANGE 列2 新列名 数据类型 【约束】 【COMMENT 注释】;

删除字段

ALTER TABLE 表名称
DROP 列1,
DROP 列2,
......;
数据库的范式

构造数据库必须遵循一定的规则,这种规则就是范式;目前关系数据库有6种范式,一般情况下,只满足第三范式即可

第一范式:原子性

第一范式是数据库的基本要求,不满足这一点就不是关系数据库;数据库表的每一类都是不可分割的基本数据项,同一列种不能有多个值,也不能存在重复的属性。

学号 姓名 班级
1000 李四 高三年级1班

上表不符合第一范式,因为班级中的"高三年级1班"还可以划分为“年级”和“班级”

学号 姓名 年级 班级
1000 李四 高三 1班

这样才符合第一范式

第二范式:唯一性

数据库表中的每条记录必须是唯一的。为了实现区分,通常要为表加上一个列用来存储唯一标识,这个唯一属性列被称作主键列。

学号 考试成绩 日期
230 58 2018-07-15
230 58 2018-07-15

上述表格记录为同一个人在同一天参与的考试记录,他两次的成绩都是58,我们无法区分重复的数据

流水号 学号 考试成绩 日期
230201807152687 58 58 2018-07-15
230201807152694 58 58 2018-07-15

加了流水号后数据具有了唯一性,符合第二范式

第三范式:关联性

每列都与主键有直接关系,不存在传递依赖

爸爸 儿子 女儿 女儿的玩具 女儿的衣服
陈华 陈浩 陈婷婷 海绵宝宝 校服

上表不符合第三范式因为“女儿的玩具“ ”女儿的衣服”这两列与“女儿”字段有依赖,而与“爸爸”和“儿子”字段没有关系。

爸爸 儿子 女儿
陈华 陈浩 陈婷婷
女儿 女儿的玩具 女儿的衣服
陈婷婷 海绵宝宝 校服

将不符合的表格分为两个表格后,就符合第三范式

依照第三范式,数据可以拆分保存到不同的数据表,彼此保持关联

编号 部门 电话
10 财务部 1001
20 技术部 1002
30 销售部 1003
编号 姓名 性别 部门 入职日期
1 陈浩 10 2018-05-10
2 李婷婷 30 2018-03-22

上面的两个表,第二表将第一表关联到了第二个表中

字段约束
约束名称 关键字 描述
主键约束 PRIMARY KEY 字段值唯一,且不能为NULL
非空约束 NOT NULL 字段值不能为NULL
唯一约束 UNIQUE 字段置为一,且可以为NULL
外键约束 FOREIGN KEY 保持关联数据的逻辑性

注意,在使用过程中要放弃使用外键约束,因为如果使用外键约束,会导致各表之间相关联,你要删除父表的记录就需要先去删除子表与父表相关联的记录,才能回去删除父表的记录。除此之外,最糟糕的情况会出现外键约束的闭环问题,如果表与表之间形成外键闭环,我们将无法删除任何一张表的记录。由此产生的问题称为外键约束的闭环问题

索引

一旦数据排序之后,查找速度就会翻倍,现实世界跟程序世界都是如此,如给单词本按首字母进行排序

创建索引:

CREATE TABLE 表名称(
.........,
    INDEX 【索引名称】(字段),
..........
)

添加和删除索引

CREATE INDEX 索引名称 ON 表名(字段);
ALTER TABLE 表名称 ADD INDEX [索引名](字段);
SHOW INDEX FROM 表名;
DROP INDEX 索引名称 ON 表名;

索引的使用原则

数据量很大,而且经常被查询的数据表可以设置索引;索引值添加在经常被用作检索条件的字段上面;不要在大字段(指的是那些数据量很大,或者数据类型为长文本(如TEXT或BLOB类型)的字段)上创建索引。

时间:2024-05-11 星期六下午19:30

数据库的基本查询

时间:2024-05-12 星期天

DML数据库管理语言

学习内容

数据的简单查询:无条件查询记录(SELECT FROM)、字段的计算和字段的别名(SELECT 字段 AS 别名 FROM)

数据的高级查询: 数据排序(ORDER BY)、分页(LIMIT)、去除重复记录(SELECT DISTINCT 字段名 FROM 表)

数据的有条件查询: 条件表达式(数学运算符、比较运算符、逻辑运算符、按位运算符)

数据分页

如果LIMIT字句只有一个参数,它表示的是偏移量,起始值默认为0

SELECT 字段名1,字段名2 FROM 表 LIMIT 10;#获取结果集的10条数据
SELECT 字段名1,字段名2 FROM 表 LIMIT 0,10;#获取结果集第一条及之后的数据共10条数据

排序加分页

SELECT 字段名1,字段名2 FROM 表 ORDER BY 字段名 LIMIT 10;

条件查询

SELECT ......FROM......WHERE 条件1 [AND | OR ] 条件2 .....; 

去除重复记录

SELECT DISTINIC 字段 FROM ........; #去除重复记录,DISTINC必须在第一个字段前才能使用,而且只能由一个字段使用了DISTINC修饰

条件语句的四类运算符

序号 运算符
1 数学运算符(+、-、*、=)
2 比较运算符(IS NULL, IS NOT NULL, BETWEEN 下限 AND 上限、LIKE模糊查询、REGEXP正则表达式)
3 逻辑运算符(AND、OR、IN、XOR异或一个为真即为真)
4 按位运算符(&、|、~取反、^位异或、<<左移、>>右移)

WHERE字句的注意事项:

WHERE子句中,条件执行的顺序是从左到右的,所以我们应该把索引条件、或者筛选掉记录最多的条件写在最左侧。

查询语句的执行顺序

1.词法分析与优化(读取SQL语句)-->FROM(选择数据来源)-->WHERE(筛选数据,满足条件才行)-->SELECT(查询获取结果集)--> ORDER BY(为结果集进行排序)-->LIMIT(分页查询,限制查询的数据条数)

数据库的高级查询

学习内容

数据统计分析:聚合函数、分组查询、HAVING字句

多表连接查询:外连接、内连接、以及多表查询的多种语法

子查询:单行子查询、多行子查询、WHERE子查询、FROM子查询、SELECT子查询

聚合函数

聚合函数在数据的查询分析中,应用十分广泛,聚合函数可以对数据求和、求最大值和最小值、求平均值和统计条数等

  • SUM函数用于求和,只能用于数字类型,字符类型的统计结果为0,日期类型的统计结果是毫秒数相加

    • SELECT SUM(字段1) FROM 表;
      
  • MAX函数

    • SELECT MAX(字段1) FROM 表; #获取非空值的最大值
      SELECT MAX(字段1+IFNULL(字段2,0)) FROM 表 WHERE 字段3 IN(10,20);#获取字段3值为10或20时,字段1加上字段2(字段2为NULL值时,设置为0)的值的最大值
      SELECT MAX(LENGTH(字段1)) FROM 表;#获取字段1中字符最长的值
      
  • MIN函数,获取非空值的最小值

    • SELECT MIN(字段1) FROM 表;
      
  • AVG函数:用于获得非空值得平均值,非数字数据统计结果为0

    • SELECT AVG(字段1+IFNULL(字段2,0)) FROM 表;
      
  • COUNT函数,COUNT(*)用于获得包含空值得记录数,COUNT(列名)用于获得包含非控制的记录数

    • SELECT COUNT(*) FROM 表;#统计表中所有数据条数共有几条
      

注意:聚合函数不能写入到WHERE字句中,如下面所示

SELECT COUNT(*) FROM 表 WHERE 字段1>AVG(字段1); #该语句报错

分组查询

  • 为什么要分组?

    • 默认情况下汇总函数是对全表范围内的数据做统计,GROUP BY字句的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对每个小区域分别进行数据汇总处理

      • SELECT 字段1,AVG(字段2) FROM 表 GROUP BY 字段1;
        
  • 逐级分组

    • 数据库支持多列分组条件,执行时逐级分组

      • SELECT 字段1,字段2,COUNT(*),AVG(字段3) FROM 表 GROUP BY 字段1,字段2 ORDER BY 字段1
        
  • 对SELECT字句的要求

    • 查询语句中如果含有GROUP BY字句,那么SELECT子句中的内容就必须要遵守规定:SELECT子句中可以包括聚合函数,或者GROUP BY字句的分组列,其余内容均不可以出现在SELECT子句中

      • SELECT 字段1,COUNT(*), AVG(字段2) FROM 表 GROUP BY 字段1; #可以执行,语句正确
        SELECT 字段1,COUNT(*), AVG(字段2),字段3 FROM 表 GROUP BY 字段1; #不可以执行,因为字段3并没有进行聚合函数操作也没有在GROUP BY字句的分组列。
        
  • GROUP_CONCAT函数

    • GROUP_CONCAT函数可以把分组查询的某个字段拼接成一个字符串
  • 各种字句的执行顺序

    • FROM(获取数据源)-->WHERE(过滤数据源,满足条件才能进行后续操作)-->GROUP BY(将数据进行分组,要分组进行后续操作)-->SELECT(获取分组后的数据集,可以在这部分进行聚合函数操作)-->ORDER BY(对数据集进行排序)-->LIMIT(获取指定数据集条数)

HAVING字句

HAVING跟在GROUP BY后面,主要作用是实现分组后筛选的作用。

语句格式:

SELECT 字段1 FROM 表 GROUP BY 字段1 HAVING AVG(字段2)>=2000; #说明一下,HAVING语句中要使用如聚合函数或其它的具体值,不能使用一个字段作为筛选条件(比如 HAVING 字段2>=200这样)

表连接查询

表连接分类

内连接:内连接是结果集中只保留符合连接条件的记录

外连接:外连接是不管符不符合连接条件,记录都要保留在结果集中

内连接
  • 内连接格式

    • SELECT ...... FROM 表1
      [INNer] JOIN 表2 ON 条件
      [INNer] JOIN 表3 ON 条件
      
  • 从多张表中提取数据,必须指定关联的条件。如果不定义关联条件就会出现无条件连接,两张表的数据会交叉连接,产生笛卡尔积,即如果第一张表中有4条数据,第二张表中有16条记录,那么两个表如果无条件链接会产生4*16=64条数据

    • SELECT 字段1,字段2,字段3 FROM 表1 JOIN 表2;
      
  • 规定了连接条件的表连接语句,就不会出现笛卡尔积

    • SELECT 字段1,字段2,字段3 FROM 表1 e JOIN 表2 d ON e.字段名=d.与前面的表e相同的字段名;
      
  • 内连接的多种语法形式

    • SELECT ..... FROM 表1 JOIN 表2 ON 连接条件;
      
    • SELECT ..... FROM 表1 JOIN 表2 WHERE 连接条件; #WHREE替换ON
      
    • SELECT ..... FROM 表1 , 表2 WHERE 连接条件;#去掉JOIN,并将ON替换为WHERE
      
外连接
  • 左外连接就是保留左表所有的记录,与右表做连接。如果右表有符合条件的记录就与左表连接,如果右表没有符合条件的记录,就用NULL与左表连接。右外连接也是如此。

  • UNION关键字可以将多个查询语句的结果集合并

    • (查询语句) UNION (查询语句) UNION (查询语句).....
      
  • 外连接的注意事项

    • 内连接只保留符合条件的记录,所以查询条件写在ON字句和WHERE字句中的效果是相同的。但是在外连接里,条件写在WHERE子句中,不符合条件的记录会被过滤掉,而不是保留下来。

子查询

  • WHERE子查询

    • 这种子查询最简单,最容易理解,但是却是效率很低的子查询

    • SELECT 字段1,字段2,字段3 FROM 表 WHERE 字段1>=(SELECT AVG(字段1) FROM 表);#比较每条记录都要重新执行子查询
      
    • WHERE子句中的多行子查询

      • WHERE子句中,可以使用IN、ALL、ANY、EXISTS关键字来处理多行表达式结果集的条件判断

      • SELECT 字段1 FROM 表1 
        WHERE 字段2 > ALL (SELECT 字段1 FROM 表1 WHERE 字段1 IN("字段1值1",“字段1值2”));#ALL都要大于子查询内容值
        
        
      • EXISTS关键字:把原来在子查询之外的条件判断,写到了子查询里面

        • SELECT .... FROM 表名 WHERE [NOT] EXISTS(子查询)
          
  • FROM子查询

    • 这种子查询只会执行一次,所以查询效率很高
  • SELECT子查询

    • 这种子查询没输出一条记录的时候都要执行一次,查询效率很低,平时一般不要使用

时间:2024-05-12 星期天 下午15:50

MySQL对数据的基本操作

学习内容

数据添加:INSERT语法、INSERT方言语法(只适用于某个数据库产品的语言语法)、INSERT子查询、IGNORE关键字

数据修改:UPDATE语法、UPDATE表连接

数据删除:DELETE语法、DELETE表连接

数据添加

INSERT语句可以向数据表写入记录,可以是一条记录,也可以是多条记录

INSERT INTO 表名(字段1,字段2,.....) VALUES(值1,值2,....);#插入一条记录
INSERT INTO 表名(字段1,字段2,.....) VALUES(值1,值2,....),(值1,值2,....);#插入两条记录

MySQL数据库INSERT语句方言

INSERT INTO 表名 SET 字段1=值1,字段2=值2,.....;

INGNORE关键字

INGNORE关键字会让INSERT只插入数据库不存在的记录

INSERT [INGNORE] INTO 表名 ......;

数据修改

UPDATE语句用于修改表的记录

UPDATE [INGNORE] 
SET  字段1=值1,字段2=值2,......
[WHERE 条件1....]	
[ORDER BY .......]
[LIMIT ..........]

UPDATE语句的表连接

因为相关子查询效率非常低,所以我们可以利用表连接的方式改造UPDATE语句

内连接

写法一:

UPDATE 表1 JOIN 表2 ON 条件
SET 字段1=值1, 字段2=值2,.....;

写法二:

UPDATE 表1,表2 
SET 字段1=值1, 字段2=值2,....
WHERE  连接条件;
外连接
UPDATE 表1[LEFT|RIGHT] JOIN 表2 ON 条件
SET 字段1=值1,字段2=值2,....;

数据删除

DELETE语句用于删除记录,语法如下

DELETE [INGNORE] FROM 表名 
[WHERE 条件1,条件2,......]
[ORDER BY........]
[LIMIT.........]

时间:2024-05-17星期五 上午

MySQL基本函数的使用

学习内容

像编程语言利用函数封装业务功能一样,数据库也能把一些复杂的功能封装到函数里,供使用者调用

函数分类:

  • 数字函数
    • ABS(绝对值)、MOD、CEIL(向上取整)、FLOOR、ROUND(四舍五入)、正余弦函数、弧度转函数
  • 字符函数
    • UPPER、LOWER、CHAR_LENGTH、CONCAT
  • 日期函数
    • NOW、DATE_FORMAT、DATE_ADD、DATEDIFF
  • 条件函数
    • IF、IFNULL

日期函数

获取系统时间函数:

  • NOW()函数能获得系统日期和时间,格式yyyy-MM-dd hh:mm:ss
  • CURDATE()函数能获得当前系统日期,格式yyyy-MM-dd
  • CURTIME()函数能获得当前系统时间,格式hh:mm:ss

日期格式化函数:

  • DATE_FORMAT()函数用于格式化日期,返回用户想要的日期格式

    • DATE_FORMAT(日期,表达式)
      
    • 使用

      • SELECT ename, DATE_FORMAT(hiredate,"%Y") FROM t_emp;#获取雇佣的年份
        

日期偏移计算:

  • DATE_ADD()函数可以实现日期的偏移计算,而且时间单位很灵活

    • DATE_ADD(日期,INTERVAL 偏移量 时间单位)
      
    • 使用

      • SELECT DATE_ADD(NOW(),INTERVAL 15 DAY); #当前时间偏移15天后的时间
        SELECT DATE_ADD(NOW(),INTERVAL -300 DAY); #当前时间偏移300天前的时间
        

计算日期之间相隔的天数:

  • DATEDIFF(日期,日期)

字符函数

LOWER:转换小写字符,使用LOWER(字段名)

UPPER:转换大写字符,使用UPPER(字段名)

LENGTH:计算字符数量,使用LENGTH(字段名)

CONCAT:连接字符串,使用CONCAT(字段名,"$"),在字段名这一列中字符的后面添加"$".

INSERT:插入/替换字符,使用INSERT("你好",1,0,"先生"),在字符1的位置插入字符,替换0个字符,结果为"先生你好"

REPLACE:替换字符,使用REPLACE("你好先生","先生",“女士”),将字符串中"你好先生"中的"先生"字符替换为"女士"

SUBSTR:截取字符串,使用SUBSTR("你好世界",3,4),截取出第3个字符到第4个字符,即"世界"两字

SUBSTRING: 截取字符串,使用SUBSTRING("你好世界",3,2),截取出第3个字符开始的两个字符,即"世界"两字

LPAD:左侧填充字符,使用LPAD("Hello",10,"!"),在字符串左侧填充字符串到10个字符,不够的用"!"代替,结果为!!!!!Hello

RPAD:左侧填充字符,使用LPAD("Hello",10,"*"),在字符串左侧填充字符串到10个字符,不够的用"!"代替,结果为Hello!!!!!

TRIM:去除首位空格,使用TRIM(" 你好先生 "),去除首位空格" 你好先生 ",变为"你好先生"

条件函数

  • IFNULL(表达式,值),使用IF(字段名,0),如果字段名中的值为"NULL",则将该值置为0

  • IF(表达式,值1,值2)

    • 使用

      • SELECT 
        	e.empno,e.ename,d.dname,
        	IF(d.dname="SALES","礼品A","礼品B")
        FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno;  #SALES部分发放礼品A,其余部分发放礼品B,打印每名员工获得的礼品
        
  • 复杂的条件判断可以用条件语句来实现,比IF语句功能更强大

    • CASE
      	WHEN 表达式 THEN 值1
      	WHEN 表达式2 THEN 值2
      	..........
      	ELSE 值N
      END
      

MySQL的综合应用

学习内容

  • 数据库事务机制
    • undo和redo机制、开启事务、提交事务、回滚事务
  • 数据导出与导入
    • SQL文件的导出与导入,TXT文档的导入与导出

事务机制

MySQL总共有5中日志,其中redo日志和undo日志与事务有关

undo与redo日志

事务机制:

  • 关系型数据库管理系统可看作由两部分组成:RDBMS=SQL语句 + 事务

  • 事务是一个或者多个SQL语句组成的整体,要么全部执行成功,要么全部执行失败

  • 事务案例

    • 事务执行流程

管理事务

  • 默认情况下,MySQL执行每条SQL语句都会自动开启和提交事务

  • 为了让多条SQL语句纳入到一个事务之下,可以手动开启事务

    • START TRANSACTION;
      SQL语句;
      [COMMIT|ROLLBACK];
      

事务的属性:

ACID: A-原子性;C-一致性;I-隔离性;D-持久性

事务的隔离级别:

  • read uncommitted: 读取未提交数据
  • read committed:读取已提交数据
  • repeatable read:重复读取
  • serializable:序列化
    • 由于事务并发执行所带来的各种问题,前三种隔离级别只适用在某些业务场景中,但是序列化的隔离性,让事务注意执行,就不会产生上述问题了。开启了这个隔离级别,当前会话的事务只能在别的事务commit提交之后才能执行会话中的SQL语句。

在开启事务的语句之前,使用下面的语句可以修改这个会话(session)的事务隔离级别

SET SESSION TRANSACTION ISOLATION LEVEL 隔离级别名;#会话中修改隔离级别的模板

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; #隔离级别名:READ UNCOMMITTED,意味着当前会话下的事务可以读取其它事务未提交的数据

数据的导出与导入

数据导出与备份的区别

  • 数据导出,导出的纯粹是业务数据
    • 数据导出可以分为两类
      • SQL文档(包括了表结构,再导入时会去解析每一个SQL语句,比较耗时,适用于少量数据)
      • 文本文档(只有数据,没有sql语句,没有建表语句,导入时只是将该文本文档中的数据导入到新建表结构(不在文本文档中,需要自定义好与文本文档数据进行字段对应)的表中
  • 数据备份,备份的是数据文件、日志文件、索引文件等等

指令导出SQL文件:

  • mysqldump用来把业务数据导出成SQL文件,其中也包括了表结构

    • #指令
      mysqldump -uroot -p [no-data] 逻辑库 > 路径
      

指令导入SQL文件:

  • source命令用于导入SQL文件,包括创建数据表,写入记录等

    • USE demo;#选择数据库
      SOURCE backup.sql;#执行sql文件,在demo数据库下导入表
      

除了上面的指令导入/导出数据之外,还可以适用入Navicat这类图形界面进行数据导入,但是需要注意的是一般数据库的使用是在没有图形界面的Linux系统。

标签:语句,数据库,基础,查询,字段,MySQL,WHERE,SELECT
From: https://www.cnblogs.com/lmyfi/p/18197848

相关文章

  • DataX将Oracle数据库数据同步到达梦数据库
    1.DataX3.0开源版本,rdbms里面默认是达梦7的驱动,因此,如果像链接达梦8需要替换驱动。需要将达梦8的驱动放在D:\datax\lib、D:\datax\plugin\reader\rdbmsreader\lib和D:\datax\plugin\reader\rdbmswriter\lib下D:\datax\plugin\reader\rdbmsreader\plugin.json和D:\datax\plugin\re......
  • Mysql之性能查看
    一、慢查询MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上的SQL语句。mysql>showvariableslike‘%slow%‘;+-......
  • 字节面试:MySQL什么时候 锁表?如何防止锁表?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • three.js基础之mesh属性
    mesh之位置、缩放、平移、旋转属性<canvasid="mesh-properties"></canvas><scripttype="importmap">{"imports":{"three":"./js/build/three.module.js","three/addons/":&quo......
  • 数据库实验一
    在stumanage数据库中,如下图建立表student:列名数据类型允许空主键说明1snoChar(8)否是学号2snameVarchar(20)是否姓名3sexChar(2)是否性别4sdeptVarchar(20)是否所在系如下图建立表:course列名数据类型允许空主键说明1cnoChar(6)否是课......
  • 第八章:路由基础
    第八章:路由基础路由:在特定的拓扑上,选择从source节点到destination节点的路径。一个好的路由算法,即使面对non-uniformtrafficpattern,也能有效地均衡负载,使实际throughput更加接近于理想情况。好的路由算法可以使路径长度尽可能短,从而减少跳数和传输的总延迟1、路由......
  • python爬虫基础
    前言Python非常适合用来开发网页爬虫,理由如下:1、抓取网页本身的接口相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib包提供了较为完整的访问网页文档的API。(当然ruby也是很好的选择)此外,抓取网页有时候需要模......
  • Linux基础知识(Ubuntu)
    文件权限意义权限类型1.r可读2.w可写3.x可执行/切换陌路4.-无权限通配符*匹配0个或多个字符串?匹配1个字符[abcd]匹配abcd中间任意一个字符[a-Z]匹配a-Z范围里的任意一个字符[!abc]不匹配方括号里的任何一个字符;与[^abc]一致帮助命令man语法man[m......
  • 第四节:MySQL主从集群搭建、扩容与数据迁移、半同步复制详解
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • java01基础入门
    java01基础入门准备javac-versionjava-versioncd..//回到上一级勾选文件扩展名设置Path环境变量IDEA创建工程开发步骤project->module->package->class设置主题、字体快捷键注释关键字基本组成:由数字、字母、下划线(_)和美元符($)等组......