MySQL其一,概念學習,可視化軟件安裝以及增刪改查語句

目錄

MySQL

1、數據庫的概念

2、數據庫分類

3、MySQL的安裝

4、安裝過程中的問題

DataGrip的使用:

SQLynx的使用:

5、編寫SQL語句

6、DDL語句

7、DML

新增數據:

刪除數據:

修改數據:


MySQL

SQL其實是一門開發語言。

大數據為啥要學習SQL語句?大數據起步比較晚。

起步晚,要流行:1)方便使用 2)簡單易學 學習成本小

我們所有的大數據組件,每個組件都有自己的用法。想使用大數據,要求會SQL即可。能夠吸引大批老的程序員使用新技術。

數據庫:SQL語句

Hadoop(Hive): 類似的SQL語句

Spark : Spark SQL

Flink : Flink SQL

數倉學科: Python語言(打個基礎)

1、數據庫的概念

DB: 數據庫的意思,其實本質上就是文本文件而已。我們一般無法察覺,也查看不了,原因是安全性。

數據庫管理系統(DataBase Management System,DBMS):文件文件就是數據庫的本質,數據庫管理系統其實就是用來管理數據文本內容的工具(軟件)而已。

數據庫管理系統就i是一套軟件而已,別人開發出來供我們使用的。

Java : API (開發幫助文檔)

2、數據庫分類

兩大派(華山派 -- 劍宗和 氣宗 ):關系型數據 和 非關系型數據庫

關系型數據庫:主流

MySQL:免費的,以前是SUN公司,后來Oracle 一個表500萬數據的時候開始考慮性能問題

Oracle: Oracle 收費的,軟件賊大,安全型賊好。 一般政府部門,銀行系統。互聯網公司都在去O。

MS Server: 微軟的

DB2 : IBM的

Access : 微軟出來的。小垃圾 其實就是一個excel表格。

非關系型數據庫

互聯網發達起來

  • HBase是一個分布式的、面向列的開源數據庫 上億行,百萬列
  • MongoDB是一個基于分布式文件存儲的數據庫 H5
  • Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的API 每個公司都在用。是基于內存的數據庫。

非關系型書庫的出現不是為了革命,而是輔助。

什么是關系型數據庫呢?

通過行和列存儲數據,這樣設計出來的數據庫都是關系型數據庫。

3、MySQL的安裝

SQL和數據庫的關系?

SQL是一種語言,標準語言。

mysql、oracle 都可以編寫和執行sql。

官方了兩種安裝包:

Oracle: 1G
MS Server:  特別大

數據庫的密碼: 統一 123456

mysql8.0 它底層進行了優化,同樣的sql語句,在mysql8.0 比 mysql5.x 運行速度快。

4、安裝過程中的問題

版本要注意:mysql 5.5 和 5.7 特別多

我們現在用的是mysql 8.0版本,他們之間存在一定的兼容問題。

假如你有一個新的電腦:安裝軟件的時候,比如jdk、mysql、idea等跟工作相關的軟件安裝C盤。

這些軟件是數據庫的Server端。 服務器端是不要錢。

安裝玩之后,可以使用黑窗口操作。

進入bin之后,輸入cmd

登錄進去后,就可以編寫sql了。

展示所有數據庫
show databases;

黑窗口編寫SQL語句太費勁了,如果有可視化的軟件就好了:

軟件購買

遠程連接:

可以連接本地和遠程,比如同桌的數據庫

點擊"測試連接" 看是否連接成功!

    原因是Navicat 12版本,連接高版本的數據庫,使用的密碼校驗機制跟 mysql8.0 的機制有不一樣的地方。

人工修復一下這個Bug:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;//更新一下用戶的密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';//刷新權限
FLUSH PRIVILEGES;alter user 'root'@'localhost' identified by 'root';

如何使用Navicat編寫命令:

F6 或者 Fn + F6

遠程連接工具都有哪些?

Navicat 、 SQLYog 、DataGrip

粘貼激活碼即可。

DataGrip的使用:

先創建項目:起個英文名

添加數據源mysql:

選擇mysql:

SQLynx的使用:

無需安裝,解壓即用。

該客戶端的優點:1)支持國產的一些數據庫 2)運行速度比較快(導入導出)

