12.視圖

目錄

?1.視圖的含義與作用

2.視圖的創建與查看

1.創建視圖的語法形式

2、查看視圖:

1.使用DESCRIBE語句查看視圖基本信息

2.使用SHOW TABLE STATUS語查看視圖基本信息查看視圖的信息

3.使用SHOW CREATE VIEW語查看視圖詳細信息

4.在views表中查看視圖詳細信息

3.視圖的修改與更新

1.使用CREATE OR REPLACE VIEW語句修改視圖MYSQL中如果要修改視圖

2.使用ALTER語修改視圖

1、使用UPDATE語句更新視圖view_t,

2、使用INSERT語句在基本表t中插入一條記錄

3、使用DELETE語刪除視圖view_t2中的一條記錄,

4.刪除視圖:

5.練習題


?1.視圖的含義與作用

數據庫中的視圖是一個虛擬表。同真實的表一樣,視圖包含一系列帶有名稱的行和列數據。

行和列數據來自由定義視圖查詢所引用的表,并且在引用視圖時動態生成。

在視圖中用戶可以使用SELECT語查詢數據,以及使用INSERT、UPDATE和DELETE修改記錄。

從MySOL 5.0開始可以使用視圖,視圖可以使用戶操作方便,而且可以保障數據庫系統的安全。

視圖的含義:

視圖一經定義便存儲在數據庫中,與其相對應的數據并沒有像表那樣在數據庫中再存儲一份,

通過視圖看到的數據只是存放在基本表中的數據。對視圖的操作與對表的操作一樣,可以

對其進行查詢、修改和刪除。當對通過視圖看到的數據進行修改時,相應的基本表的數據也要發生變化;同時,若基本表的數據發生變化,則這種變化也可以自動地反映到視圖中。

下面有個student表和stu_info表,在student 表中包含了學生的id 號和姓名,stu_info

表中包含了學生的id 號、班級和家庭住址,而現在公布分班信息,只需要id 號、姓名和班

級,這該如何解決?通過學習后面的內容就可以找到完美的解決方案。

表設計如下:

CREATE TABLE student 
( s_id INT, name VARCHAR(40) 
); 
CREATE TABLE stu_info 
( s_id INT, 
glass VARCHAR(40), addr VARCHAR(90) 
); 

通過 DESC 命令可以查看表的設計,可以獲得字段、字段的定義、是否為主鍵、是否

為默認值和擴展信息。

視圖提供了一個很好的解決方法,創建視圖的信息來自表的部分信息,只取需要的信息。

這樣既能滿足要求也不破壞表原來的結構。

視圖的作用:

與直接從數據表中讀取相比,視圖有以下優點:

1.簡單化

看到的就是需要的。視圖不僅可以簡化用戶對數據的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為視圖,從而使得用戶不必為以后的操作每次指定全部的條件

2.安全性

通過視圖用戶只能查詢和修改他們所能見到的數據。數據庫中的其他數據則既看不見

也取不到。數據庫授權命令可以使每個用戶對數據庫的檢索限制到特定的數據庫對象上,

但不能授權到數據庫特定行和特定的列上。通過視圖,用戶可以被限制在數據的不同

子集上:

(1)使用權限可被限制在基表的行的子集上。

(2)使用權限可被限制在基表的列的子集上。

(3)使用權限可被限制在基表的行和列的子集上。

(4)使用權限可被限制在多個基表的連接所限定的行上。

(5)使用權限可被限制在基表中的數據的統計匯總上。

(6)使用權限可被限制在另一視圖的一個子集上,或是一些視圖和基表合并后的子集上

3.邏輯數據獨立性

視圖可幫助用戶屏蔽真實表結構變化帶來的影響。

2.視圖的創建與查看

1.創建視圖的語法形式

創建視圖使用CREATE VIEW語句,基本語法格式如下:

CREATE [OR REPLACE] [ALGORITHM = { UNDEFINED | MERGE | TEMPTABLEI]

VIEW view_name [ (column list)]

AS SELECT_statement

[ WITH [CASCADED | LOCAL ] CHECK OPTION]

其中,CREATE表示創建新的視圖,REPLACE表示替換已經創建的視圖:

ALGORITHM表示視圖選擇的算法;view_name 為視圖的名稱,

column_list 為屬性列;SELECT_statement表示SELECT語句

WITH [CASCADED | LOCAL] CHECK OPTION 參數表示視圖在更新時保證在視圖的權限

范圍之內。

ALGORITHM的取值有3個分別是UNDEFINED|MERGE | TEMPTABLE ,UNDEFINED表示

MySOL將 自動選擇算法:MERGE表示將使用的視圖語句與視圖定義合并起來,使得視圖定義的某 一部分取代語句對應的部分;TEMPTABLE 表示將視圖的結果存入臨時表,然后用臨時表來執行語句。

CASCADED與LOCAL 為可選參數,CASCADED 為默認值,表示更新視圖時要滿足所有

相關視圖和表的條件;

LOCAL表示更新視圖時滿足該視圖本身定義的條件即可。該語句要求具有針對視圖的

CREATE VIEW權限,以及針對由SELECT語選擇的每一列上的某些權限。對于在SELECT 語句中其他地方使用的列,必須具有SELECT 權限。如果還有ORREPLACE子句,必須在視圖上具有DROP權限。

視圖屬于數據庫。在默認情況下,將在當前數據庫創建新視圖。要想在給定數據庫中明確創建視圖,

創建時應將名稱指定為db_name.view_name。

在單表上創建視圖,MySQL可以在單個數據表上創建視圖.

舉例:

在t表格上創建一個名為view_t的視圖,代碼如下:

create table t (qty int, price int); /*創建基本表t*/ 
insert into t values(3, 50); /*插入記錄*/ 
create view view_t as select qty, price, qty *price from t; /*創建視圖view_t*/ 
select * from view_t; 

默認情況下創建的視圖和基本表的字段是一樣的 也可以通過指定視圖字段的名稱來創建視圖。

舉例2:在t表格上創建一個名為view_t2的視圖,代碼如下:

create view view_t2(qty, price, total ) as select qty, price, qty *price from t; 
select * from view_t2; 

可以看到,view_t2和view_t兩個視圖中字段名稱不同,但數據卻是相同的。

因此,在使用視圖的時候,可能用戶根本就不需要了解基本表的結構,更接觸不到實際表中的數據,從而保證了數據庫的安全。

在多表上創建視圖 MySOL中也可以在兩個或者兩個以上的表上創建視圖可以使用CREATE VIEW語句實 現.

舉例:

在表student和表stu_info上創建視圖stu_glass,代碼如下:

create table student(
id int,
name char(50)
);create table stu_info(
id int,
glass char(50),
place char(50)
);insert into student values(1,'wanglin1'),(2,'gaoli'),(3,'zhanghai');
insert into stu_info values(1, 'wuban','henan'),(2,'liuban','hebei'), (3,'qiban','shandong');                
create view stu_glass (id,name, glass) 
as select student.id,student.name,stu_info.glass from student,stu_info 
where student.id=stu_info.id; 
select * from stu_glass; 

這個例子就解決了剛開始提出的那個問題,通過這個視圖可以很好地保護基本表中的

數據。

這個視圖中的信息很簡單,只包含了id、姓名和班級,id 字段對應student 表中的s_id

字段,

name字段對應student 表中的name 字段,glass字段對應stu_info表中的glass 字段。

2、查看視圖:

查看視圖是查看數據庫中已存在的視圖的定義。查看視圖必須要有 SHOW VIEW的權

限MySQL

數據庫下的 user 表中保存著這個信息。查看視圖的方法包括:DESCRIBE、SHOW

TABLE STATUS和SHOW CREATE VIEW,本節將介紹查看視圖的各種方法。

1.使用DESCRIBE語句查看視圖基本信息

DESCRIBE可以用來查看視圖,具體的語法如下:

DESCRIBE 視圖名;

舉例:通過DESCRIBE語句查看視圖view_t的定義,代碼如下:

describe view_t; 

結果顯示出了視圖的字段定義、字段的數據類型、是否為空、是否為主/外鍵、默認值

和額外信息。

DESCRIBE一般情況下都簡寫成DESC,輸入這個命的執行結果和輸入DESCRIBE的執行

結果是一樣的。

2.使用SHOW TABLE STATUS語查看視圖基本信息查看視圖的信息

可以通過SHOW TABLE STATUS 的方法,具體的語法如下:

SHOW TABLE STATUS LIKE ‘視圖名’

下面將通過一個例子來學習使用SHOW TABLE STATUS命令查看視圖信息,代碼如下:

show table status like 'view_t' \G;

show table status like 't' \G;

執行結果顯示,表的說明Comment 的值為 VIEW說明該表為視圖,其他的信息為NULI

說明這是一個虛表。

用同樣的語句來查看一下數據表t的信息,從查詢的結果來看,這里的信息包含了存儲引擎、創建時間等,

Comment 信息為空,這就是視圖和表的區別。

3.使用SHOW CREATE VIEW語查看視圖詳細信息

使用SHOW CREATE VIEW語可以查看視圖詳細定義,語法如下:

SHOW CREATE VIEW 視圖名 ;

舉例:SHOW CREATE VIEW查看視圖的詳細定義,代碼如下:

show create view view_t \G;

執行結果顯示視圖的名稱、創建視圖的語句等信息。

4.在views表中查看視圖詳細信息

在MySOL中,information_schema數據庫下的views 表中存儲了所有視圖的定義。

通過對 views表的查詢,可以查看數據庫中所有視圖的詳細信息,查詢語句如下:

select * from information_schema.views \G; 

查詢的結果顯示當前以及定義的所有視圖的詳細信息,在這里也可以看到前面定義的

3個名稱為stuglass、viewt和view t2視圖的詳細信息。

3.視圖的修改與更新

修改視圖是指修改數據庫中存在的視圖,當基本表的某些字段發生變化的時候,

可以通過修改視圖來保持與基本表的一致性。

MySOL 中通過CREATE OR REPLACE VIEW語和ALTER語句來修改視圖。

1.使用CREATE OR REPLACE VIEW語句修改視圖MYSQL中如果要修改視圖

語法如下 :

CREATE [ OR REPLACE ] (ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

VIEW view_name [(column_list)]

AS SELECT_statement

[WITH [CASCADED | LOCAL ] CHECK OPTION ]

可以看到,修改視圖的語句和創建視圖的語句是完全一樣的。當視圖已經存在時,

修改語句對視圖進行修改;當視圖不存在時,創建視圖。下面通過一個實例來說明。

修改視圖view_t,代碼如下:

desc view_t;
create or replace view view_t as select * from t;
desc view_t;

從執行的結果來看。相比原來的視圖 view_t,新的視圖 view_t少了1行數據。

2.使用ALTER語修改視圖

ALTER語句是MySOL提供的另外一種修改視圖的方法,語法如下:

ALTER [ ALGORITHM = { UNDEFINED | MERGE | EPTABLE}]

TVIEW view_name[(column list)]

AS SELECT_statement

[WITH [CASCADED | LOCAL] CHECK OPTION]

這個語法中的關鍵字和前面視圖的關鍵字是一樣的,這里就不再介紹

具體操作舉例:

使用ALTER語句修改視圖view_t,代碼如下:

desc view_t;
alter view view_t as select quantity from t;
desc view_t;

通過ALTER語句同樣可以達到修改視圖 view_t的目的,

從上面的執行過程來看,視圖viewt只剩下1個qty字段,修改成功。

更新視圖:

更新視圖是指通過視圖來插入、更新、刪除表中的數據,因為視圖是一個虛擬表,

其中沒有數據。通過視圖更新的時候都是轉到基本表上進行更新的,

如果對視圖增加或者刪除記錄,實際上是對其基本表增加或者刪除記錄。

本節將介紹視圖更新的3種方法:INSERT UPDATE和 DELETE。

1、使用UPDATE語句更新視圖view_t,

代碼如下:

select * from view_t; /*查看更新之前的視圖*/ 
select * from t; /*查看更新之前的表*/ 
update view_t set qty=5; /*更新視圖*/ 
select * from t; /*查看更新之后的表*/ 
select * from view_t; /*查看更新之后的視圖*/ 
select * from view_t2; 

對視圖view_t更新后,基本表t的內容也更新了,

同樣當對基本表t更新后,另外一個視圖view_t2中的內容也會更新。

2、使用INSERT語句在基本表t中插入一條記錄

代碼如下:

insert into t values(3,5);
select * from t;
select * from view_t2; 

向表t中插入一條記錄,通過SELECT 查看表t和視圖 view_t2,可以看到其中的內容也

跟著更新,

視圖更新的不僅僅是數量和單價,總價也會更新。

3、使用DELETE語刪除視圖view_t2中的一條記錄,

代碼如下

delete from view_t2 where price=5;

DELETE FROM view_t2 WHERE price=5;

執行結果如下:

在視圖view_t2中刪除price=5的記錄,視圖中的刪除操作最終是通過刪除基本表中相

關的記錄實現的,

查看刪除操作之后的表 t和視圖 view_t2,可以看到通過視圖刪除其所依賴的基本表中

的數據。

當視圖中包含有如下內容時,視圖的更新操作將不能被執行:

(1)視圖中不包含基表中被定義為非空的列。

(2)在定義視圖的SELECT語后的字段列表中使用了數學表達式。

(3)在定義視圖的SELECT語句后的字段列表中使用聚合函數

(4)在定義視圖的SELECT 語中使用了 DISTINCT,UNION,TOP,GROUP BY HAVING子句。

4.刪除視圖:

當視圖不再需要時,可以將其刪除,刪除一個或多個視圖可以使用 DROP VIEW 語

句,語法如下:

DROP VIEW [IF EXISTS]

view_name[,view_name]

[RESTRICT | CASCADE]

其中,view_name是要刪除的視圖名稱,可以添加多個需要刪除的視圖名稱,

各個名稱之間使用逗號分隔開。刪除視圖必須擁有DROP權限。

restrict和casecade都是數據庫外鍵約束,但它們之間存在一定的區別:

restrict是不允許刪除或更新一條記錄,而casecade則是在刪除或更新一條記錄時,

會同時刪除或更新所有引用該記錄的外鍵。

舉例:刪除stu_glass視圖,代碼如下:

drop view if exists stu_glass;
show create view stu_glass;

5.練習題

注意事項:

疑問:MySQL中視圖和表的區別以及聯系是什么?

1.兩者的區別

(1)視圖是已經編譯好的SOL語句,是基于SOL語的結果集的可視化的表,而表不是

(2)視圖沒有實際的物理記錄,而表有。

(3)表是內容,視圖是窗口。

(4)表占用物理空間而視圖不占用物理空間,視圖只是邏輯概念的存在,表可以及時對

它進行修改,

但視圖只能用創建的語句來修改。

(5)視圖是查看數據表的一種方法,可以查詢數據表中某些字段構成的數據,

只是一些 SQL語句的集合。從安全的角度來說,視圖可以防止用戶接觸數據表。

(6)表屬于全局模式中的表,是實表:視圖屬于局部模式的表,是虛表。

(7)視圖的建立和刪除只影響視圖本身,不影響對應的基本表。

2.兩者的聯系

視圖(view)是在基本表之上建立的表,它的結構(即所定的列)和內容(即所有記錄)都來

自基本表,

它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。

視圖是基本表的抽象和在邏輯意義上建立的新關系。

練習題:

(1)如何在一個表上創建視圖?

create table ts (qty int, price int); /*創建基本表ts*/
insert into ts values(4, 32); /*插入記錄*/
create view view_ts as select qty,price,qty*price from ts;/*創建視圖view_ts*/
select * from  view_ts; /*查看視圖 作用是 減少輸入操作*/

默認情況下創建的視圖和基本表的字段是一樣的 也可以通過指定視圖字段的名稱來創

建視圖。

create view view_ts1(qty,price,total) as select qty,price,qty * price from ts;select * from  view_ts1;

(2)如何在多個表上建立視圖?

create table student(
id int,
name char(50)
);create table stu_info(
id int,
glass char(50),
place char(50)
);insert into student values(1,'wanglin1'),(2,'gaoli'),(3,'zhanghai');
insert into stu_info values(1, 'wuban','henan'),(2,'liuban','hebei'), (3,'qiban','shandong');                
create view stu_glass (id,name, glass) 
as select student.id,student.name,stu_info.glass from student,stu_info 
where student.id=stu_info.id; 
select * from stu_glass; 

(3)如何更改視圖?

方法一

create or replace view stu_v_1 as select id,name,age from student where id <= 10;

方法二


alter view stu_v_1 select id,name from student  ;

(4)如何去查看視圖的詳細信息?

1.使用DESCRIBE語句查看視圖基本信息

describe view_t; 

2.使用SHOW TABLE STATUS語查看視圖基本信息查看視圖的信息

show table status like 'view_t' \G;

3.使用SHOW CREATE VIEW語查看視圖詳細信息

show create view view_t \G;

4.在views表中查看視圖詳細信息

select * from information_schema.views \G; 

(5)如何更新視圖的內容?

select * from view_t; /*查看更新之前的視圖*/ 
select * from t; /*查看更新之前的表*/ 
update view_t set qty=5; /*更新視圖*/ 
select * from t; /*查看更新之后的表*/ 
select * from view_t; /*查看更新之后的視圖*/ 
select * from view_t2; 

表結構

/*員工人事表*/
create table employee (emp_no char(5) Not null primary key check (emp_no LIKE 'E%' AND LEN(emp_no)=5),emp_name varchar(10) Not null,sex char(2) Not null check(sex IN('M','F')),dept varchar(4)	Not null,title varchar(6) Not null,date_hired datetime Not null,birthday datetime Null,salary	int	 Not null,addr varchar(50) null
);
/*客戶表*/
create table customer(cust_id char(5) Not null primary key,cust_name varchar(20) Not null,	addr varchar(40) Not null,	tel_no varchar(10) Not null,	zip char(6) null
);/*銷售主表*/
create table sales( order_no int Not null primary key,cust_id char(5) Not null,sale_id char(5) Not null,tot_amt numeric(9,2) Not null,	order_date datetime Not null,ship_date datetime Not null,invoice_no char(10) UNIQUE
);/*銷貨明細表*/
create table sale_item(order_no int Not null,prod_id char(5) Not null,qty int Not null,unit_price numeric(7,2) Not null,order_date datetime null
);
alter table sale_item add primary key(order_no,prod_id); /*產品名稱表*/
create table product(prod_id char(5) Not null primary key,prod_name varchar(20) Not null	
);

1、利用存儲過程,給Employee表添加一條業務部門員工的信息。

2、利用存儲過程輸出所有客戶姓名、客戶訂購金額及其相應業務員的姓名。

3、利用存儲過程查找某員工的員工編號、訂單編號、銷售金額。

4、編寫存儲過程完成插入一條員工記錄,判斷員工編號是否存在。

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

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

相關文章

【DP】Yarik and Array—CF1899C

Yarik and Array—CF1899C 一道不難的DP&#xff0c;根據代碼就能看出思路。 C o d e Code Code #include <bits/stdc.h> #define int long long #define sz(a) ((int)a.size()) #define all(a) a.begin(), a.end() using namespace std; using PII pair<int, int&…

codeforces

分析 刪去 k k k 個之后要是回文串&#xff0c;不過題目會給字符串rearrange&#xff0c;所以對于奇數個數的字符最多留一個&#xff0c;偶數的不用管。 Think Twice, Code Once #include<bits/stdc.h> #define il inline #define get getchar #define put putchar #…

SAP-PP:PP模塊新手顧問入門尋找解決方案途徑

在學習PP模塊時我們可以參考一下部分資源: SAP Help SAP Help SAP 幫助門戶是了解任何功能基礎知識的起點。在這里&#xff0c;您將了解每個功能可以做什么&#xff0c;以及如何使用每個功能的一些基本示例 F1 Help 每個事務中的每個字段都有自己的文檔&#xff0c;您可以通過…

案例015:基于微信小程序的校園防疫系統

文末獲取源碼 開發語言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 數據庫&#xff1a;mysql 5.7 開發軟件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序開發軟件&#xff1a;HBuilder X 小程序…

wangzherongyao milaidi

王者榮耀米萊狄&#xff0c; 1&#xff09;大多數人知道的是這個英雄很能拆塔&#xff0c; 2&#xff09;他也有個致命缺陷&#xff0c;當對面有前排&#xff0c;同樣拆塔的時候&#xff0c;他也清不動線&#xff0c;而且對于前排來說他的爆發力遠沒有安其拉等爆發型順傷秒傷…

論文閱讀_反思模型_Reflexion

英文名稱: Reflexion: Language Agents with Verbal Reinforcement Learning 中文名稱: 反思&#xff1a;具有言語強化學習的語言智能體 文章: http://arxiv.org/abs/2303.11366 代碼: https://github.com/noahshinn/reflexion 作者: Noah Shinn (Northeastern University) 日期…

docker 一鍵尋找容器在服務器存儲位置

docker ps -a找到容器id/容器名稱 docker inspect 容器id/容器名稱 | grep UpperDir找出該容器在物理機的位置 inspect作用:查看docker詳細信息 cd到UpperDir所指向的地址&#xff0c;找到配置文件并修改,到這后,這個位置和你用exec命令進入容器內看到文件是一致的

AtCoder Beginner Contest 328

A - Not Too Hard (atcoder.jp) AC代碼: #include<bits/stdc.h> #define endl \n //#define int long long using namespace std; const int N10; int s[N]; int n,x; void solve() {cin>>n>>x;for(int i1;i<n;i) cin>>s[i];int ans0;for(int i1;…

go-zero 開發之安裝 etcd

本文只涉及 Linux 上的安裝。 二進制安裝 下載二進制安裝包 #ETCD_VERv3.4.28 ETCD_VERv3.5.10 DOWNLOAD_URLhttps://github.com/etcd-io/etcd/releases/download INSTALL_DIR/tmprm -f ${INSTALL_DIR}/etcd-${ETCD_VER}-linux-amd64.tar.gz rm -rf ${INSTALL_DIR}/etcd-dow…

反匯編語言區分函數和運算符

在匯編語言中&#xff0c;函數和運算符可以通過一些特定的指令和約定來區分。 函數&#xff1a; 函數通常由一系列指令組成&#xff0c;用于執行特定的任務或操作。函數通常具有入口點和出口點&#xff0c;分別表示函數的開始和結束位置。函數通常包含參數傳遞、局部變量的分配…

windows錯誤事件 98、41、7000、55、153解決辦法

事件錯誤&#xff1a;98、55、153 疑難解答清單 在系統事件日志中&#xff0c;搜索新技術文件系統 (NTFS) 和磁盤相關的警告和錯誤。 例如&#xff0c;事件 ID 55、153 或 98。 管理員身份打開CMD&#xff0c;運行命令 chkdsk /scan 并檢查結果。 該 chkdsk /scan 命令是只讀…

字符串詳解+代碼分析

目錄 1. 字符與整數的聯系——ASCII碼每個常用字符都對應一個-128 ~ 127的數字&#xff0c;二者之間可以相互轉化。注意&#xff1a;目前負數沒有與之對應的字符。 2.字符數組 2.2 字符數組的常用操作下面幾個函數需要引入頭文件: 2.3 遍歷字符數組中的字符&#xff1a; 3.…

ICMP協議以及報文講解(ICMP查詢報文、ICMP差錯報文)

目錄 ICMP協議 ICMP報文格式 ICMP回顯請求/應答報文 ICMP差錯報文 ICMP 宿主機不可達差錯報文 ICMP 重定向差錯報文 ICMP TTL超時差錯報文 ICMP協議 ICMP協議的作用 ICMP&#xff08;Internet Control massage protocol&#xff09;因特網控制協議&#xff0c;主要用來…

C語言再學習 -- 單精度(float)和雙精度(double)浮點數 與 十六進制(HEX) 之間轉換(轉載))

之前講過浮點數部分&#xff0c;參看&#xff1a;C語言再學習 – 浮點數 現在程序中要將浮點數&#xff0c;通過TCP發送。那得先將其轉換為十六進制才行呀。 那么問題就來了。 參看&#xff1a;C語言&#xff1a;單精度(float)和雙精度(double)浮點數 與 十六進制(HEX) 之間…

(JAVA)-打印流

打印流是高級流&#xff0c;只能寫不能讀&#xff0c;只有輸出流 只操作文件目的地&#xff0c;不操作數據源 能實現數據的原樣輸出 printStream:字節打印流 構造方法&#xff1a; 用文件或地址的方式創建字節打印流也會創建一個字節基本流。 字節流底層沒有緩存區&#xff…

文檔或書籍掃描為 PDF:ScanPapyrus Crack

ScanPapyrus 可讓您快速輕松地將文檔或書籍掃描為 PDF&#xff0c;批處理模式使掃描過程快速高效&#xff0c;自動處理書籍并將其拆分為單獨的頁面 用于快速掃描文檔、書籍或打印照片的掃描儀軟件 快速掃描文檔 使用此掃描儀軟件&#xff0c;您無需在掃描儀和計算機之間來回移動…

SpringBoot 官方腳手架不再支持Java8和Java11

Spring 官方腳手架不再支持初始化 Java8 和 Java 11 項目&#xff0c;目前僅支持初始化Java17 和 Java21 項目。 阿里巴巴Spring腳手架支持初始化Java8、Java11、Java17、Java19 的項目&#xff0c;不支持初始化Java21的項目。

Torn Lucky Ticket

題目 #include<bits/stdc.h> using namespace std; #define int long long const int maxn 1e6 5, d 500; vector<string> vec[6]; int mp[1005]; signed main(){int n;cin >> n;for(int i 1; i < n; i){string s;cin >> s;int len s.size();…

java簡述springboot內置數據庫 并舉例啟動h2內存數據環境

在前面 我們講了 springboot 給我們提供了 默認的 數據源 默認 HikariCP 以及其他兩種內置數據源 持久化技術 JdbcTemplate 那么 說起來很多人難以置信 不過 springboot 也真的給我們內置了數據庫技術 而且不止一種 是三種 這三個數據庫的特點在于 它們都是用java語言寫的 就表…

28 動態規劃解按摩師的最長預約時間

問題描述&#xff1a;一名有名的按摩師會受到源源不斷的預約請求&#xff0c;每個預約都可以選擇接或者不接&#xff0c;在每次預約服務之間要有休息時間&#xff0c;因此不能接相鄰的預約&#xff0c;給定一個請求序列&#xff0c;按摩師找到最優的預約集合(總預約時間最長)&a…