MySQL数据库初体验+数据库管理(其一)

news2024/11/25 4:34:08

【1】 操作系统介绍:

Linux操作系统有  RedHat   CentOS   Debian   Ubuntu   OpenSUSE   

信创标准  国产系统  :

华为(欧拉)    阿里(龙蜥)     腾讯 (tencentOS)   

麒麟:(银河麒麟、中标麒麟 – >centos 优麒麟 – > Ubuntu )

深度: deepin  

数据库  分两大类:

  • 关系型数据库SQL            
  • 非关系型数据库NoSQL

关系型数据库:典型代表    MySQL    MariaDB    PostgreSQL    SQL Server    Oracle    Db2

信创标准  国产数据库代表:  华为 高斯    阿里 Oceanbase     阿里云数据库 RDB     腾讯 TDBA      人大金仓    达梦    greatSQL 

【2】 数据库基本概念:

(1)数据Data
数据就是描述事物的符号记录。主要包括数字,文字、图形、图像、声音、档案记录等。一般以“记录”形式按统一的格式进行存储。

(2)表
表就是将不同的记录组织在一起。主要是用来存储具体数据。

(3)数据库
数据库(database)是表的集合,存储数据的仓库。数据库是用来组织、存储和管理数据的仓库。以一定的组织方式存储相互有关的数据集合,是按照数据结构来组织、存储和管理数据的仓库。

(4)数据库管理系统(DBMS)
数据库管理系统(DBMS)是实现对数据库资源有效组织、管理和存取的系统软件。数据库的建立和维护功能、数据定义功能、数据操纵功能、数据库的运行管理和通信功能。

(5)数据库系统(DBS)
数据库系统是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成。用户可以通过DBMS或应用程序操作数据库。

【3】 数据库的发展: 

 

【4】主流的数据库介绍: 

(1)SQL Server(微软公司产品)

面向Windows操作系统
简单、易用

(2)Oracle (甲骨文公司产品)

面向所有主流平台
安全、完善,操作复杂

(3)DB2(IBM公司产品)

面向所有主流平台
大型、安全、完善

(4)MySQL (甲骨文公司收购)

免费、开源、体积小

(5)国产系统介绍

  • 华为:欧拉
  • 阿里:龙蜥
  • 腾讯:tencentOS
  • 麒麟:(银河麒麟、中标麒麟 – >centos 优麒麟 – > Ubuntu )
  • 统信:uos
  • 红旗
  • 深度:deepin

【5】关系型数据库(SQL):

  •  存储结构:二维表格    
  • 存储的数据:结构化数据    
  • 使用场景:存储业务数据、账户信息等
  • 对象: 库 ->  表 -> 二维表格形式的结构化数据    

行(记录):用来描述一个对象的信息
列(字段):用来描述对象的一个属性

【6】非关系型数据库(NoSQL):  

  • 存储结构:非二维表格结构,不同类型的NoSQL采用不同的存储结构,比如 键值对、文档、索引、时间序列 等
  • 缓存型   Redis   Memcached
  • 文档型   MongoDB
  • 索引型   Elasticsearch
  • 时序型   Prometheus   InfluxDB
  • 列式型   HBase 

 优点:可高并发读写,对海量数据依旧保持着高效率的存储和访问,具有高扩展性和高可用性

SQL语句:

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

SQL语言分类:

DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限

MySQL中6种常见的约束:

主键约束(primary key)
外键约束(foreign key)
非空约束(not null)
唯一性约束(unique [key|index])
默认值约束(default)
自增约束(auto_increment)

 【7】(1)Mysql安装(CentOS7):

源码编译安装( 源码编译安装和yum安装选择一个就可以)
一、准备工作

将安装mysql 所需软件包传到/opt目录下并解压,卸载mariadb

[root@l1 ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@l1 ~]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                 1913544       0  1913544    0% /dev
tmpfs                    1930624       0  1930624    0% /dev/shm
tmpfs                    1930624   12568  1918056    1% /run
tmpfs                    1930624       0  1930624    0% /sys/fs/cgroup
/dev/mapper/centos-root 38770180 5434896 33335284   15% /
/dev/sda1                1038336  191104   847232   19% /boot
tmpfs                     386128       8   386120    1% /run/user/42
tmpfs                     386128       0   386128    0% /run/user/0
/dev/sr0                 4635056 4635056        0  100% /mnt
[root@l1 ~]# systemctl stop firewalld.service 
[root@l1 ~]# vim /etc/selinux/config 

[root@l1 ~]# cd /opt/
[root@l1 opt]# mkdir mysql
[root@l1 opt]# cd mysql/
[root@l1 mysql]# rz -E
rz waiting to receive.
[root@l1 mysql]# ls
mysql-boost-5.7.44.tar.gz
[root@l1 mysql]# tar xf mysql-boost-5.7.44.tar.gz 
[root@l1 mysql]# yum remove -y mariadb*   //#卸载mariadb相关内容

 二、安装环境依赖包