5、編寫SQL語句

1) SQL語句的分類

SQL: Structure Query Language(結構化查詢語言),SQL最早是被美國國家標準局(ANSI)確定為關系型數據庫語言的美國標準。后來被國際化標準組織(ISO)采納為關系型數據庫語言的國際標準。

國家的統一的語言:普通話 各個地方都有方言。每一個數據庫都有方言。方言就是獨自。

  • DDL(Data Definition Language):數據定義語言,用來定義數據庫對象(數據庫、表、列)

創建一個數據庫、創建表、添加字段等

  • DML(Data Manipulation Language):數據操作語言,用于定義數據庫記錄(數據)

數據的新增、修改、刪除

  • DQL(Data Query Language):數據查詢語言,用于查詢記錄(數據)

專門針對數據的查詢的

  • TCL(Transaction Control Language):事務控制語言,DCL(Data Control Language):數據控制語言,用于定義訪問權限和安全級別

控制事務、添加用戶、賦予權限、修改密碼等。

6、DDL語句

數據庫的操作:

展示所有的數據庫
show databases;
# 創建數據庫
CREATE DATABASE mydb01;
# 創建數據庫,并采用指定的字符集
CREATE DATABASE mydb02 CHARACTER SET UTF8;
utf8字符集是可以支持中文的,非常的方便。查看數據庫(了解)
# 查看創建數據庫mydb1定義的信息
SHOW CREATE DATABASE mydb01;
mysql> show create database mydb01;1 row in set (0.07 sec)mysql> alter database mydb01 character set gbk;
Query OK, 1 row affected (0.09 sec)mysql> show create database mydb01;# 將數據庫mydb1的字符集修改為GBK
ALTER DATABASE mydb1 CHARACTER SET GBK;DROP DATABASE mydb1; (不重要)# 切換當前使用的數據庫
USE mydb1; 
# 查詢當前使用的數據庫
SELECT DATABASE();查看mysql的版本:
select verion();

關于表的操作:

展示該數據庫中的所有表:
show tables;創建一個表:
語法:
create table 表名( 字段一 數據類型(數據長度),.....);
實戰:
create table stu (name varchar(255),phone varchar(11),age int(3));查看表結構:
desc stu;# 查看創建一個表的信息
SHOW CREATE TABLE t_users; #不常見在sql語句中 # 后面的語句不執行,代表注釋
修改表的名字
alter table stu rename to student;
以下內容可以練習一遍即可:
# 給一張表添加一個字段
ALTER TABLE t_users ADD score DOUBLE(5,2);
# 修改一張表的字段類型
ALTER TABLE t_users MODIFY score INT;
# 修改一張表的字段名
ALTER TABLE t_users CHANGE name uname VARCHAR(50);
# 修改一張表的字符集
ALTER TABLE t_users CHARACTER SET GBK;修改表添加一個身高字段:
int 整數   1 2 3 4... 不能寫1.11
double 小數 (5,2)  帶小數為總共有5個長度,2 表示小數點后能存2位,所以整數為長度是3.double(5,2)  最大能表示到 999.99alter table student add height double(5,2);
# 刪除一張表中的字段
ALTER TABLE t_users DROP score;表的刪除:
drop table student ;-- 創建一個跟這個表一模一樣的表結構
create table stu2  like stu;
-- 創建一個表,表結構跟另一個表一模一樣,并且數據也跟它一模一樣,類似于copy 某個表
create table stu3 as select * from stu;
-- ------------展示table的DDL語句------------------
-- 查看所有的表
show tables;
-- 創建一個表
create table stu01(id int(20),name varchar(20),age int(3)
);
-- 查看表結構
desc stu01;
describe stu01;
-- 修改表結構,不是修改表中的數據
-- 重命名
alter table stu01 rename to student;desc student;
-- 添加列
alter table student add score double(5,2);
-- 修改一個列的數據類型
alter table student modify score int(3);
-- 修改字段的名字
alter table student change name sname varchar(30);
-- 修改一張表的字符集
alter table student character set utf8;
show create table student;
-- 刪除一個字段
alter table student drop score;
-- 新建一個表,該表的表字段跟student 一模一樣
create table stu like student;
desc stu;
-- 創建一個表,表結構和數據都跟你一模一樣
create table stu2 as select * from student;
-- 刪除表
drop table student;
DDL語句:數據庫的新增修改刪除查看。表的新增修改刪除查看表字段的新增修改刪除查看(已經涵蓋在了表的修改操作中了)

