我的ASP.NET學習筆記011SqlServer基礎知識

来源:https://www.cnblogs.com/yigegaozhongsheng/archive/2018/08/05/9426898.html
-Advertisement-
Play Games

sqlServer_基礎概念 SQL server的管理工具 SQL server聯機叢書 開始菜單à Microsoft SQL Server 2008 à 文檔和教程 à SQL Server聯機叢書 SQL Server 配置管理器 用於啟動和管理SQL server資料庫的服務端,以及其他相 ...


sqlServer_基礎概念

SQL server的管理工具

SQL server聯機叢書

開始菜單à Microsoft SQL Server 2008 à 文檔和教程 à SQL Server聯機叢書

SQL Server 配置管理器

用於啟動和管理SQL server資料庫的服務端,以及其他相關功能。

當我們啟動SQL Server 配置管理器之後,可以在左側目錄中看到“SQL Server服務”,在“SQL Server服務”里,我們就可以對SQL Server的服務端,也就是核心數據引擎進行管理。

其中SQL Server (MSSQLSERVER)” 和 “SQL Server (SQLEXPRESS)”就是代表我們所安裝的具體的服務端,前者是正式版,後者是體驗版。

打開Server配置管理器的另一種方法:

“我的電腦”à右鍵菜單à管理à”服務和應用”àSQL Server配置管理器

SQL server profiler

當我們的數據服務端出現問題和故障的時候,它可以給我們提供實時的跟蹤工具,和性能監控的作用。

SQL Server Management Studio

它就是SQL server的圖形化的管理界面,也就是客戶端。

啟動Management Studio

在登陸界面輸入相關的信息:

伺服器類型:資料庫引擎

伺服器名稱:我們可以輸入IP地址, 電腦名稱。如果是訪問本機的SQL server服務並且沒有改變預設埠號的話,只需要輸入一個點 ” . ”,它就代表本機的SQL Server正式版的服務端。(體驗版是.\SQLEXPRESS)

身份驗證:SQL Server身份驗證

用戶名:sa

密碼:sa

SQL Server身份驗證無法登陸時

1、 windows身份驗證(也就是用本機管理員來登陸,不需要輸入用戶名密碼的)。

2、 展開左側目錄中的 SQL Server à 安全性 à 登陸名 à 雙擊sa à 打開sa 用戶的屬性視窗。

3、 修改密碼

4、 取消”強制實施密碼策略”

5、 “狀態”選項卡中,對“是否允許連接到數據引擎”和“登陸”分別選擇“授予”和“啟動”。

6、 點擊確定關閉sa 用戶的屬性視窗

7、 右鍵點擊伺服器根節點,選擇屬性打開“伺服器屬性”彈窗

8、 選擇“安全性”選項卡,設置“伺服器身份驗證”為“SQL ServerWindows身份驗證”。

9、 確定並關閉“伺服器屬性”彈窗,然後在SQL server配置管理器中重啟數據服務端,再用sql server 帳戶密碼來登陸即可。

SQL Management Studio的界面操作

左側目錄中,我們可以創建資料庫數據表。

左上角的新建查詢按鈕,可以打開一個輸入與執行SQL語句的視窗。在此視窗中我們可以通過按F5鍵或點擊“執行”來運行SQL語句。 在輸入多條SQL語句的情況下,可以選中需要執行的代碼,然後按F5來只執行被選中的部分。

sqlcmd命令行管理工具

通過純指令的方式來管理SQL server資料庫服務端。

開始菜單à 運行à輸入cmd打開命令行視窗à輸入sqlcmd /? 查看sqlcmd命令的幫助信息。

在該命令行下我們可以通過sql語句來操作資料庫。

比如:

sqlcmd

use test

select * from student

go

最後,必須輸入go才會開始執行SQL語句。exit退出sqlcmd命令行狀態。

修改數據表結構

很多時候我們需要修改數據表欄位結構,比如添加欄位、修改欄位類型和欄位名,但是SQL server預設情況下會阻止我們對數據表結構的修改。所以我們需要更改SQL Server的設置參數。

工具菜單à 選項à 打開”選項”彈窗中的”Designers”選項卡à取消”阻止保存要求重新創建表的更改”前面的選中狀態。

T-SQL基本語法

select語句

語法:

SELECT 欄位列表 FROM 表名

where子句

where運算符

=,>,<,>=,<=,<>,!=,!>,!<

<>表示不等於,!>不大於。

AND ORNOT

 

BETWEEN

select * from student 

where age BETWEEN 13 AND 19

 

查詢指定的數據值是否在第一個值和第二個值的範圍內。