yum -y install \
gcc \
gcc-c++ \
ncurses \				#字符终端下图形互动功能的动态库
ncurses-devel \			#ncurses开发包
bison \					#语法分析器
cmake					#mysql需要用cmake编译安装
 [root@l1 mysql]# yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake openssl-devel
 三、配置软件模块
cd mysql-5.7.44/

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \                             #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \            #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \                       #指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \			#指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \						#指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安装ARCHIVE存储引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安装BLACKHOLE存储引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安装FEDERATED存储引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \         #指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \          #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1								#生成便于systemctl管理的文件
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
 四、编译及安装
[root@l1 mysql-5.7.44]# make -j 3 && make install
 五、修改mysql 配置文件

useradd -M -s /sbin/nologin  mysql	#创建mysql用户
vim /etc/my.cnf								#删除原配置项,再重新添加下面内容
	[client]									#客户端设置
	port = 3306
	socket = /usr/local/mysql/mysql.sock		#开启自动补全功能
	
	[mysqld]									#服务全局设置
	user = mysql       							#设置管理用户
	basedir=/usr/local/mysql					#指定数据库的安装目录
	datadir=/usr/local/mysql/data				#指定数据库文件的存储路径
	port = 3306									#指定端口
	character-set-server=utf8					#设置服务器字符集编码格式为utf8
	pid-file = /usr/local/mysql/mysqld.pid		#指定pid 进程文件路径
	socket=/usr/local/mysql/mysql.sock			#指定数据库连接文件
	bind-address = 0.0.0.0						#设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开
	skip-name-resolve							#禁止域名解析,包括主机名,所以授权的时候要使用 IP 地址
	max_connections=4096						#设置mysql的最大连接数
	default-storage-engine=INNODB				#指定默认存储引擎
	max_allowed_packet=32M						#设置在网络传输中一次消息传输量的最大值。系统默认值为 1MB,最大值是 1GB,必须设置 1024 的倍数。
	server-id = 1								#指定服务ID号

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES


[root@l1 mysql-5.7.44]# useradd -M -s /sbin/nologin  mysql
[root@l1 mysql-5.7.44]# 

[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
 
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
[root@l1 mysql-5.7.44]# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
[root@l1 mysql-5.7.44]# 
六、优化mysql

更改mysql安装目录和配置文件的属主属组 

[root@l1 mysql-5.7.44]# chown -R mysql:mysql /usr/local/mysql/
[root@l1 mysql-5.7.44]# chown mysql:mysql /etc/my.cnf
[root@l1 mysql-5.7.44]# 

 设置路径环境变量

[root@l1 mysql-5.7.44]# echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@l1 mysql-5.7.44]# source /etc/profile
[root@l1 mysql-5.7.44]# 
 七、初始化数据库
cd /usr/local/mysql/bin/

./mysqld \
--initialize-insecure \				#生成初始化密码为空
--user=mysql \                      #指定管理用户
--basedir=/usr/local/mysql \        #指定数据库的安装目录
--datadir=/usr/local/mysql/data		#指定数据库文件的存储路径

cd /usr/local/mysql/bin/
____________________________________________________________________________

./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

____________________________________________________________________________
八、启动mysql

添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/		
      #用于systemctl服务管理
systemctl daemon-reload         #刷新识别     
systemctl start mysqld.service  #开启服务
systemctl enable mysqld         #开机自启动
netstat -anpt | grep 3306       #查看端口
[root@l1 bin]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@l1 bin]# systemctl daemon-reload
[root@l1 bin]# systemctl start mysqld.service
[root@l1 bin]# systemctl enable mysqld
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
[root@l1 bin]# netstat -anpt | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      30663/mysqld        
[root@l1 bin]# 

  修改mysql的密码

mysqladmin -u root password "abc123" 	#给root账号设置密码为abc123,原始密码为空
[root@l1 ~]# mysqladmin -u root password "abc123"

登录

mysql -u root -p

(2)yum安装mysql(源码编译安装和yum安装选择一个就可以,推荐源码)

一、初始化:

[root@l2 ~]# systemctl stop firewalld.service 
[root@l2 ~]# setenforce 0
[root@l2 ~]# vim /etc/selinux/config 
[root@l2 ~]# 

二、下载MySQL官方的Yum 源安装包 :
[root@l2 ~]# wget http://dev.mysql.com/get/mysql84-community-release-el7-1.noarch.rpm
[root@l2 ~]# yum install -y mysql84-community-release-el7-1.noarch.rpm

 

 

三、部署MySQL服务器 :
[root@l2 ~]# yum install -y mysql-community-server
[root@l2 ~]# systemctl enable mysqld --now

 