假如 編寫sql語句 回車代表換行,不代表執行,一個sql語句見 ; 表示寫完了。

建表語句中,經常出現字段的類型:

比如 age 年齡 數據類型 數字表示 int

常見的數據類型:

數據類型

類型描述

示例

int

整型,整數類型

double

浮點型

double(5,2): 表示最多有5位,其中必須有兩位數小數,即最大值是999.99

char

固定長度的字符串

char(5): 固定5位字符,即'aa'也占用5位字符

varchar

可變長度的字符串

varchar(5): 可以根據內容動態分配空間,'aa'只占用兩位。括號里的5表示最大的位數。

text

字符串類型

blob

字節類型

很少用的,一般存在 比如 音樂,圖片

date

日期類型

yyyy-MM-dd

time

時間類型

hh:mm:ss

timestamp

時間戳類型

yyyy-MM-dd hh:mm:ss,會自動賦值

datetime

時間類型

yyyy-MM-dd hh:mm:ss

作業:字段類型 5遍
其實特別簡單: 記住 int  varchar 就可以了。

DDL語句都可以使用圖形化界面解決(練習練習即可!)

圖形化界面操作(必須掌握):

7、DML

DML指的是對數據庫中的數據進行增、刪、改的操作。不要和DDL搞混了。

新增數據:

語法-- 必須遵循的法則

INSERT INTO 表名(列名1,列名2 ...)VALUES(列值1,列值2...);注意:列名與列值的類型、個數、順序要一一對應。

mysql> use mydb03;
Database changed
mysql> show tables;
+------------------+
| Tables_in_mydb03 |
+------------------+
| stu              |
+------------------+
1 row in set (0.08 sec)mysql> desc stu;
+--------+--------------+------+-----+---------+-------+
| Field  | Type         | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| name   | varchar(255) | YES  |     | NULL    |       |
| age    | int(11)      | YES  |     | NULL    |       |
| height | double(5,2)  | YES  |     | NULL    |       |
+--------+--------------+------+-----+---------+-------+
3 rows in set (0.12 sec)mysql> insert into stu(name,age,height) values('zhangsan',22,190.9);
Query OK, 1 row affected (0.07 sec)mysql> insert into stu(name,age,height) values('lisi',23,180);
Query OK, 1 row affected (0.11 sec)mysql> select * from stu;  # 該語句是查詢語句,表示查詢stu中所有的數據
+----------+-----+--------+
| name     | age | height |
+----------+-----+--------+
| zhangsan |  22 | 190.90 |
| lisi     |  23 | 180.00 |
+----------+-----+--------+
2 rows in set (0.08 sec)# insert into 表名  如果表名后面不添加任何的字段名,就是向所有字段插入值。
mysql> insert into stu values('wangwu',24,175);
Query OK, 1 row affected (0.06 sec)mysql> select * from stu;
+----------+-----+--------+
| name     | age | height |
+----------+-----+--------+
| zhangsan |  22 | 190.90 |
| lisi     |  23 | 180.00 |
| wangwu   |  24 | 175.00 |
+----------+-----+--------+
3 rows in set (0.09 sec)
# insert into 表名  如果表名后面添加字段名,說明想向這個字段設置值,其他字段不管了。
mysql> insert into stu(name) values('zhaoliu');
Query OK, 1 row affected (0.09 sec)mysql> select * from stu;
+----------+------+--------+
| name     | age  | height |
+----------+------+--------+
| zhangsan |   22 | 190.90 |
| lisi     |   23 | 180.00 |
| wangwu   |   24 | 175.00 |
| zhaoliu  | NULL | NULL   |
+----------+------+--------+null 就是空的意思,沒有任何值,不是 0 也不是 '' desc stu;
insert into stu(id,sname,age) values(1,'zhangsan',20);
select * from stu;
insert into stu values(2,'lisi',20);
insert into stu(id,sname) values(3,'王五');
insert into stu(id,sname) values (4,'sisi'),(5,'五仁'),(6,'六子');