LIKE

select * from student 

where name LIKE '%%'

 

 

模糊查詢,可以使用通配符,

%用來表示任意個任意字元,

_ 下劃線用來表示一個字元。

 

select * from student 

where name LIKE '_'

 

 

 

IN

是指從一個集合中去逐一匹配,只要數據值在集合中能找到相同的項,where條件就成立了。

 

select * from student 

where name IN ('小張','小黑','小平','小李')

 

----------------------------------

select * from student 

where name IN (select name from student where age <20)

 

 

 

 

 

EXISTS

用來判斷一個子查詢是否有結果,當子查詢返回了至少一個結果時,where條件成立。

 

select * from student 

where exists(select * from student where age =99)

 

 

 

group by子句

將指定欄位中的相同的值進行分組。值相同的只顯示一行。

示例1

SELECT age,COUNT(name) from student group by age

示例2

sql server 中所顯示的欄位列表中,不能使用group by後面沒有出現過的欄位名,除非使用聚合函數。

SELECT age,address,COUNT(name) from student group by age,address

order by子句

比如倒序排序

SELECT * from studentorder by id DESC

top子句

Having子句

用來給分組設置條件

示例:

SELECT age,name from student group by age,name having name = '小李'

DISTINCT子句

清除並返回結果中重覆的值。

SELECT DISTINCT age from student

insert into插入數據

一次插入一行數據

insert into student (name,age,sex,address,phone) values('小寶',13,1,'城革大本營',12345678)

一次插入多行數據

insert into student (name,age,sex,address,phone) values
('大寶',28,1,'城革大本營',12345678),
('小寶',13,1,'城革大本營',12345678),
('老寶',82,1,'城革大本營',12345678);

省略欄位名按表的欄位順序來插入數據

insert into student values('小白樓',60,1,'沙坪壩',12345678)

註意:這種方式必須按照表的欄位順序(除了主鍵ID)來排列語句中的欄位值,並且所有欄位都必須填寫值

聚合函數

AVG() 求平均值

SUM() 求合

MIN()/MAX() 求最大最小值

COUNT() 統計行數

UPDATE語句

update dbo.student set name='小白龍' where id = 14

DELETE語句

delete dbo.student where id=14

練習

創建一張學生數據表,包含欄位idnameagesexaddressphoneclassNum

1、 一次性插入5條學生數據,並且不寫欄位名。

2、 select語句查詢ID2ID4之間的記錄,(BETWEEN關鍵字)

3、 查詢出所有姓王的同學(LIKE模糊查詢)

4、 查詢出班上年齡為(16172324)的同學

5、 統計各班分別有多少名學生

6、 分別統計男生與女生的年齡總合。

7、 找到年齡最大的女生。

8、 修改id3的學生姓名為”李小蟲”

9、 刪除id3的學生。

連接查詢

同時查詢多張數據表並將這些數據表以一定的邏輯關係進行連接,讓它們顯示的結果類似於一張數據表。

與連接有關的關鍵字:

INNER JOINOUTER JOIN ( LEFT和RIGHT)、FULL JOINCROSS JOIN

 

內部連接

它根據一個或幾個相同的欄位將記錄匹配在一起,將這兩張表中的數據一起查詢出來。

內部連接的特點是,只顯示有關聯的數據,但是沒有關係的數據是不會被顯示出來的。

語法:

SELECT <欄位列表> FROM <第一張表> <連接類型> <第二張表> <ON 連接條件>

二表連接,示例:

select * from student INNER JOIN class ON student.cid = class.id

多表連接,示例:

select student.name,classInfo.className,teacher.name from student
INNER JOIN 
classInfo  ON student.cid = classInfo.cid
INNER JOIN 
teacher ON classInfo.teacher= teacher.tid

多表連接的使用別名,省略as

select s.name,c.className,t.name from student as s
INNER JOIN 
classInfo as c  ON s.cid = c.cid
INNER JOIN 
teacher as t ON c.teacher= t.tid

我們可以通過as關鍵字來給數據表定義一個別名,而且通過這個別名調用表中的欄位。

註意:只要定義了別名,就必須使用別名,原表的名字就不能再用了。

而且as關鍵字是可以省略的:

select s.name,c.className,t.name from student  s
INNER JOIN classInfo  c  ON s.cid = c.cid
INNER JOIN teacher  t ON c.teacher= t.tid

補充:內部連接的INNER JOIN可以簡化為JOIN ,效果是一樣的。

外部連接