四、初始化数据库 :
grep "password" /var/log/mysqld.log 		##查看一下初始密码

mysql -uroot -p
 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';   //修改密码

[root@l2 ~]# grep "password" /var/log/mysqld.log    //查询mysql初始密码
2024-06-18T02:53:35.551045Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: sphx.w?hK4To

[root@l2 ~]# mysql -uroot -p
Enter password:               //输入刚刚查询的初始密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.4.0

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123ABCabc@';  //设置mysql密码 
Query OK, 0 rows affected (0.00 sec)

mysql> 

 注:yum安装的MySQL有密码要求

五、Mysql8.*远程连接 :
update user set host='%' where user='root';

flush privileges;
[root@l2 ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.4.0 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 


【8】 Mysql字段类型:

(1)常用的数据库类型 :
类型含义
tinyint(n)1个字节,范围(-128~127)
smallint(n)2个字节,范围(-32768~32767)
mediumint(n) 3个字节,范围(-8388608~8388607)
int(n) 4个字节(32个比特位),整数型,范围(-2147483648~2147483647)
bigint(n)8个字节,整数型,范围(±9.22*10的18次方)
float(m,d)单精度浮点,8位精度,4字节32位。m数字总个数,d小数位
double(m,d) 双精度浮点,16位精度,8字节64位 。m总个数,d小数位
char固定长度的字符类型
varchar可变长度的字符类型
text文本
image图片
decimal(5,2) 5个有效长度数字,小数点后面有2位(例如123.56)
(2)char与varchar的区别:
CHAR(4)存储需求VARCHAR(4)存储需求
‘’’ ’4个字节‘’1个字节
‘ab’'ab ’4个字节'ab ’3个字节
‘abcd’‘abcd’4个字节‘abcd’5个字节
‘abcdefgh’‘abcd’4个字节‘abcd’5个字节

 CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

(3)字节大小: 
  • char无论是否有值,都会占用固定长度的字节大小,保存在磁盘上都是4字节。
  • varchar在保存字符时,默认会加一个隐藏的结束符,因此结束符会多算一个字节。
(4)优劣比较: 
  • varchar比char节省磁盘空间。
  • varchar类型的数据读写速度比char慢,因为char是连续的磁盘空间,e而varchar在多次增删改查中会产生一些磁盘空间碎片 

【9】管理Mysql :  

登录数据库: 

[root@l1 ~]# mysql -uroot -pabc123
(1) 查看数据库结构:
SELECT VERSION();        //查看当前的 MySQL 版本信息

SELECT USER();         //查看当前的 MySQL连接用户名

[root@l1 ~]# mysql -u root -p  //源码安装mysql的时候设置的密码为abc123(也可以-pabc123)
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.44 Source distribution

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SELECT VERSION();     //查看当前的 MySQL 版本信息
+-----------+
| VERSION() |
+-----------+
| 5.7.44    |
+-----------+
1 row in set (0.00 sec)

mysql> SELECT USER();    //查看当前的 MySQL连接用户名
+----------------+
| USER()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

mysql> 

(2)查看当前服务器中的数据库:
show databases;            //当前服务器中的数据库
show tables [from 库名];         //当前服务器中的表信息
 

MySQL会附带4个系统数据库:

information_schema:   主要存储系统中的一些数据库对象信息,如数据库名,数据库的表,表栏的数据类型与访问权限等
performance_schema:  主要存储数据库服务器性能参数信息
mysql:主要存储系统的用户权限信息
sys:MySQL5.7之后引入的一个新的 sys 数据库,sys 库里面的表、视图、函数以及存储过程可以让用户快速了解MySQL的一些信息,它的数据来源于performance_schema

(3)查看数据库中包含的表:
show tables from 库名;   //查看数据库中的表信息

或者

use 库名;

show tables;         
方式一:先切换库,再查看
#格式:use 库名
mysql> use mysql;
 
mysql> show  tables;

方式二:直接查看 
#格式:  show tables  from 库名
 
 
mysql> show tables from mysql;

mysql> use mysql    //库名
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;   //查看该库中的所有表
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
31 rows in set (0.00 sec)

mysql> 
mysql> show tables from mysql;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
31 rows in set (0.00 sec)

mysql> 
(4)查看表的结构(字段):
use 库名;
describe 表名; 可简写为desc 表名;

或者

desc 库名.表名;
——————————————————————————————————————————————————————————————————
 
方式一:先切换库,在查看指定表的字段
 
 USE  数据库名;      #切换库
 SHOW TABLES;      #查看库中的表
  DESCRIBE 表名;     #查看指定表的结构(  DESCRIBE 可以缩写为DESC)

ps:由于屏幕占比问题与字段数量问题,会导致有些表结构的效果呈现并不好。
(由于默认查看为横向的查看 ) 

 纵向查看方式:
​
desc  表名\G;
——————————————————————————————————————————————————————————————————————

方式二:直接查看表结构 
  
DESCRIBE [数据库名.]表名;
 可缩写成:DESC 数据库名.表名;
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> desc user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(32)                          | NO   | PRI |                       |       |
| Select_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Insert_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Update_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Delete_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Create_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Drop_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Reload_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Shutdown_priv          | enum('N','Y')                     | NO   |     | N                     |       |
| Process_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| File_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Grant_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| References_priv        | enum('N','Y')                     | NO   |     | N                     |       |
| Index_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Show_db_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Super_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tmp_table_priv  | enum('N','Y')                     | NO   |     | N                     |       |
| Lock_tables_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Execute_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_slave_priv        | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_client_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Create_view_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Show_view_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Create_routine_priv    | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_routine_priv     | enum('N','Y')                     | NO   |     | N                     |       |
| Create_user_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Event_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Trigger_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tablespace_priv | enum('N','Y')                     | NO   |     | N                     |       |
| ssl_type               | enum('','ANY','X509','SPECIFIED') | NO   |     |                       |       |
| ssl_cipher             | blob                              | NO   |     | NULL                  |       |
| x509_issuer            | blob                              | NO   |     | NULL                  |       |
| x509_subject           | blob                              | NO   |     | NULL                  |       |
| max_questions          | int(11) unsigned                  | NO   |     | 0                     |       |
| max_updates            | int(11) unsigned                  | NO   |     | 0                     |       |
| max_connections        | int(11) unsigned                  | NO   |     | 0                     |       |
| max_user_connections   | int(11) unsigned                  | NO   |     | 0                     |       |
| plugin                 | char(64)                          | NO   |     | mysql_native_password |       |
| authentication_string  | text                              | YES  |     | NULL                  |       |
| password_expired       | enum('N','Y')                     | NO   |     | N                     |       |
| password_last_changed  | timestamp                         | YES  |     | NULL                  |       |
| password_lifetime      | smallint(5) unsigned              | YES  |     | NULL                  |       |
| account_locked         | enum('N','Y')                     | NO   |     | N                     |       |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
45 rows in set (0.00 sec)

mysql> 
mysql> desc mysql.db;
+-----------------------+---------------+------+-----+---------+-------+
| Field                 | Type          | Null | Key | Default | Extra |
+-----------------------+---------------+------+-----+---------+-------+
| Host                  | char(60)      | NO   | PRI |         |       |
| Db                    | char(64)      | NO   | PRI |         |       |
| User                  | char(32)      | NO   | PRI |         |       |
| Select_priv           | enum('N','Y') | NO   |     | N       |       |
| Insert_priv           | enum('N','Y') | NO   |     | N       |       |
| Update_priv           | enum('N','Y') | NO   |     | N       |       |
| Delete_priv           | enum('N','Y') | NO   |     | N       |       |
| Create_priv           | enum('N','Y') | NO   |     | N       |       |
| Drop_priv             | enum('N','Y') | NO   |     | N       |       |
| Grant_priv            | enum('N','Y') | NO   |     | N       |       |
| References_priv       | enum('N','Y') | NO   |     | N       |       |
| Index_priv            | enum('N','Y') | NO   |     | N       |       |
| Alter_priv            | enum('N','Y') | NO   |     | N       |       |
| Create_tmp_table_priv | enum('N','Y') | NO   |     | N       |       |
| Lock_tables_priv      | enum('N','Y') | NO   |     | N       |       |
| Create_view_priv      | enum('N','Y') | NO   |     | N       |       |
| Show_view_priv        | enum('N','Y') | NO   |     | N       |       |
| Create_routine_priv   | enum('N','Y') | NO   |     | N       |       |
| Alter_routine_priv    | enum('N','Y') | NO   |     | N       |       |
| Execute_priv          | enum('N','Y') | NO   |     | N       |       |
| Event_priv            | enum('N','Y') | NO   |     | N       |       |
| Trigger_priv          | enum('N','Y') | NO   |     | N       |       |
+-----------------------+---------------+------+-----+---------+-------+
22 rows in set (0.00 sec)

mysql> 

SQL语言:

SQL语句用于维护管理数据库,包括数据查询、数据更新、访向控制、对象管理等功能

SQL语言分类:

DDL: 数据定义语言,用于创建数据库对象,如库、表、索引等.

DML:数据操纵语言,用于对表中数据进行管理(增、删、改).

DQL:数据查询语言,用于从数据表中查找符合条件的数据记录.

DCL:数据控制语言,用于设置或者更改数据库用户或角色权限.

(5)创建及删除数据库和表:
1. 创建新的数据库:
create database 库名;    //创建新的数据库       
mysql> create database cywl;
Query OK, 1 row affected (0.00 sec)

mysql> 

 

2. 创建新的表:
use 数据库名;
create table 表名 (字段1 数据类型,字段2 数据类型,.....,[primary key(设为主键的字段名)]); 
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键
#解释
id 字段:这是一个整数类型(int)字段,标记为"not null",表示该字段不允许存储NULL值。同时,它被指定为主键(primary key),这意味着每一行的id字段值必须是唯一的,通常用于唯一标识表中的每一条记录。
 
name 字段:这是一个固定长度字符类型(char(15))字段,同样不允许存储NULL值。这意味着每个name字段的值必须是一个最多包含15个字符的字符串,若实际输入的字符数少于15个,剩余部分会被填充为空格以达到15个字符的长度。
 
score 字段:这是一个十进制类型(decimal(4,2))字段,用于存储带小数点的分数。"(4,2)"表示该字段可以存储最大共4位数字,其中包含2位小数,例如0.00到999.99之间的数值。
 
passwd 字段:这是一个固定长度字符类型(char(45))字段,用于存储密码信息,默认值(default)被设置为空字符串('')。这意味着如果没有为passwd字段提供值,它将自动填充一个空字符串。
 
当这条SQL语句被执行后,数据库中将创建一个名为class的表,包含id、name、score和passwd这四个字段。
 
mysql> use cywl;
Database changed
mysql> create table chuyin(id int,name varchar(20),sex char(2),age int,primary key(id));
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+----------------+
| Tables_in_cywl |
+----------------+
| chuyin         |
+----------------+
1 row in set (0.00 sec)

mysql> desc chuyin;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

mysql> 

3. 删除指定的数据表:
use 库名;
drop 表名;

或者

drop  table 库名.表名;
mysql> show databases;   //查看服务器所有表
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cywl               |
| mydb               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

mysql> show tables from cywl;   //查看cywl下的数据表
+----------------+ 
| Tables_in_cywl |
+----------------+
| chuyin         |
+----------------+
1 row in set (0.00 sec)

mysql> drop table cywl.chuyin;    //删除chuyin表
Query OK, 0 rows affected (0.00 sec)

mysql> show tables from cywl;  //查看cywl下的数据表
Empty set (0.00 sec)

mysql> 


管理表中的数据记录

1)向数据表中插入新的数据记录
INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);