課下練習:

create table emp(id int,name varchar(100),gender varchar(10),birthday date,salary double(10,2),entry_date date,resume text
);INSERT INTO emp(id,name,gender,birthday,salary,entry_date,resume)
VALUES(1,'zhangsan','female','1990-5-10',10000,'2015-5-5','good girl');INSERT INTO emp(id,name,gender,birthday,salary,entry_date,resume)
VALUES(2,'lisi','male','1995-5-10',10000,'2015-5-5','good boy');INSERT INTO emp(id,name,gender,birthday,salary,entry_date,resume)
VALUES(3,'你好','male','1995-5-10',10000,'2015-5-5','good boy');

創建一個新的表,跟stu表不一樣

需求是:從stu中,查詢數據導入到emp表中。

insert into emp(sname,sage,sheight)  select * from stu;mysql> insert into emp(sname,sage,sheight)  select * from stu;
Query OK, 4 rows affected (0.11 sec)
Records: 4  Duplicates: 0  Warnings: 0mysql> select * from emp;
+----------+------+---------+--------+
| sname    | sage | sheight | gender |
+----------+------+---------+--------+
| zhangsan |   22 |     191 | NULL   |
| lisi     |   23 |     180 | NULL   |
| wangwu   |   24 |     175 | NULL   |
| zhaoliu  | NULL | NULL    | NULL   |
+----------+------+---------+--------+
4 rows in set (0.07 sec)

stu

emp

name varchar

sname varchar

age int

sage int

height double

sheight double

select 語句查詢出來的數量以及字段類型和順序都必須 和 insert into 中表的字段數量、類型、順序一樣,跟表名字、表字段的名字沒有半毛錢關系。
對比:
這個語句執行的時候必須有表
insert into 表名  select * from 表2這個語句執行的時候可以沒有表,sql語句幫創建表
create table 表名 as select * from 表2

刪除數據:

# 刪除數據
DELETE FROM 表名;
# 刪除掉表中所有的數據
TRUNCATE TABLE 表名;delete from stu where name='zhaoliu';
# where 后面可以添加條件,滿足條件的刪除掉
DELETE 和 TRUNCATE1. delete刪除表中的數據,表結構還在;刪除的數據可以恢復。
2. truncate是直接將表DROP掉,然后再按照原來的結構重新創建一張表。數據不可恢復。
3. truncate刪除效率比delete高。

where條件:

如何造數據:

字段

解釋

name

姓名

groupid

小組

score

成績

# 刪除姓名叫"張三"的數據
delete from student where name='張三';# 刪除成績不是100的數據
delete from student where score != 100;
delete from student where score <> 100;# 刪除不及格的數據
delete from student where score < 60;
# 刪除成績在[60, 80]范圍的數據
delete from student where score >= 60 and score <= 80;delete from student where score between 60 and 80;
# 刪除小組是1,3,5的數據
delete from student where groupid = 1 or groupid = 3 or groupid =5;
delete from student where groupid in (1,3,5);
# 刪除成績是空的數據
delete from student where score is null;
# 刪除成績不及格的第三組的數據
delete from student where score < 60 and groupid = 3;# 刪除姓張的數據
delete from student where name  like '張%';% 表示任意0個或者多個字符
# 刪除名字中含有  偉 字的同學
delete from student where name  like '%偉%';

修改數據:

需求:只要這個同學姓張,就加10分
考慮語法:
UPDATE 表名 SET 列名1=列值1,列名2=列值2 。。。 WHERE 列名=值根據語法編寫sql語句:
score = 10 是將 score 的數據重置為 10
update student set score = 10 where name like '張%';
修改為:
update student set score = score + 10 where name like '張%';
# 將所有員工薪水修改為5000元。
UPDATE emp SET salary=5000 # 將姓名為’zhangsan’的員工薪水修改為3000元。
UPDATE emp SET salary=3000 WHERE name=’ zhangsan’;# 將姓名為’lisi’的員工薪水修改為4000元,job改為ccc。
UPDATE emp SET salary=4000,job='ccc' WHERE name='lisi';# 將wu的薪水在原有基礎上增加1000元。
UPDATE emp SET salary=salary+1000 WHERE name='wu';ifnull(字段名,默認值)
update stu set age = ifnull(age,0) + 1;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62674.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62674.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62674.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