內部連接有一定的排他性,第二張表是對第一張表的補充,如果第一張表不需要第二張表中的某些數據,那麼第二張表中不被需要的數據就不會被顯示出來。

語法:

SELECT <欄位列表> FROM <左表><LEFT | RIGHT > [OUTER] JOIN <右表> ON <連接條件>

如果使用LEFT就是顯示左表中的所有數據,如果使用Right就是顯示右表中的所有數據

示例:

select *from student as s RIGHT JOIN Class Info as c  ON s.cid = c.cid

多部外部連接示例:

select * from student  s RIGHT JOIN classInfo  c  ON s.cid = c.cid
LEFT JOINteacher t ON c.teacher=t.tid

完全連接

完全連接( FULL JOIN FULL OUTER JOIN )

用於顯示所連接的所有表的所有數據,即使這條數據沒有任何關聯關係。

select *from student  s FULL JOIN classInfo  c  ON s.cid = c.cid

練習:

1、 先重做上課時講的例子。

2a、 假設現在製作一個超市購物系統,產品信息表(product)(idnameprice)、用戶表(customer)(idname)、購物清單表(saleList)(id、產品編號pid、用戶編號cid)

2b、 用一條select語句查詢某個用戶的購清單上的所有產品。

2c、 用一條select語句查詢得到某個用戶的購清單上的所有產品的總價。

 

3a、假設現在製作一個電影院的數據查詢系統,坐位表(site)(idrowcol)、客戶表(customer)(idnamephoneNum)、電影票(ticket)(idcidsidmid)、電影表(movie)(idnamemtime)

3b、查詢某一場電影的所有坐位上的客戶的信息。

3c、查詢某一場電影的所有坐位上的客戶的信息,並且顯示空坐位。