mysql> show tables;
Empty set (0.00 sec)

mysql>  create table chuyin(id int,name varchar(20),sex char(2),age int,primary key(id));
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+----------------+
| Tables_in_cywl |
+----------------+
| chuyin         |
+----------------+
1 row in set (0.00 sec)

mysql> desc chuyin;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> insert into chuyin(id, name, sex, age) values(1, 'my', '女', 20);
Query OK, 1 row affected (0.01 sec)

mysql> 


2)查询数据记录

use 库名  #进入数据库
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
select * from 表名;
select name,age from 表名 where sex='男';
select * from 表名 where id>=2 and id<=3;
select * from 表名 where id=1 or id=3;
select * from表名 limit 2;       #只显示头2行
select * from 表名 limit 1,2;    #显示第1行后的前2行(不包括第1行,也就是第2、3行)
select * from 表名\G      #以列表方式竖向显示,结尾没有分号,在Xshell中可以看到效果,在Navicat中无法实现

查看表中的数据

mysql> select * from chuyin;
+----+------+------+------+
| id | name | sex  | age  |
+----+------+------+------+
|  1 | my   | 女   |   20 |
+----+------+------+------+
1 row in set (0.00 sec)

mysql> 

指定输出内容查询,用,分割 

mysql> select name,age from chuyin;
+------+------+
| name | age  |
+------+------+
| my   |   20 |
| tmt  |   21 |
| yf   |   21 |
+------+------+
3 rows in set (0.00 sec)

