MySql Structured Query Language 整理

c++基础入门(根据浙大翁恺老师视频整理) 把以前的笔记搬上来一下 根据浙大翁恺老师视频整理 https://www.bilibili.com/video/BV1yQ4y1A7ts?p=2 01第一个c++程序 02什么是对象 通过操作访问数据 数据是被保护起来的 对象其实就是变量 任何变量就是对象 通过外部操作改变data状态 而不是直接接触改变数据 面向过程:事情发生的流程是怎么样,按照时间顺序一步一步会发生什么,即从时间顺序 面向对象:在某个场景中有什么东西,这些东西的关系是什么,比如一间教室里有灯,有学生,有老师等等,他们的关系是怎么样 阅读详情
AI摘要

本文详细介绍了MySQL的安装、配置及使用方法,包括数据表的创建、修改、删除等操作,同时还涉及了用户权限管理、数据查询、事务处理等内容。

MySql Structured Query Language 整理

安装mysql
下载网址(选择适合硬件的版本安装)

https://dev.mysql.com/downloads/mysql/
doc 下启动mysql
对于这部分如果自己在出错的时候的时候,请自行百度

1:cmd 进入 mysql 安装路径,在window下,还有空格或者汉语路径使用 “” 
   example cd "Program Files"

2:启动mysql

  mysqld install

3:connect mysql

   C:\Program Files\xxxxxxxxxx\bin>mysql -uroot -hlocalhost -p

    Enter password:

4:在安装mysql中,可能我们都是一路next。并不会特别注意mysql安装的路径以及数据库存放的物理路径,那么可以这么查找
show global variables['vɛrɪəbl]  like "%datadir%";
了解数据库(基本组成)
数据库(Database)

数据表(Table)

字段(column),字段类型(type)

列(column  ['kɑləm])

行(row)
Mysql 数据类型
注意:Mysql 语句:关键字 不区分 大小写

注释:#注释内容
     --+空格+注释内容
     /*注释内容*/

类型:数值型

     整数   tinyint smallint mediumint['midɪəm] int   bigint 


     小数   浮点型  double float
            十进位   decimal['dɛsɪml](m,n)  m:总长度  n:小数位长度

     日期类型:year  timestamp(时间类型,时间戳) time date datetime

     字符串类型:set enum['enəm] blob text varchar['vɑkɚ] char


    关键字:unsigned
           auto_increment
           default
           comment

           unique
           index
           key
           primary key
           auto_increment   
sql语法符号
= 既是判断也是赋值
!= <>
>=  <=
AND &&  OR ||
Between ...  and ...
IN  在...之内
NOT IN 不在...之内 
Sql 语句的分类
DDL(data defination language)数据定义语言。
DML(data manipulation[mə,nɪpjʊ'leʃən] language)数据操作语言
DCL(data control language)数据控制语言
DQL(data query language)数据查询语言
DDL
查询所有数据库
show databases;

使用数据库
use databaseName

创建数据库
create database Name;

删除数据库
drop database Name;


数据表Table

创建数据表:
1:use 数据库
2:创建数据表
    mysql> create table user(
    -> id int unsigned not null auto_increment comment "用户id",
    -> user_name varchar(20) not null comment "用户名",
    -> email varchar(50) not null comment "用户邮箱",
    -> age tinyint unsigned not null comment "年龄",
    -> price decimal(10,2) not null default 0.00 comment "用户余額",
    -> created_at timestamp not null comment "注冊時間",
    -> primary key(id)
    -> );
3:查看数据表

desc user;
mysql> desc user;
+------------+---------------------+------+-----+-------------------+-----------------------------+
| Field      | Type                | Null | Key | Default           | Extra                       |
+------------+---------------------+------+-----+-------------------+-----------------------------+
| id         | int(10) unsigned    | NO   | PRI | NULL              | auto_increment              |
| user_name  | varchar(20)         | NO   |     | NULL              |                             |
| email      | varchar(50)         | NO   |     | NULL              |                             |
| age        | tinyint(3) unsigned | NO   |     | NULL              |                             |
| price      | decimal(10,2)       | NO   |     | 0.00              |                             |
| created_at | timestamp           | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+------------+---------------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.04 sec)



查看数据表的创建语句
show create table user;

删除数据表
drop table user; 

修改数据表中的某个字段的修饰
alter['ɔltɚ] table 表名 modify 列名 varchar(50);

修改数据表中的某个字段名:
alter table 表名 change 【email原字段名】 【user_email新字段名】

添加新的字段名:
altere table 表名 add 【新增字段名】 【数据类型】 【相应描述】 【是否为null】 after 【位置定位】

删除字段
alter table 表名 drop 【字段名】

修改表名
alter table 【原表名】 rename to 【新表名】
DML (manipulation)
数据的增删改查操作CRUD

【C(Create)】

INSERT INTO 【表名】(COLUMN 1,COLUMN 2,...) VALUES(“values”,"values",... );
相互对应


其余两种写法:insert into 【表名】values('',''....);
            insert into 【表名】(COLUMN 1,COLUMN2) values('','');


【注意】:关于插入时数据产生乱码的问题:

1:查看客户端的编码:

mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | gbk                                                     |
| character_set_connection | gbk                                                     |
| character_set_database   | utf8                                                    |
| character_set_filesystem | binary                                                  |
| character_set_results    | gbk                                                     |
| character_set_server     | utf8                                                    |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+

如果你的是GBK编码,没问题,如果是utf-8,那么使用

set names utf-8;

这种修改方法只在当前的链接中才可以,如果退出,编码格式则会被重置为配置文件的设置:

找到本地配合文件 my.ini

修改 default-character-set=utf8  (修改客户端编码,但是不会改变服务器的编码)


【U(update)】

update 【表名】 set [columnName]=[values],... where [约束条件];

update users set user_name="wedfrend" where id=1;

update users set user_name="wang" where id in(1,3);

【D(delete)】
delete form 【表名】 where [约束条件];

完全删除数据表中的数据两种方式:
truncate[trʌŋ'ket] 【表名】 :再一次insert数据时  被限定为自增值从头开始
delete from 【表名】:再一次insert数据时  自增的数据接着上次的数据
DCL(database control language)
忘记密码或者修改密码
1:如果忘记数据库登陆密码:

    先停止数据库

    忘记数据库密码  :mysqld --skip grant table 跳过密码验证

    进入数据库,查询user表

2:修改用户密码。

    进入数据库使用update操作来进行密码的修改。


    修改数据库用户密码: 5.7版本的密码字段  authentication_string 之前版本为 password

    mysql> select host,user,authentication_string from user;
    +-----------+---------------+-------------------------------------------+
    | host      | user          | authentication_string                     |
    +-----------+---------------+-------------------------------------------+
    | localhost | root          | *043E8B8782FC1ED3ACBAA3873D33E7A3E2308892 |
    | localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | %         | wedfrend      | *043E8B8782FC1ED3ACBAA3873D33E7A3E2308892 |
    +-----------+---------------+-------------------------------------------+
ROOT:权限应用(修改权限后需要 :flush privileges [ˈprɪvəlɪdʒ])
创建用户:

CREATE USER [用户名] @"Ip ADDRESS|%" 
IDENTIFIED BY 'PASSWORD'

添加完成之后
flush privileges


指定IP,保障安全性


添加权限:

为什么:当我们添加一个新的user的时候,此时该用户是不能执行过多的操作。如下

C:\Users\welive>mysql -uwang -p
Enter password: ******
Welcome to the MySQL monitor.

mysql> use mysql;
ERROR 1044 (42000): Access denied for user 'wang'@'localhost' to database 'mysql'



授权:
GRANT 权限1,权限2,... ON 数据库名.* TO 用户名 @ 【IP地址|%】

eg:

grant[ɡrænt] select,insert,delete,update,alter on test.* to wangxiaobo @'127.0.0.1';

如果授权所有的数据库就使用 '*.*'

grant all privileges[ˈprɪvəlɪdʒ] on *.* to 'test' @'127.0.0.1';


撤销权限:
REVOKE 权限1,权限2,...ON 数据库名.* FROM 用户名 @【IP地址|%】

eg:
revoke[rɪ'vok] update on test.* from wangxiaobo @'127.0.0.1';


授权一个不存在的用户:
grant select,insert,delete,update on test.* to [用户名]@[Ip|%] identified by "password";


查看权限:
show grants for 'test'@'27.0.0.1';

删除用户:
drop user 'test'@'127.0.0.1';
DQL(data query language)
select [*|columnName)] from [TableName] where [查询条件] 


过滤掉重复的值:

SELECT DISTINCT

select distinct[dɪ'stɪŋkt] password from user;

链接字段

SELECT CONCAT(列名,列名) from user;

select concat(name,age) as name_age from user;

select concat_ws("==",name,age) as name_age from user;


对列名重新命名:
select [原列名] as [新列名] from [表名]

模糊查询:

select name from user where name like "%wang%";

排序

select * from tableName order by id ASC(ascending[ə'sɛndɪŋ] order)

select * from tableName order by id DESC(descending[dɪ'sɛndɪŋ]);

聚合函数(分页处理使用的时候)

COUNT(*) 查询这个表中公有多少条数据

select count(*) from tableName;

SUM()  求和

select sum(ColumnName) from tableName;
select sum(columnName) as sum_columnName from tableName;


AVG() average['ævərɪdʒ] 平均值

select avg(columnName) from tableName

MAX() 最大值

MIN() 最小值

分组查询:

select * from tableName group by columnName;

select count(*) as total,sex from tableName group by columnName;

select sex from tableName group by columnName having count(*)>2;
综合查询
连接查询
SELECT U.USER_NAME,H.HOBBIES FROM USERS AS U,HOBBY AS H WHERE U.ID=H.USER_ID;

SELECT U.USER_NAME,H.HOBBIES FROM USERS AS U INNER JOIN HOBBY AS H WHERE|ON U.ID=H.USER_ID;


左连接:

SELECT U.USER_NAME,HHOBBIES FROM USERS AS U LEFT JOIN HOBBY AS H  ON U.ID=H.USER_ID;

右连接
SELECT U.USER_NAME,HHOBBIES FROM USERS AS U LEFT JOIN HOBBY AS H  ON U.ID=H.USER_ID;
联合查询
SELECT USER_NAME FROM USERS UNION['junɪən] ALL SELECT HOBBIES FROM HOBBY;
子查询
SELECT * FROM USERS WHERE ID IN(SELECT USER_ID FROM HOBBY);

主查询依托于子查询的结果,那么执行顺序就是子查询先行
限制查询条数
SELECT * FROM USERS LIMIT 1;
限制查询次数(默认第一个数为0)

SELECT * FROM USERS LIMIT 2,3;
查询从第二条开始(不包含第二条数据向后查询3条)

实际应用中主要为程序分页
Engine‘ɛndʒɪn
MyISAM

InnoDB

CSV

BLACKHOLE

MEMORY

数据库默认的Engine设置在my.ini配置文件中

目前我的是 

# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB

引擎基于数据表,那么如何查看自己创建的表中的引擎

mysql> show create table users;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                                                                                                                  |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| users | CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `user_name` varchar(20) NOT NULL,
  `email` varchar(50) NOT NULL,
  `mobile` char(11) NOT NULL,
  `fee` decimal(10,2) NOT NULL DEFAULT '0.00',
  `age` tinyint(4) NOT NULL,
  `gender` char(5) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

此时,自己创建表的引擎为数据库中默认的配置。

当然,我们可以在建表的时候配置引擎

create table test(id int unsigned not null auto_incremet primary key,name varchar(30)) engine MyISAM;

查看所有表中的引擎:
show table status\G

查看支持引擎:
show engines\G

修改已经存在的表的引擎

mysql> alter table users engine=MyISAM;
MyISAM
支持全文索引,不支持事务

事务:一个完整的执行过程
InnoDB
支持事务,不支持索引,5.6版本之后开始支持,性能好,行级锁,崩溃处理好
字符集
utf8
gbk(中文编码)


show character set;

show create database test;

创建数据库的时候可以指定字符集

create database test character set gbk;

创建字符集


关于数据库   关于数据表 独立

字符集校对:
utf8_general_ci 不区分大小写



char(3) 字符的长度

select length(columnName) from table Name;
select char_length(columnName) from table Name;

varchar()字节的长度


mysql 的三种mode
mode = ANSI;

设置mysql的模式:
set sql_mode=STRICT_TRANS_TABLES;
DTL 事务控制语言
一条sql语句就是一个事务

事务可以保证一组sql语句要么成功要么都失败。

默认自动执行

1: 关闭set atuocommit=0 关闭自动提交
    最后 插入或者修改时,只有commit才回最终存入否则不存


    mysql> show variables like "%commit%";
            +-----------------------------------------+-------+
            | Variable_name                           | Value |
            +-----------------------------------------+-------+
            | autocommit                              | ON    |
            | binlog_group_commit_sync_delay          | 0     |
            | binlog_group_commit_sync_no_delay_count | 0     |
            | binlog_order_commits                    | ON    |
            | innodb_api_bk_commit_interval           | 5     |
            | innodb_commit_concurrency               | 0     |
            | innodb_flush_log_at_trx_commit          | 1     |
            | slave_preserve_commit_order             | OFF   |
            +-----------------------------------------+-------+
            8 rows in set, 5 warnings (0.00 sec)

            mysql> set autocommit=OFF;

2:start transaction

    commit/rollback;

原子性:一个事务中的所有语句,应该做到要么全做,要么都不做

一致性:逻辑合理性

隔离性:如果多个事务同时并发执行,但是每个事务就像独立执行一样

持久性:    一经提交改变,则永久改变

典型的实际例子:银行转账

start transaction;//开启事务
mysql->  /*一系列需要执行的sql语句*/

commit;  //成功
或者:
rollback;//失败 

 /*如果你的数据表中不能执行事务的操作那么必须请查看自己的ENGINE*/


实例:

mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)

mysql> update user set fee 2000 where id=1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2000 where id=1' at line 1
mysql> update user set fee= 2000 where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> update user set fee=5000 where id=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from userl
    -> ;
ERROR 1146 (42S02): Table 'bank.userl' doesn't exist
mysql> select * from user;
+----+----------+---------+
| id | name     | fee     |
+----+----------+---------+
|  1 | 王晓波   | 2000.00 |
|  2 | wedfrend | 5000.00 |
+----+----------+---------+
2 rows in set (0.00 sec)

mysql> rollback;
Query OK, 0 rows affected (0.06 sec)

mysql> select * from user;
+----+----------+----------+
| id | name     | fee      |
+----+----------+----------+
|  1 | 王晓波   | 46000.00 |
|  2 | wedfrend |  3000.00 |
+----+----------+----------+
2 rows in set (0.00 sec)
视图
create view ViewName(ColumnName,) as select columnName from TableName where xxx;


 create view userView(name)as select user_name from users;
 Query OK, 0 rows affected (0.08 sec)

 mysql> select * from userView;
触发器
create trigger 触发器名 after|before insert|update|delete on 
TableName for each row

begin

sql 语句

end;

show create tigger tiggerName\G;

drop trigger tiggerName;


mysql> create trigger nuum after insert on users for each row
    -> begin
    -> update hobby set hobbies='wang IAO波' where user_id=10;
    -> end//
Query OK, 0 rows affected (0.13 sec)

mysql> delimiter ;
数据库导出
导出

mysqldump -uroot -p****** DatabaseName TableName > NewFileName.sql;

使用navicat 工具执行转存储sql文件

导入 :

mysql -uroot -p****** DatabaseName < NewFileName.sql;

使用Navicat 工具执行运行sql文件

xtrabackup工具可以执行大数据的备份恢复
索引
添加索引:
alter table TableName add index|unique|fulltext [indexName]

alter table TableName drop index [IndexName]





索引

primary key() 唯一主键
index 普通索引
key 普通索引
unique 唯一索引


 create table user(
    ->      id int unsigned not null auto_increment,
    ->      userName varchar(50) not null,
    ->      passWord varchar(50) not null,
    ->      email varchar(32) not null,
    ->      age tinyint unsigned not null,
    ->      primary key(id),
    ->      unique(userName),
    ->      key(age),
    ->      index(email),
    ->      fulltext(password)
    ->      );



mysql> show index from user\G


在一些数据表中无法创建全文索引,原因是你的Engine为InnoDB,需要转换为 MyISAM

对于已经存在的表进行添加索引  
alter table TableName add fulltext(columnName);


全文索引:
select * from account where match(password) against('xxxx');

解决模糊查询
外键约束(InnoDB)
foreign key(columnName) references TableName(ColumnName);

如果说两张表含有因果关系的情况,那么在数据表中可以使用外键约束来进行相应的关联处理

注意问题:使用外键约束的字段,类型设置必须一致

create table mark(
    id int unsigned not null auto increment,
    mark int unsigned not null,
    stu_id int not null,
    primary key(id),
    foreign key(stu_id) references user(id)
);
Mysql 优化
当查询一条sql语句的耗时长达1s的时候,那么证明我们的数据库查询一定存在问题,如果sql语句慢了,解决办法:

1:mysql> show variables like '%slow%';
    +---------------------------+-----------------------+
    | Variable_name             | Value                 |
    +---------------------------+-----------------------+
    | log_slow_admin_statements | OFF                   |
    | log_slow_slave_statements | OFF                   |
    | slow_launch_time          | 2                     |
    | slow_query_log            | ON                    |
    | slow_query_log_file       | -slow.log     |
    +---------------------------+-----------------------+
    5 rows in set, 5 warnings (0.04 sec)

2:set global log_slow_admin_statements=ON;


方法二:看性能

 mysql>show variables like '%profiling%';
    +------------------------+-------+
    | Variable_name          | Value |
    +------------------------+-------+
    | have_profiling         | YES   |
    | profiling              | OFF   |
    | profiling_history_size | 15    |
    +------------------------+-------+

mysql>set profiling=on;

之后执行的sql语句会被记录。然后窒息性相应的方法查看

mysql> show profiles;
+----------+------------+-----------------------------------+
| Query_ID | Duration   | Query                             |
+----------+------------+-----------------------------------+
|        1 | 0.00222050 | show variables like '%profiling%' |
|        2 | 0.00097125 | select * from users               |
|        3 | 0.00009375 | show prifiles                     |
+----------+------------+-----------------------------------+

将时间比较大的语句内容展示详情

mysql> show profile for query 2;
+----------------------+----------+
| Status               | Duration |
+----------------------+----------+
| starting             | 0.000109 |
| checking permissions | 0.000013 |
| Opening tables       | 0.000033 |
| init                 | 0.000110 |
| System lock          | 0.000021 |
| optimizing           | 0.000007 |
| statistics           | 0.000025 |
| preparing            | 0.000015 |
| executing            | 0.000004 |
| Sending data         | 0.000270 |
| end                  | 0.000025 |
| query end            | 0.000019 |
| closing tables       | 0.000021 |
| freeing items        | 0.000190 |
| cleaning up          | 0.000112 |
+----------------------+----------+


找到耗时长问题进行处理

简单的查询问题下:加上索引字段,那么sql执行的时候就会查询固定的行
缓存
在sql中,含有缓存。一般情况下,在测试下需要把缓存关闭,默认情况下是开着的

mysql>show variables like '%cache%';

mysql> show variables like  '%cache%';
+--------------------------------+----------------------+
| Variable_name                  | Value                |
+--------------------------------+----------------------+
| binlog_cache_size              | 32768                |
| binlog_stmt_cache_size         | 32768                |
| have_query_cache               | YES                  |
| host_cache_size                | 279                  |
| innodb_disable_sort_file_cache | OFF                  |
| innodb_ft_cache_size           | 8000000              |
| innodb_ft_result_cache_limit   | 2000000000           |
| innodb_ft_total_cache_size     | 640000000            |
| key_cache_age_threshold        | 300                  |
| key_cache_block_size           | 1024                 |
| key_cache_division_limit       | 100                  |
| max_binlog_cache_size          | 18446744073709547520 |
| max_binlog_stmt_cache_size     | 18446744073709547520 |
| metadata_locks_cache_size      | 1024                 |
| query_cache_limit              | 1048576              |
| query_cache_min_res_unit       | 4096                 |
| query_cache_size               | 1048576              |
| query_cache_type               | OFF                  |
| query_cache_wlock_invalidate   | OFF                  |
| stored_program_cache           | 256                  |
| table_definition_cache         | 1400                 |
| table_open_cache               | 2000                 |
| table_open_cache_instances     | 16                   |
| thread_cache_size              | 10                   |
+--------------------------------+----------------------+

query_cache_type 为 OFF;

mysql>set query_cache_type=ON;
使用sql语句注意的问题
1:尽量避免在字段中进行运算
2:在查询中尽量不要使用select *
3:like 模糊查询做模糊或者全模糊的时候不执行索引。
数据库配置全局变量
临时生效,当mysql退出会后,会被重置
show variables like '%xxx%';

set global xxxx=xxxx;

set xxxx=xxxx;

永久修改:

直接修改my.ini配置文件
设计表规则
1NF :表不可再分

2NF: 在1NF的基础上设计,满足row中含有唯一可被区分的属性

3NF:先满足2NF,在表的设计中尽量满足数据不要出现冗余情况
MySQL数据库从零到实战:安装配置、SQL核心语法与Python/Java连接指南 最近在帮团队新人搭建开发环境时,发现很多同学卡在了数据库配置这一步,尤其是 MySQL 的安装、连接和基础操作,网上教程要么版本过时,要么步骤不全,导致反复踩坑。本文将从零开始,手把手带你完成 MySQL 的安装、配置、基础操作到核心概念理解,并提供完整的代码示例和避坑指南。无论你是刚接触数据库的学生,还是需要快速上手 MySQL 进行项目开发的工程师,都能从本文获得一套可直接复用的实战方案。 1. MySQL 核心概念与背景 1.1 什么是 MySQL? MySQL 是一个开源的关系型数据库管理系统(RD 阅读详情

相关推荐

MySQL从入门到精通:索引优化、事务管理与高可用架构实战指南

你是不是也遇到过这样的场景:项目急着上线,数据库却连不上;面试被问到索引优化,只能说出“加索引”三个字;或者看着同事熟练地写复杂查询,自己却连基本的JOIN都理不清?如果你正在寻找一份真正能让你从零开始,系统掌握MySQL,并能应对实际开发需求的教程,那么这篇文章就是为你准备的。 网上MySQL教程很多,但大多要么是零散的安装步骤,要么是深奥的原理分析,缺少一条从“安装配置”到“核心原理”再到“生产实践”的完整路径。很多人学了很久,依然不知道如何设计一张高效的表,不知道事务隔离级别到底怎么影响业务,更不知道

a2850363633的博客 322

HEAP: Free Heap block XXXX modified at XXXX after it was freed详解

HEAP: Free Heap block XXXX modified at XXXX after it was freed 测试平台 win10 +vc2012

Keivin 17万+

OpenClaw 在 Windows 环境下的完整安装、配置和部署指南

介绍Windows环境下OpenClaw的完整安装,配置和部署的全流程

hxbao的专栏 1486

HEAP: Free Heap block XXXX modified at XXXX after it was freed

*本文旨在解决在调试过程中遇到如下问题时的解决办法: HEAP: Free Heap block XXXXA modified at XXXXB after it was freed 意思是:已经释放的内存地址A,在B地址处的值被改变(A和B都处于被释放的内存段内),即很可能出现了野指针,而很多情况下你会说,我的每个new和delete都是成对的,在delete后将指针赋值为NULL。但是

ylj135cool的博客 201万+

COMSOL网格划分技巧总结

在对马赫曾德尔型光学传感器进行模拟仿真时,在采用自动物理场自动控制网格-极细化的情况下透射谱曲线仍不理想,因此需要手动划分网格来对其进行更精细的剖分。 手动划分的基本原则是在作用边界,热点,曲边处做细致划分, 基底,包层等做粗略划分。对于光波导型的微纳结构,在仿真时一般需要用到创建边界层网格。 1.COMSOL所需要的网格数量 网格单元数越多,结果精细度越高,计算所需内存越多。在细化到一定程度后网格收敛,仿真结果提升不明显。 2.网格剖分类型 ...

qq_42453337的博客 4万+

Fastp实战指南:高效处理fastq数据的质控技巧

本文是Fastp实战指南,详细介绍了如何使用Fastp工具高效处理fastq数据的质控技巧。从数据清洗的必要性、基础命令解析,到高级参数定制、UMI数据处理及批量自动化流程,提供一站式解决方案。Fastp以其“All-in-One”的快速质控能力,帮助用户确保测序数据质量,为后续生物信息学分析奠定可靠基础。

weixin_29254029的博客 391

js 破解 xxxx安全xx共享平台 cookie

import requests import execjs import re import json url = "https://www.cnvd.org.cn/" s = requests.session() one_req = s.get(url,verify=False) pp = re.search("cookie=(.*);location",one_req.text,re.S) res2 = execjs.eval(pp.group(1)) ck = res2.split(';')[0.

weixin_42544006的博客 5万+

Nginx健康检查实战:如何用第三方模块提升服务可用性(附详细配置)

本文深入探讨了如何通过集成第三方健康检查模块来提升Nginx的服务可用性。文章对比了Nginx默认被动检查的局限性,并详细介绍了主动健康检查的核心优势、主流模块选型,以及以nginx_upstream_check_module为例的实战部署与配置指南,帮助运维人员构建更可靠的负载均衡架构。

weixin_28331555的博客 308

MySQL从入门到精通

一. 下载安装包 https://dev.mysql.com/downloads/mysql/ 如:mysql-8.0.26-macos11-x86_64.dmg 二. 安装 双击*.dmg,一路next,中间会弹出一个对话框,提示输入root的密码,done. 三. 开启MySQL服务。 点击右上角苹果按钮,进入系统偏好设置,点击mysql,开启MySQL服务 四. 设置环境变量 进入/usr/local/mysql/bin,查看此目录下是否有mysql 执行 vim ~/.bash_profile 在该

EmotionComputer 1万+

Doris副本修复实战:从状态机到手动修复的完整指南

在分布式数据库系统中,多副本机制是实现高可用与数据一致性的核心技术。其原理是通过在不同节点存储数据的多个拷贝,确保部分节点故障时服务仍可继续。这项技术的核心价值在于保障数据可靠性,并支撑在线分析处理(OLAP)等对数据一致性要求高的应用场景。当副本出现损坏、丢失或版本不一致时,系统通常依赖自动修复机制,但在元数据损坏、多副本同时故障等复杂场景下,自动修复可能失效,需要深入理解副本状态机并借助手动工具介入。本文将聚焦Doris数据库,解析Tablet副本状态流转(如BAD、VERSION_ERROR),并详细

weixin_32288959的博客 464

Python爬虫实战:如何通过解析JSON数据抓取抖音视频评论

本文介绍了如何使用Python爬虫抓取抖音视频评论数据。请求头伪造:通过使用随机的User-Agent,模拟真实用户的请求。代理池:使用代理IP来避免被封禁。JSON解析:直接从API接口获取JSON格式的数据,避免了动态加载内容的限制。需要注意的是,抓取网站数据时应遵守网站的爬虫协议,避免过度抓取影响网站性能或违反法律法规。希望本文能够帮助你掌握如何抓取和分析抖音视频评论数据!

2201_76125261的博客 3362

MySQL知识点综合详解_01

MySQL知识点超详细讲解_01(一共分为5篇文章)

weixin_51955414的博客 659

Unity之Timeline教程

Unity Timeline是Unity的一种时间轴编辑器工具,用于制作和管理游戏中的动画、剧情以及事件触发。它提供了直观的界面,使得开发者可以通过拖放操作轻松创建和编辑时间轴。Activation Track:用于控制物体的激活状态。可以在轨道上添加关键帧,控制物体的激活和非激活状态。Animation Track:用于处理物体的动画。可以在此轨道上添加关键帧,编辑物体的动画状态。Audio Track:用于处理场景中的音频。可以管理音频的播放、暂停、淡入淡出等操作。

TxNet 9445

数据库原理及运用(初识)第0节:**MySQL下载安装与基础概念

其实就和Excel中的表格类似,有表头,由行列组成的表格,其中包含主键(一张表里每一行的唯一身份证。作用:建立表与表之间的联系,保证数据一致性。这里值得注意的是,因为所有关系型数据库都是用的同一套编程语言,所以学会一种数据库管理系统就可以使用其他的了,而后面小编也将用"MySQL"为你们讲解后续的数据库管理系统的知识。"Oracle"(收费且较贵的大型软件) "MySQL"(有开源的社区版) "Microsoft SQL server"(收费的中型软件)"Postgre SQL" (开源免费的中小型软件)

2502_94532291的博客 140

【32】软考软件设计师——算法题(一):分治法与动态规划深度精讲|下午第4题常考满分攻略

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第32篇,正式开启**模块四:应用技术(下午题)算法大题专项**,聚焦下午第4道高频必考大题核心两大算法:分治法与动态规划。全文超4000字深度拆解两大经典算法的底层核心思想、算法策略识别技巧、递归边界设计、状态转移方程推导,全覆盖代码填空高频考点、时间复杂度分析、经典题型解题套路;配套可直接默写的递归代码模板、DP状态设计范式、真题完整填空案例,彻底解决考生分不清分治与DP、递归边界写错、状态转移推不出、复杂度算不对四大核心痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 639

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

MySQL全链路实战:从安装部署到索引优化与报错排查

关系型数据库通过二维表组织数据,SQL语言是操作核心,MySQL作为最流行的开源关系型数据库之一,其性能与稳定性直接影响业务系统。理解SQL执行链路、存储引擎原理和索引机制,是高效使用数据库的基础。在实际运维中,连接报错(如MySQL ERROR 2002)往往是socket路径或服务未启动所致,而复杂查询优化则依赖EXPLAIN执行计划与合理索引设计。无论是经典的行转列需求,还是基于子查询的数据更新,掌握这些常见场景能显著提升开发效率。本文以工程实践为主线,系统梳理MySQL从安装部署、建库建表到索引优化

weixin_34033624的博客 1542

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

MySQL数据分析实战:从环境搭建到电商用户行为分析

在数据分析领域,数据库是存储和处理数据的核心基础设施,而SQL(结构化查询语言)是与数据库交互的通用标准。其工作原理是通过声明式语法,将业务问题转化为对数据表的查询、筛选、聚合和关联操作,从而高效提取信息。掌握SQL不仅能够实现数据的快速检索和初步加工,更是理解数据流转逻辑、构建数据思维的关键。在电商、金融、运营等众多业务场景中,SQL常用于用户行为分析、销售统计、报表生成等任务。本文聚焦于MySQL这一主流开源关系型数据库,通过一个完整的电商用户行为分析项目,系统讲解从环境搭建、数据导入、核心SQL查询到

weixin_33690367的博客 443

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

RAG查询精炼:四大策略提升检索准确率的工程实践

查询精炼(Query Refinement)是RAG系统实现高相关性检索的核心技术,其本质是在用户原始提问与知识库之间构建语义对齐层。它基于向量检索的固有局限——如词汇不匹配、指代消解失败和多源异构数据理解偏差,通过查询变换、重写、路由与提示词协同优化,显著提升检索精度与LLM生成可靠性。该技术不依赖模型替换,而是以轻量级预处理撬动端到端效果跃升,在金融、医疗、法律等垂直领域已验证可将NPS提升30+分。本文聚焦生产级落地路径,覆盖HyDE调优、Multi-Query融合、Function Calling路

转些好文章,促进分享。 485

全网最强JavaWeb笔记 | 万字长文爆肝JavaWeb开发——day06_数据库-MySQL-01

万字长文爆肝黑马程序员2023最新版JavaWeb教程。这套教程打破常规,不再局限于过时的老套JavaWeb技术,而是与时俱进,运用的都是企业中流行的前沿技术。笔者认真跟着这个教程,再一次认真学习一遍JavaWeb教程,温故而知新,对JavaWeb开发也有了更加深入细致的了解。因此笔者做了全网最全面详细的学习笔记,通篇图文并茂,

qq_45832461的博客 1077

MySQL零基础入门:从安装到索引事务的完整学习路线

数据库是信息系统的核心底座,负责数据的存储、组织与高效检索。SQL作为操作关系型数据库的标准语言,贯穿数据定义、操作与查询的全过程。MySQL作为最流行的开源关系型数据库之一,凭借稳定可靠、生态完善、上手简单等优势,广泛服务于电商、内容管理、数据分析等业务场景。在实际开发中,索引的合理设计能大幅提升查询性能,事务机制则保障了并发环境下的数据一致性。从零基础视角出发,系统梳理MySQL环境搭建、建库建表、增删改查、聚合统计、联表查询、索引事务、视图与存储过程,并结合高频报错排查与工程规范,可帮助读者构建一条完

weixin_34161064的博客 488

MySQL安装与Navicat连接全攻略:从零搭建数据库开发环境

关系型数据库是后端开发与数据管理的基石,其底层采用客户端/服务器架构:服务端负责数据存储与权限校验,客户端则提供可视化交互界面。SQL作为标准查询语言,贯穿增删改查全流程。在实际工程中,数据库环境搭建是入门的第一道门槛,涉及服务端配置、端口通信、认证插件兼容等核心概念。MySQL 8.x默认的caching_sha2_password认证插件可能与旧客户端不兼容,导致连接失败,需通过ALTER USER调整认证方式。掌握这些原理后,便能顺利使用Navicat等图形化工具完成建库、建表及数据操作,为JavaW

weixin_34347651的博客 640

MySQL下载安装全流程详解:从MSI到ZIP避坑指南

数据库是软件系统的核心基础设施,MySQL作为最流行的开源关系型数据库,以其稳定、跨平台和社区活跃等优势,成为开发者入门与项目落地的首选。在Windows环境下安装MySQL,涉及安装包类型选择、版本差异、服务注册、端口配置、环境变量设置等多个关键环节。理解MySQL的安装原理与配置文件加载逻辑,不仅能规避“服务启动失败”“端口被占用”等高频问题,还能为后续的数据库管理和SQL学习打下扎实基础。从Web应用的后端存储到教学实验环境,MySQL的应用场景极为广泛。本文基于MySQL 8.x MSI与ZIP两种

weixin_34320159的博客 437

MySQL基础与SQL注入攻防:从数据库原理到安全实践

SQL注入作为Web安全领域的核心漏洞类型,其本质源于应用程序未能正确区分数据与代码的边界。理解其原理需要从数据库基础入手,特别是SQL语句的解析与执行机制。在技术层面,攻击者通过构造恶意输入,篡改查询逻辑,从而实现数据窃取、权限绕过等目的,这突显了安全编码的重要性。从工程实践角度,掌握参数化查询、输入校验等防御技术,是构建安全应用的基石。本文聚焦MySQL环境下的实战,通过手工注入与自动化工具结合的方式,深入剖析联合查询、报错注入等常见技术,并探讨在安全研究、渗透测试等场景下的应用,旨在帮助读者建立从原理

weixin_34195364的博客 416

MySQL入门到精通-基础篇(二 基本的SELECT语句)

1946 年,世界上第一台电脑诞生,如今,借由这台电脑发展起来的互联网已经自成江湖。在这几十年里,无数的技术、产业在这片江湖里沉浮,有的方兴未艾,有的已经几幕兴衰。但在这片浩荡的波动里,有一门技术从未消失,甚至“老当益壮”,那就是 SQL。45 年前,也就是 1974 年,IBM 研究员发布了一篇揭开数据库技术的论文《SEQUEL:一门结构化的英语查询语言》,直到今天这门结构化的查询语言并没有太大的变化,相比于其他语言,SQL 的半衰期可以说是非常长了。

AlbenXie的博客 201

MySQL 从入门到实战:环境搭建、SQL 语法与数据库设计全解析

很多开发者在学习数据库时,面对海量的资料和零散的知识点,常常感到无从下手,尤其是在环境搭建、基础语法和实际应用之间反复折腾。本文旨在整合一套从零开始的 MySQL 学习路径,内容涵盖从数据库核心概念、环境安装配置,到 SQL 语法精讲、数据操作实战,再到进阶的聚合查询、数据类型和表关系设计。无论你是完全没有数据库基础的学生,还是需要巩固 MySQL 技能的开发者,都可以通过这篇系统化的教程,掌握一套可直接用于项目开发的数据库操作能力。 1. 数据库与 MySQL 核心概念 在开始动手安装和编写 SQL 之前

weixin_33800463的博客 366
上一篇: MySql Structured Query Language 整理
下一篇: androidstudio plugins
Wedfrend
博客等级 码龄11年 3粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值