05 在 Linux 使用 AXI DMA

DMA簡介 DMA 是一種采用硬件實現存儲器與存儲器之間或存儲器與外設之間直接進行高速數據傳輸的技術&#xff0c;傳輸過程無需 CPU 參與&#xff08;但是CPU需要提前配置傳輸規則&#xff09;&#xff0c;可以大大減輕 CPU 的負擔。 DMA 存儲傳輸的過程如下&#xff1a; CPU 向…

linux 安裝 vsftpd 服務以及配置全攻略,vsftpd 虛擬多用戶多目錄配置,為每個用戶配置不同的使用權限

linux 安裝 vsftpd 服務以及配置全攻略&#xff0c;vsftpd 虛擬多用戶多目錄配置&#xff0c;為每個用戶配置不同的使用權限。 linux 安裝 vsftpd 服務以及配置全攻略 FTP 是 File Transfer Protocol 的簡稱&#xff0c;用于 Internet 上的控制文件的雙向傳輸。同時&#xff0…

SQL語句在MySQL中如何執行

MySQL的基礎架構 首先就是客戶端&#xff0c;其次Server服務層&#xff0c;大多數MySQL的核心服務都在這一層&#xff0c;包括連接、分析、優化、緩存以及所有的內置函數&#xff08;時間、日期、加密函數&#xff09;&#xff0c;所有跨存儲引擎功能都在這一層實現&#xff1…

ragflow連不上ollama的解決方案

由于前期wsl默認裝在C盤&#xff0c;后期部署好RagFlow后C盤爆紅&#xff0c;在連接ollama的時候一直在轉圈圈&#xff0c;問其他人沒有遇到這種情況&#xff0c;猜測是因為內存不足無法加載模型導致&#xff0c;今天重新在E盤安裝wsl 使用wsl裝Ubuntu Win11 wsl-安裝教程 如…

力扣-漢明距離

1.兩個整數之間的 漢明距離 指的是這兩個數字對應二進制位不同的位置的數目。 給你兩個整數 x 和 y&#xff0c;計算并返回它們之間的漢明距離。 看到這題&#xff0c;當然想到了按位異或^,并且c內置了計算二進制數中1數量的函數__builtin_popcount() class Solution { publ…

關于成功插入 SQLite 但沒有數據的問題

背景 技術棧&#xff1a;SpringBoot Mybatis-flex SQLite 項目中集成了SQLite&#xff0c;配置如下&#xff1a; spring:datasource:url: jdbc:sqlite::resource:db/project.dbdriver-class-name: org.sqlite.JDBC在進行測試時&#xff0c;使用Mybatis-flex往表中插入數據&…

C#常見錯誤—空對象錯誤

System.NullReferenceException&#xff1a;未將對象引用設置到對象的實例 在C#編程中&#xff0c;System.NullReferenceException是一個常見的運行時異常&#xff0c;其錯誤信息“未將對象引用設置到對象的實例”意味著代碼試圖訪問一個未被初始化或已被設置為null的對象的成…

沁恒CH32V208藍牙串口透傳例程:修改透傳的串口;UART-CH32V208-APP代碼分析;APP-CH32V208-UART代碼分析

從事嵌入式單片機的工作算是符合我個人興趣愛好的,當面對一個新的芯片我即想把芯片盡快搞懂完成項目賺錢,也想著能夠把自己遇到的坑和注意事項記錄下來,即方便自己后面查閱也可以分享給大家,這是一種沖動,但是這個或許并不是原廠希望的,盡管這樣有可能會犧牲一些時間也有哪天原…

Scala的隱式對象

Scala中&#xff0c;隱式對象&#xff08;implicit object&#xff09;是一種特殊的對象&#xff0c;它可以使得其成員&#xff08;如方法和值&#xff09;在特定的上下文中自動可用&#xff0c;而無需顯式地傳遞它們。隱式對象通常與隱式參數和隱式轉換一起使用&#xff0c;以…

矩陣的乘(包括乘方)和除