mysql> 

 使用where更进一步根据条件查询

mysql> select name,age from chuyin where sex='女';
+------+------+
| name | age  |
+------+------+
| my   |   20 |
| tmt  |   21 |
| yf   |   21 |
+------+------+
3 rows in set (0.00 sec)

mysql> 

 查看2到3行内容

mysql> select * from chuyin where id>=2 and id<=3;
+----+------+------+------+
| id | name | sex  | age  |
+----+------+------+------+
|  2 | tmt  | 女   |   21 |
|  3 | yf   | 女   |   21 |
+----+------+------+------+
2 rows in set (0.00 sec)

mysql> 

 使用or表示或的意思

mysql> select * from chuyin where id=2 or id=3;   //2或者3行
+----+------+------+------+
| id | name | sex  | age  |
+----+------+------+------+
|  2 | tmt  | 女   |   21 |
|  3 | yf   | 女   |   21 |
+----+------+------+------+
2 rows in set (0.00 sec)

mysql> select * from chuyin where id=2 or id=4;   //2或者4行
+----+------+------+------+
| id | name | sex  | age  |
+----+------+------+------+
|  2 | tmt  | 女   |   21 |
+----+------+------+------+
1 row in set (0.00 sec)

mysql> 

limit N;  查看前N行内容

mysql> select * from chuyin limit 2;    //前两行
+----+------+------+------+
| id | name | sex  | age  |
+----+------+------+------+
|  1 | my   | 女   |   20 |
|  2 | tmt  | 女   |   21 |
+----+------+------+------+
2 rows in set (0.00 sec)