(如何判斷一個欄位的值為NULL值:

select * from movie where name is nullselect s.id,c.name from dbo.ticket t
join dbo.customer c on t.cid=c.id
join dbo.movie m on t.mid=m.id
right join dbo.site s on t.sid = s.id
where m.id=1
union
select id,'無座' as name  from site where id not in
(select site.id from ticket
join dbo.customer on ticket.cid=customer.id
join dbo.movie on ticket.mid=movie.id
right join dbo.site on ticket.sid = site.id
where movie.id=1)

3d、查詢某一個客戶看過的所有電影的名稱。

子查詢

它是指一個select查詢語句,並不是直接從數據表中來得到數據,而是從另外一個查詢語句的結果集中來進行查詢。

示例:

select s.name,s.age,s.sex from (

select * from student where sex = 0

) as s

where age >20

其中,在from關鍵字的後面,並不是數據表而是select語句。

交叉連接

交叉連接在本質上,也可以看做是一種內連接。只顯示有一關聯的數據。

示例

--內連接寫法

select * from classInfo

inner join teacher

on classInfo.teacher=teacher.tid

 

--交叉連接寫法

select * from classInfo,teacher

where classInfo.teacher=teacher.tid

 

 

兩者的結果是一樣的

 

聯合UNION

使用兩個或兩個以上查詢合併後只返回一個結果集

比如:

得到班上年齡大於20和所有男生的合集

select * from student where age>20

union

select * from student where sex = 1

 

 

前提每條select語句返回的欄位列表的個數和順序必須是一致的。

 

聯合後返回重覆的數據

union聯合後的結果自動去除掉多個select結果中的重覆數據,如果需要重覆顯示這些重覆數據,我們可以使用union all關鍵字:

select * from student where age>20

union all

select * from student where sex = 1

 

創建與修改資料庫、表

 

SQL Server中的對象名

多數情況下我們使用的是數據表或資料庫的簡寫形式,實際上SQL server中的數據表有4層命名約定。

[數據伺服器名.[資料庫名.[模式名.]]] 對象名

.test.dbo.student

資料庫伺服器名:預設是指當前已登陸的這個數據伺服器。

資料庫名:預設是指在客戶端左上角的下拉列表中已選擇的資料庫名,或用use 指令指定資料庫。

use test select * from student where sex = 1

模式名

SQL server對象可以擁有兩種模式名。

第一種模式:該對象擁有的許可權的用戶。

第二種模式:預設dbo,允許多個登陸用戶共用的一種訪問模式。

模式所代表的就是訪問許可權,通常我們使用預設的dbo模式。

CREATE語句

它用來創建資料庫對象

語法:

CREATE <對象類型> <對象名稱>

CREATE DATABASE news

CREATE TABLE newContext( id int )

CREATE DATABASE創建資料庫

新創建的資料庫,除了創建者、系統管理員、資料庫所有者以外,其他人都無法訪問。

CREATE DATABASE 的完整語法

CREATE DATABASE
[
[ON | PRIMARY ]
(
[NAME = ‘實例名’ ,]
[FILENAME = ‘文件名’ ,]
[SIZE = 文件大小 ,]
[MAXSIZE = 文件最大容量]
)
]
[
[ON | PRIMARY ]
(
[NAME = ‘實例名’ ,]
[FILENAME = ‘文件名’ ,]
[SIZE = 文件大小 ,]
[MAXSIZE = 文件最大容量]
)
]
 [COLLATE <核對名稱>]
[FOR ATTACH [ WITH <server broker> ||FROM ATTACH_REBUILD_LOG ||WITH DB_CHAINING ON|OFF|TRUSTWORTHY ON|OFF  ]]
[AS SNAPSHOT OF<源資料庫名>]
ON

 

用在兩個地方:一是定義資料庫文件的位置。二是定義數據日誌庫文件的位置。

PRIMARY 關鍵字用於指定多個資料庫文件中的主文件。

NAME 指定文件的實例名稱。也就是在資料庫的邏輯名(非物理文件名)

FILENAME 就是指數據文件的物理位置和文件名,mdf(資料庫)  ldf(日誌文件)

SIZE 資料庫大小,可以在數字後面用KBGB表示資料庫的大小。

MAXSIZE 最大小容量。

 

COLLATE

用於處理排序和字母大小寫等問題

 

FOR ATTACH

將已存在的一些資料庫文件附加到當前伺服器上。當前,這個文件必須是資料庫的一部分。

 

WITH DB_CHAINING

跨越資料庫所有權

 

TRUSTWORTHY

sql server資料庫文件添加安全層

創建資料庫示例:

CREATE DATABASE TESE22BB
ON
(
NAME =TEST22BB,
FILENAME = 'e:\test22bb.mdf',
SIZE =30MB,
MAXSIZE = 50MB
)
LOG ON
(
NAME = 'TEST22BBLOG',
FILENAME='e:\test22bb.ldf',
SIZE = 10MB,
MAXSIZE = 20MB
)
GO

 

 

用這種方式,我們可以在指定的硬碟或U盤路徑之下創建資料庫。

 

註意:如果需要對資料庫文件進行複製、剪切或刪除操作。

 

查看資料庫信息

EXEC sp_helpdb ‘test’

以類似查詢語句的結果集的方式返回資料庫的大小、擁有者、創建日期、文件路徑等信息。

 

CREATE TABLE創建數據表

CREATE TABLE 數據表名

創建表之前確定是否已經選擇當前資料庫

 

完整語法

CREATE TABLE [資料庫.[資料庫所有者]] 數據表名
(
<欄位名><欄位的數據類型>
[DEFAULT <預設值表達式>]
|
[IDENTITY [seed,increment][NOT FOR REPLICATION] ]
[ROWGUIDCOL]
[COLLATE<COLLATION NAME>]
[PRIMARY KEY]
[NULL | NOT NULL]
[<column constraint 欄位約束>]
|
[table_constraint 表約束]
|
[欄位名 as 計算列表達式]
)
[ON (<文件組>)|DEFAULT]
[TEXTIMAGE_ON(<文件組>)|DEFAULT]
 

 

DEFAULT 預設值

指該欄位在沒有輸入值的情況下預設使用的值。

IDENTITY標識、自增量

預設情況下,每條記錄自動增加1

NOT FOR REPLICATION

就是指對這個表進行複製的時候,ID主鍵的值是重新排列,還是延用之前的ID

ROWGUIDCOL

是指將一個表中的數據複製到另一個表中時,如果產生ID重覆情況下,應用如何處理。

COLLATE

用於處理排序和字母大小寫等問題。

PRIMARY KEY

設置該欄位為主鍵

NULL/NOT NULL

是否允許為空

欄位約束

對欄位中輸入的數據進行規則的限制。

計算列

可以創建一個本身沒有任何數據的列,這個列的值由其他列來動態的生成。

比如:

PCount AS price*num

這裡我們就定義了一個計算列,總價=單價*數量

 

註意:

1、不能計算主鍵、外鍵、唯一鍵

2、只能引用當前數據表中的欄位

 

表約束

對插入表的數據進行限制

ON

如果資料庫由多個部分組成,我們可以指定數據表存儲在哪個部分。

TEXTIMAGE_ON

ON的作用類似,但是它只有在表中有TextImage類型的欄位時才有效。

創建數據表的示例:

use testStudent2;

CREATE TABLE student(

sid int IDENTITY PRIMARY KEY NOT NULL,

sName nvarchar(50) NOT NULL,

sAge int,

sSex bit  DEFAULT 0 NOT NULL,

sYW float DEFAULT 0 NOT NULL,

sSX float DEFAULT 0 NOT NULL,

sCount AS sYW+sSX

)

 

練習:

創建一個產品銷售表,欄位如下:pidpname(產品名稱)、pPrice(產品價格)pNum(產品銷售數量)pCount(產品銷售總價= pPrice* pNum),用CREATE語句創建這個數據表。

 

ALTER修改語句

ALTER <數據對象類型><數據對象名稱>

ALTER DATABASE 修改資料庫

修改資料庫名

ALTER DATABASE test MODIFY NAME = test22

將資料庫test改名為test22

修改資料庫大小

ALTER DATABASE test MODIFY FILE (SIZE = 500MB)

註意:不能變小,只能增大它的容量。

ALTER TABLE 修改數據表

最常見的操作就是修改數據表名和表中的欄位。

 

添加欄位

ALTER TABLE dbo.student

ADD --這個關鍵字代表添加

phoneNum char(20) DEFAULT '00000000',

sAddress nvarchar(100) ,

createTime DateTime DEFAULT GETDATE()

--GETDATE()代表獲取系統當前時間

修改欄位名

EXEC sp_rename ‘表名.原欄位名’ , ’新欄位名’ , ’COLUMN

示例:

EXEC sp_rename 'student.createTime','regTime','COLUMN'

修改欄位類型

ALTER TABLE 表名 ALTER COLUMN 欄位名 類型

示例:

ALTER TABLE dbo.student

ALTER COLUMN sAge nvarchar(30)

刪除欄位

ALTER TABLE 表名 DROP COLUMN 欄位名

示例:

ALTER TABLE dbo.student

DROP COLUMN sAddress

欄位的值會被一起刪除

修改表名

EXEC sp_rename ‘原表名’,’新表名’

示例:

EXEC sp_rename 'student','studentInfo'

DROP語句

刪除資料庫對象,比如:刪除數據表、視圖、存儲過程、觸發器

語法:

DROP <數據對象> <數據對象名>

DROP語句可以同時刪除多張數據表

DROP TABLE 表1,表2,….

示例:

drop table table1,table2,table3

DROP

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 入門參考https://docs.microsoft.com/zh-cn/windows-server/get-started/nano-server-quick-start 1、創建VHD Import-module .\NanoServerImageGenerator.psm1 -Verbose... ...
  • 1、squid代理: 緩存網頁,減少重覆請求,加快訪問速度,隱藏真實ip 代理的分類: 傳統代理:使用Internet和內網,客戶端需明確指定代理伺服器。 透明代理:使用於內網訪問外網,指定代理伺服器,但必須指定網關,網管配置iptables策略,將埠重定向到代理伺服器埠。 2、squid和na ...
  • (microsoft.vscode.cpp.extension.darwin進程高cpu占用問題) 免費的vs code現在已經成為mac/linux平臺的碼農新寵,畢竟從windows平臺開發virsul studio多年的經驗積累不是白給的。 我也從諸多的代碼編輯器環境,逐漸遷移、統一到了vs ...
  • 一、版本說明 1.1、MySQL相關連接 MySQL官網:https://www.mysql.com/ MySQL下載:https://dev.mysql.com/downloads/mirrors/ MySQL文檔:https://dev.mysql.com/doc/relnotes/mysql/... ...
  • 資料庫編程 從前面我們知道資料庫概念包含 資料庫文件、伺服器和資料庫客戶端 客戶端我們之前已經用過的有navicat/mysql-client等程式。 問題: 如何使用客戶端將100000行數據插入到資料庫? 大家會發現如果用之前客戶端幾乎是不可能完全這個任務的, 因為我們不可能去構造出那個插入10 ...
  • 該文章是基於 Hadoop2.7.6_01_部署 、 Hive-1.2.1_01_安裝部署 進行的 1. 前言 在一個完整的大數據處理系統中,除了hdfs+mapreduce+hive組成分析系統的核心之外,還需要數據採集、結果數據導出、任務調度等不可或缺的輔助系統,而這些輔助工具在hadoop生態 ...
  • 占座 ...
  • 1197多語句事務要求更大的max_binlog_cache_size報錯 binlog_cache_size:為每個session 分配的記憶體,在事務過程中用來存儲二進位日誌的緩存,提高記錄bin-log的效率。沒有什麼大事務,dml也不是很頻繁的情況下可以設置小一點,如果事務大而且多,dml操作 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...