矩陣的乘分為兩種&#xff1a; 一種是高等代數中對矩陣的乘的定義&#xff1a;可以去這里看看包含矩陣的乘。總的來說&#xff0c;若矩陣 A s ? n A_{s*n} As?n?列數和矩陣 B n ? t B_{n*t} Bn?t?的行數相等&#xff0c;則 A A A和 B B B可相乘&#xff0c;得到一個矩陣 …

DVWA親測sql注入漏洞

LOW等級 我們先輸入1 我們加上一個單引號&#xff0c;頁面報錯 我們看一下源代碼&#xff1a; <?php if( isset( $_REQUEST[ Submit ] ) ) { // Get input $id $_REQUEST[ id ]; // Check database $query "SELECT first_name, last_name FROM users WHERE user_id …

C++,提供函數接口,函數如何做到接收外部變量隨時結束

在C中&#xff0c;如果你想要創建一個函數&#xff0c;該函數可以接收外部變量并在變量改變時作出響應&#xff0c;你可以使用回調函數或者將變量包裝在可以觀察其變化的設計模式中&#xff0c;例如觀察者模式。 以下是一個使用標準庫中的std::function和std::bind來創建響應外…

機器學習01-發展歷史

機器學習01-發展歷史 文章目錄 機器學習01-發展歷史1-傳統機器學習的發展進展1. 初始階段&#xff1a;統計學習和模式識別2. 集成方法和核方法的興起3. 特征工程和模型優化4. 大規模數據和分布式計算5. 自動化機器學習和特征選擇總結 2-隱馬爾科夫鏈為什么不能解決較長上下文問…

想了解操作系統,有什么書籍推薦?

推薦一本操作系統經典書&#xff1a; 操作系統導論 《操作系統導論》虛擬化(virtualization)、并發(concurrency)和持久性(persistence)。這是我們要學習的3個關鍵概念。通過學習這3個概念&#xff0c;我們將理解操作系統是如何工作的&#xff0c;包括它如何決定接下來哪個程序…

[Collection與數據結構] 位圖與布隆過濾器

&#x1f338;個人主頁:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;?熱門專欄: &#x1f9ca; Java基本語法(97平均質量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection與…

【大數據學習 | 面經】Spark的shuffle hash join的具體細節

1. 前言 shuffle hash join是Spark中一種常見的連接策略&#xff0c;尤其適用于兩個數據集都比較大且無法通過廣播來優化的情況。其核心思想是通過對連接鍵進行哈希分區&#xff0c;使得相同鍵值的數據被分配到相同的分區中&#xff0c;從而可以在每個分區獨立的執行連接操作。…

設計模式從入門到精通之(一)工廠模式

工廠模式&#xff1a;為每個工廠找到"生意經" 在現實生活中&#xff0c;我們隨處可見"工廠"的影子&#xff0c;比如汽車工廠生產汽車&#xff0c;食品工廠生產食品。但你有沒有想過&#xff0c;為什么我們需要工廠&#xff1f;如果沒有工廠&#xff0c;我們…

談談你對vue這種框架理解

發現寶藏 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。【寶藏入口】。 Vue.js 是一個漸進式的前端 JavaScript 框架&#xff0c;旨在通過提供易于理解、上手簡單且功能強大的工具來構建現代化的 Web …

使用html2canvas實現前端截圖

一、主要功能 網頁截圖&#xff1a;html2canvas通過讀取DOM結構和元素的CSS樣式&#xff0c;在客戶端生成圖像&#xff0c;不依賴于服務端的渲染。它可以將指定的DOM元素渲染為畫布&#xff08;canvas&#xff09;&#xff0c;并生成圖像。多種輸出格式&#xff1a;生成的圖像…

微信小程序橫屏頁面跳轉后,自定義navbar樣式跑了?

文章目錄 問題原因&#xff1a;解決方案&#xff1a; 今天剛遇到的問題&#xff0c;橫屏的頁面完成操作后跳轉頁面后&#xff0c;自定義的tabbar樣式亂了&#xff0c;跑到最頂了&#xff0c;真機調試后發現navbar跑到手機狀態欄了&#xff0c;它正常應該跟右邊膠囊一行。 知道問…