mysql> 

limit n,m;  查看从第n行开始的m行内容(不包括第n行)

mysql> select * from chuyin limit 1,2; //第一行开始的两行内容(不包括第一行)
+----+------+------+------+
| id | name | sex  | age  |
+----+------+------+------+
|  2 | tmt  | 女   |   21 |
|  3 | yf   | 女   |   21 |
+----+------+------+------+
2 rows in set (0.01 sec)

mysql> 

纵向显示查询内容

mysql> select * from chuyin\G
*************************** 1. row ***************************
  id: 1
name: my
 sex: 女
 age: 20
*************************** 2. row ***************************
  id: 2
name: tmt
 sex: 女
 age: 21
*************************** 3. row ***************************
  id: 3
name: yf
 sex: 女
 age: 21
3 rows in set (0.00 sec)

mysql> 
3)修改、更新数据表中的数据记录

update 表名 set 字段名1=字段值1, [字段名2=字段值2] [WHERE条件表达式1];

修改id=3的age为23

mysql> select * from chuyin;
+----+------+------+------+
| id | name | sex  | age  |
+----+------+------+------+
|  1 | my   | 女   |   20 |
|  2 | tmt  | 女   |   21 |
|  3 | yf   | 女   |   21 |
+----+------+------+------+
3 rows in set (0.00 sec)

mysql> update chuyin set age=23 where id=3;    //修改id=3的age为23
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from chuyin;
+----+------+------+------+
| id | name | sex  | age  |
+----+------+------+------+
|  1 | my   | 女   |   20 |
|  2 | tmt  | 女   |   21 |
|  3 | yf   | 女   |   23 |
+----+------+------+------+
3 rows in set (0.00 sec)

mysql> 
4)在数据表中删除指定的数据记录

delete from 表名 [where条件表达式];

删除id=1的数据内容

mysql> select * from chuyin;   //查看表内容
+----+------+------+------+
| id | name | sex  | age  |
+----+------+------+------+
|  1 | my   | 女   |   20 |
|  2 | tmt  | 女   |   21 |
|  3 | yf   | 女   |   23 |
+----+------+------+------+
3 rows in set (0.00 sec)

mysql> delete from chuyin where id=1;   //删除id=1的数据内容
Query OK, 1 row affected (0.00 sec)

mysql> select * from chuyin;    //查看表内容
+----+------+------+------+
| id | name | sex  | age  |
+----+------+------+------+
|  2 | tmt  | 女   |   21 |
|  3 | yf   | 女   |   23 |
+----+------+------+------+
2 rows in set (0.00 sec)

mysql> 

(5)修改表名和表结构

1)修改表名

alter table 旧的表名 rename 新的表名;

mysql> alter table chuyin rename cywl1;    //修改表名chuyin为chuyin1
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;   //查看表名
+----------------+
| Tables_in_cywl |
+----------------+
| cywl1          |
+----------------+
1 row in set (0.00 sec)

mysql> 

2)扩展表结构(增加字段)

alter table 表名 add 字段 数据类型 default ' 默认值' ;

#default '和平':表示此字段设置默认值,爱好不明,可与NOT NULL配合使用

mysql> desc cywl1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> alter table cywl1 add hobby varchar(40) default '和平';  //#default '和平':表示此字段设置默认值,爱好不明,可与NOT NULL配合使用
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc cywl1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
| hobby | varchar(40) | YES  |     | 和平    |       |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> 

 添加数据时,不指定hobby,则默认为和平

mysql> insert into cywl1 values(1, 'my', '女', 21, '跳伞');
Query OK, 1 row affected (0.00 sec)

mysql> select * from cywl1;
+----+------+------+------+--------+
| id | name | sex  | age  | hobby  |
+----+------+------+------+--------+
|  1 | my   | 女   |   21 | 跳伞   |
|  2 | tmt  | 女   |   21 | 和平   |
|  3 | yf   | 女   |   23 | 和平   |
+----+------+------+------+--------+
3 rows in set (0.00 sec)

mysql> 
3)修改字段(列)名,唯一键(主键)

alter table 表名 change 旧列名 新列名 数据类型 [unique key];

#unique key代表唯一键,不可以添加相同值,一张表可以有多个唯一值。

将name换成name1,并设置唯一键

mysql> desc cywl1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
| hobby | varchar(40) | YES  |     | 和平    |       |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> alter table cywl1 change name name1 varchar(20) unique key;  //将name换成name1,并设置唯一键
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc cywl1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name1 | varchar(20) | YES  | UNI | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
| hobby | varchar(40) | YES  |     | 和平    |       |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql>  
4)删除字段

alter table 表名 drop 字段名;

删除hobby字段

mysql> desc cywl1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name1 | varchar(20) | YES  | UNI | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
| hobby | varchar(40) | YES  |     | 和平    |       |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

mysql> alter table cywl1 drop hobby;   //删除hobby字段
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc cywl1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name1 | varchar(20) | YES  | UNI | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> 

5)添加、删除约束属性

alter table 表名 drop primary key;

alter table 表名 add primary key(字段名);

mysql> desc cywl1;  
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name1 | varchar(20) | YES  | UNI | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> alter table cywl1 drop primary key;   //删除约束属性
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> desc cywl1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   |     | NULL    |       |
| name1 | varchar(20) | YES  | UNI | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> alter table cywl1 add primary key(id);  //添加约束属性
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc cywl1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name1 | varchar(20) | YES  | UNI | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> 

8、MySQL的6大约束属性:

主键约束primary key字段的值不能重复,且不能为NULL,一个表只能有一个主键
唯一键约束unique key字段的值不能重复,但可以为NULL,一个表可以有多个唯一键
非空约束not null字段的值不能为NULL
默认值约束 default 'XXX'字段的值如果没有设置值则使用默认值自动填充
自增约束auto_increment字段的值如果没有设置值会默认从开始每行自动递增 1 ,要求设置自增的字段必须为主键字段
外键约束foreign key用来保证外键表和主键表相关联数据的完整性和一致性

零填充   int(N) zerofill    使用0进行填充使字段的数组满足 N 位数
 
     
       

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

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

相关文章

媒体访谈 | 广告变现痛点有新解,俄罗斯市场成大热门?

今年一季度&#xff0c;中国自主研发游戏在海外市场实际销售收入达到了40.75亿美元&#xff0c;环比和同比均实现了超过5%的增长&#xff0c;出海&#xff0c;仍是游戏产品近些年来最主要的发展模式之一。 当今的市场环境正经历一系列深刻变革&#xff0c;移动游戏广告市场呈现…

npm语义化版本和版本运算符

版本号组成 一个完整的版本号&#xff0c;由三部分组成&#xff1a;主版本号&#xff08;major&#xff09;、次版本号(minor)、修订版本号(patch)&#xff0c;简称X.Y.Z&#xff0c;具体含义&#xff1a; 主版本号&#xff08;major&#xff09;&#xff1a;项目&#xff08…

【C++】类的六个默认成员函数

文章目录 类的六个默认成员函数一、构造函数二、析构函数三、拷贝构造函数四、赋值运算符重载五、const成员六、取地址及const取地址操作符重载 类的六个默认成员函数 如果一个类中什么成员都没有&#xff0c;称为空类。空类中真的什么都没有吗&#xff1f;并不是&#xff0c;…

【windows】字体安装手册

windows字体安装手册 1 下载字体文件 百度搜索XXX字体ttf文件进行下载 附&#xff1a;宋体gb2312下载地址&#xff1a; https://www.downza.cn/soft/7780.html 2 字体安装 1.搜索字体 2.将下载的ttf文件拖拽添加 3.关闭办公软件重新打开后&#xff0c;outlook、word、…

html做一个分组散点图图的软件

在HTML中创建一个分组散点图&#xff0c;可以结合JavaScript库如D3.js或Plotly.js来实现。这些库提供了强大的数据可视化功能&#xff0c;易于集成和使用。下面是一个使用Plotly.js创建分组散点图的示例&#xff1a; 要添加文件上传功能&#xff0c;可以让用户上传包含数据的文…

前端新手小白的Vue3入坑指南

昨天有同学说想暑假在家学一学Vue3&#xff0c;问我有没有什么好的文档&#xff0c;我给他找了一些&#xff0c;然后顺带着&#xff0c;自己也写一篇吧&#xff0c;希望可以给新手小白们一些指引&#xff0c;Vue3欢迎你。 目录 1 项目安装 1.1 初始化项目 1.2 安装初始化依…

如何保护表格部分内容不被修改!

你是否还在为辛苦做的表格&#xff0c;收回来的表格总是被人随意修改&#xff0c;不是表头变了样&#xff0c;就是设置好的格式、公式都乱了&#xff0c;苦恼、崩溃..... 别急&#xff0c;今天刘小生教你一招解决烦恼&#xff01; 0.案例效果 【案例】现收集员工个人信息表&a…

canal 服务安装

简介&#xff1a;Canal 是阿里巴巴开源的一个基于 MySQL 数据库增量日志解析的中间件&#xff0c;用于提供准实时的数据同步功能。 准备工作 1.修改配置文件 ,需要先开启 Binlog 写入功能&#xff0c;配置 binlog-format 为 ROW 模式&#xff0c;my.cnf 中配置如下&#xf…

【目标检测】图解 DETR 系统框图

简略版本 Backbone&#xff1a;CNN backbone 学习图像的 2D 特征Positional Encoding&#xff1a;将 2D 特征展平&#xff0c;并对其使用位置编码&#xff08;positional encoding&#xff09;Encoder&#xff1a;经过 Transformer 的 encoderDecoder&#xff1a;encoder 的输出…

重磅来袭,表格数据显示的快捷方式和注意事项!

今天分享数据表格常见的两个问题&#xff0c;如何“快速去除小数点”和“快速显示万位数”&#xff0c;及日常工作计算常见问题&#xff0c;今天刘小生跟大家一起排雷&#xff01; 1. 快速去除小数点 问题&#xff1a;经数据计算后出现小数位数&#xff0c;想要在整体数据展示…

Rust这5个自动验证工具,你知道几个?

自动验证是一种有助于检查程序是否满足某些属性的技术&#xff0c;例如内存安全性和避免在运行时错误。此外&#xff0c;自动验证工具使你能够验证并发代码的正确性&#xff0c;这很难手工测试。 自动验证对Rust特别重要&#xff0c;因为它可以帮助确保正确使用unsafe的代码。…

NTFS和exFAT哪个性能好 U盘格式化NTFS好还是exFAT好 mac不能读取移动硬盘怎么解决

文件系统的选择对存储设备的性能和兼容性有着重要影响。而NTFS和EXFAT作为两种常见的文件系统&#xff0c;它们各有特点&#xff0c;适用于不同的使用场景。我们将深入探讨NTFS和EXFAT的区别&#xff0c;帮助大家选择最适合自己需求的文件系统。 NTFS&#xff1a;稳定与性能的平…

代理网络基础设施 101:增强安全性、速度和可扩展性

编辑代理网络在现代网络架构中发挥着重要作用&#xff0c;充当管理和重新路由数据流的中介。它们处理的数据可以是各种类型&#xff0c;包括搜索查询和潜在的敏感客户信息&#xff0c;这凸显了它们在数据安全方面的作用。 然而&#xff0c;代理的好处不仅限于安全性。它们为用…

Apifox 中如何处理加密或编码过的响应数据?

接口返回的响应数据有时是经过编码或加密处理的&#xff0c;要转换成可读的明文&#xff0c;可以使用 Apifox 内置的 JS 类库、或者通过调用外部编程语言 &#xff08;如 Python、JavaScript 等&#xff09; 来进行处理。 例如&#xff0c;一个经过 Base64 编码的数据可以通过…

【开源项目】智慧北京案例~超经典实景三维数字孪生智慧城市CIM/BIM数字孪生可视化项目——开源工程及源码!

飞渡科技数字孪生北京管理平台&#xff0c; 依托实景数字孪生底座&#xff0c;以城市感知网络为硬件基础&#xff0c;以城市大数据为核心资源&#xff0c;以数字孪生、云计算、人工智能为关键技术&#xff0c;实现城市产业规划、资产安全管理、城市能耗监控等一体化空间融合。 …

我国光伏连接器市场规模逐渐扩大 国产化率不断提升

我国光伏连接器市场规模逐渐扩大 国产化率不断提升 光伏连接器是在光伏系统中用于连接控制器、汇流箱、逆变器等各组件的设备。光伏连接器是光伏系统的“生命线”&#xff0c;可确保有效的能量传输&#xff0c;并尽量减少系统中的任何功率损失。光伏连接器具有防水、防尘、电压…

The First项目报告:解读互链操作协议LayerZero

随着 DeFi 项目的兴起&#xff0c;跨链互操作性成为区块链领域的热门话题&#xff0c;在众多的跨链平台中&#xff0c;Layer Zero 凭借其创新技术和设计备受关注&#xff0c;近期Layer Zero发布代币空投方案&#xff0c;引发社区热议&#xff0c;随着其代币上线The First平台&a…

Vue69-路由基本使用

一、需求 二、开发步骤 2-1、路由的安装 vue-router3才能在vue2中使用&#xff01;现在默认是vue-router4版本&#xff0c;要在vue3中使用&#xff01;所以&#xff0c;安装的时候要指定版本。 2-2、在main.js中引入和使用路由 2-3、创建router文件夹 一般在vue中用了vue-ro…

SpringBoot引入外部依赖包

将需要引入的文件放置到与src同级别的目录下 如上&#xff0c;在src的同级&#xff0c;新建了一个lib目录&#xff0c;将jar包放置其中 在POM文件下&#xff0c;加入如下配置 <dependency><groupId>com.aliyun</groupId><artifactId>com.aliyun.filed…