認(rèn)識數(shù)據(jù)

前言:學(xué)習(xí)數(shù)據(jù)開始~


1.PlayerPrefs類(是數(shù)據(jù)持久化的類,像游戲中的存檔啊什么的)

(1)是個靜態(tài)類,所以可以類名.調(diào)用此類里面的方法

(2)修改數(shù)據(jù):類名.SetXXX(鍵,值)

<1>XXX可以是Int、Float、String三個類型中的任意一個

<2>鍵,是一個字符串類型的值

<3>值,是一個與XXX類型對應(yīng)的值,我們修改這個值,這個值與鍵是對應(yīng)的

(3)讀取數(shù)據(jù):類名.GetXXX(鍵,值)

<1>鍵,是一個字符串類型的值,相當(dāng)于我們查找的時候用的索引,我們在Get的時候,只需要把鍵的值放在GetXXX方法中的參數(shù)位置就可以查找到跟鍵相對應(yīng)的值

<2>值,是一個默認(rèn)的值,可以不寫這個參數(shù),默認(rèn)是0;寫了的話,就是默認(rèn)的值就你寫的值,

<4>這個值是可以通過Set修改的,一旦修改就是修改的值,關(guān)掉程序依舊存在,修改完之后把Set的語句刪除也還是修改完之后的值,不會影響,除非你使用刪除方法

(4)判斷是否存在鍵:類名.HasKey(鍵)

(5)刪除數(shù)據(jù):類名.DeleteKey(鍵)

(6)當(dāng)該鍵沒有Set的時候,我們使用Get去得到數(shù)據(jù)有以下幾種情況:

<1>如果Get方法中沒有寫默認(rèn)值,該鍵中存儲的是相應(yīng)類型的默認(rèn)值(float、int的默認(rèn)值是0,string的默認(rèn)值是null)

<2>如果Get方法中寫了默認(rèn)值,那么該鍵中存儲的就是這個默認(rèn)值

(7)一般數(shù)據(jù)讀取用在初始化數(shù)據(jù)的Start開始方法中,而修改數(shù)據(jù)一般放在Update更新方法中

代碼貼圖

2.TXT


(1)主要寫了創(chuàng)建文件、讀取文件、刪除文件

(2)using System.IO; ? //對文件輸入輸出操作的命名空間

<1>StreamWrite類(寫入流)

1)以行的形式寫入信息:對象.WriteLine(信息);

2)關(guān)閉寫入流:對象.Close();

3)銷毀寫入流:對象.Dispose();

<2>StreamReader類(讀取流)

1)關(guān)閉讀取流:對象.Close();

2)銷毀讀取流:對象.Dispose();

<3>File靜態(tài)類

1)刪除文件:類名.Delete(文件絕對路徑);

2)是否存在文件:類名.Exists(文件絕對路徑);

3)創(chuàng)建文本:類名.CreateText(文件絕對路徑);

4)添加文本:類名.AppendText(文件絕對路徑);

<4>FileInfo類(文本)

1)文本是否存在:對象.Exists

2)創(chuàng)建文本:對象.CreateText();

3)添加文本:對象.AppendText();

4)打開文本:對象.OpenText();

(3)異常

<1>try{需要檢查是否存在異常的代碼塊}catch(System.Exception){捕獲到異常之后進行的操作}

(4)ArrayList (通過集合讀取每一行的信息)

<1>添加元素:對象.Add(添加的元素);

(5)using UnityEditor;

<1>刷新Unity編輯界面:AssetDataBase.Refresh();

(6)判斷平臺做出對應(yīng)處理

<1>方法一:預(yù)編譯處理、預(yù)編譯命令、宏命令

#if。。。#endif

<2>判斷程序的平臺是否是當(dāng)前在運行的平臺:

1)程序的平臺:Application.platform

2)運行的平臺:RuntimePlatform.枚舉成員(不同的平臺)

(7)數(shù)據(jù)路徑:Application.dataPath

在不同的平臺上的結(jié)果不同:

Unity 編輯器:<工程文件夾的路徑>/Assets

Mac播放器:<到播放器應(yīng)用的路徑>/Contents

iPhone播放器:<到播放器應(yīng)用的路徑>//Data

Win播放器:< 包含可執(zhí)行播發(fā)器的文件夾的路徑>\Data

網(wǎng)絡(luò)播放器:到播放器數(shù)據(jù)文件夾的絕對路徑(沒有實際的數(shù)據(jù)文件名稱)

Flash: 到播放器數(shù)據(jù)文件夾的絕對路徑(沒有實際的數(shù)據(jù)文件名稱)

借鑒文章:http://wiki.ceeger.com/script:unityengine:classes:application:application.datapath

(6)File和FileInfo的區(qū)別

File是靜態(tài)類,對應(yīng)整個文件系統(tǒng)進行操作,方法均為靜態(tài)方法,如果只對文件進行少量的操作,如判斷文件是否存在,或者對很多文件進行操作, 建議使用File類,因為可以避免頻繁的創(chuàng)建和釋放對象,可以減少系統(tǒng)的開銷,

?FileInfo是普通類,它對應(yīng)一個具體的文件進行操作,方法大部分是普通方法,它里面的操作可能也調(diào)用了File靜態(tài)類的方法,如果只對一個文件進行大量操作,建議使用FileInfo類

在安全檢查方面,通過File類去調(diào)用的方法,都要占用CPU一定的時間進行安全檢查,即使使用File類不同的方法重復(fù)的對一個文件進行訪問時,也是如此。而FileInfo類只在創(chuàng)建對象時,執(zhí)行一次安全檢查

代碼貼圖

3.CSV

(1)右擊桌面背景創(chuàng)建Excel文件

(2)在里面輸入內(nèi)容,中間空幾行,以備后用,凡事留一線

(3)點擊文件,另存為,選擇另存為的路徑(切記這里不能直接強制把Excel文件的文件擴展名修改成csv或txt類型的,因為xlsx類型是以二進制格式進行存儲的,csv和txt類型是以文本格式進行存儲的,不同類型強制更改文件擴展名,打開會出現(xiàn)亂碼)

(4)保存類型選擇CSV UTF-8(逗號分隔),點擊保存,會提示你是否修改格式點擊是

(5)為了方便觀察,我們把文件的文件擴展名顯示出來

(6)首先文件圖標(biāo)不同,其次文件擴展名不同,其三.xlsx是以二進制格式存儲,.csv是以文本格式存儲

(7)因為csv和txt都是文本存儲格式,所以我們可以直接強制把csv類型更改成txt類型

(8)更改之后,打開是這個樣子,每一列以逗號分隔開

(9)把Test.txt文本拖到Unity編輯器中

(10)代碼控制:通過行數(shù)和列名找到要找的信息

這里如果是用的動態(tài)加載則需要在Unity編輯器中創(chuàng)建Resources文件夾,在代碼中寫的路徑要跟Unity編輯器中的Resources文件夾底下的路徑對應(yīng)上,不然會找不到目標(biāo)文件

<1>TextAsset類

1)顯示文本信息:對象.text

2)切割字符串:字符串對象.Split(以一個字符串切割);

<2>字符串?dāng)?shù)組:string[] 數(shù)組名

<3>字符串交錯數(shù)組:string[][] 數(shù)組名

<4>其他類型轉(zhuǎn)換成string類型:

方法一:string 對象名=其他類型的對象名.ToString();

方法二:string 對象名=string.Format("占位符",其他類型的對象名);

<5>轉(zhuǎn)換類型:轉(zhuǎn)換的類型.Parse(被轉(zhuǎn)換的類型);

<6>單例模式:

1)聲明一個單例:public static 此腳本類型 對象;

2)單例對象實例化為掛載此腳本的游戲?qū)ο?;對?this;

3)單例的使用:通過其他腳本中>>腳本名.單例對象.腳本中方法>>調(diào)用這個方法

找到要找的信息并打印

(11)隨便把腳本掛載到一個游戲?qū)ο笊砩?,然后運行就會在控制臺打印出信息


4.JSON

(1)簡介

JSON 指的是 JavaScript 對象表示法(JavaScriptObjectNotation)

JSON 是輕量級的文本數(shù)據(jù)交換格式

JSON 獨立于語言:JSON 使用 Javascript語法來描述數(shù)據(jù)對象,但是 JSON 仍然獨立于語言和平臺。JSON 解析器和 JSON 庫支持許多不同的編程語言。 目前非常多的動態(tài)(PHP,JSP,.NET)編程語言都支持JSON。

JSON 具有自我描述性,更易理解

參考網(wǎng)址:http://www.runoob.com/json/json-tutorial.html

JSON 是純文本

JSON 具有"自我描述性"(人類可讀)

JSON 具有層級結(jié)構(gòu)(值中存在值)

JSON 可通過 JavaScript 進行解析

JSON 數(shù)據(jù)可使用 AJAX 進行傳輸

(2)語法

<1>JSON 語法規(guī)則

JSON 語法是 JavaScript 對象表示法語法的子集。

1)數(shù)據(jù)在名稱/值對中

2)數(shù)據(jù)由逗號分隔

3)大括號保存對象

4)中括號保存數(shù)組

<2>JSON 名稱/值對

JSON 數(shù)據(jù)的書寫格式是:名稱/值對。

名稱/值對包括字段名稱(在雙引號中),后面寫一個冒號,然后是值

<3>JSON 值

JSON 值可以是:

1)數(shù)字(整數(shù)或浮點數(shù))

2)字符串(在雙引號中)

3)邏輯值(true 或 false)

4)數(shù)組(在中括號中)

5)對象(在大括號中)

6)null

(3)使用

<1>創(chuàng)建一個Plugins(插件)文件夾,系統(tǒng)會先執(zhí)行它里面的東西,比Awake方法之前執(zhí)行,引用LitJson.dll文件,放在Plugins文件夾下

<2>選中LitJson,勾選上Any Platform(所有平臺)

<3>通過代碼:寫入Json文本到文件、讀取Json文本、從文件中讀取Json文本

用字符串類型的一個對象來接收J(rèn)son文本,用@取消轉(zhuǎn)義

1)調(diào)用json操作的命名空間:using LitJson;

1.1)JsonMapper類

1.1.1)Json字符串轉(zhuǎn)換成對象,用JsonData類型的對象接收:JsonMapper.ToObject(字符串對象);

1.1.2)對象轉(zhuǎn)換成Json對象,用string類型的對象接收:JsonMapper.ToJson(對象);

1.2)JsonData類

1.2.1)讀取一個對象的值:對象[鍵]

1.2.2)讀取一個對象的某個數(shù)組元素中的值:對象[數(shù)組鍵][數(shù)組元素的索引值][當(dāng)前數(shù)組元素的鍵]

1.2.3)讀取一個對象的數(shù)組元素的個數(shù):對象[數(shù)組鍵].Count

1.3)JsonWriter類

1.3.1)開始寫入一組數(shù)據(jù):對象.WriteObjectStart();

1.3.2)結(jié)束寫入一組數(shù)據(jù):對象.WriteObjectEnd();

//以上相當(dāng)于Json文本中的一對花括號

1.3.3)鍵:對象.WritePropertyName(鍵);

1.3.4)值:對象.Write(值);

//以上相當(dāng)于Json文本中的一組鍵值對,先寫鍵再寫值

1.3.5)開始寫入數(shù)組:對象.WriteArrayStart();

1.3.6)結(jié)束寫入數(shù)據(jù):對象.WriteArrayEnd();

//以上相當(dāng)于Json文本中的一組方括號

2)調(diào)用System.Text的命名空間:using System.Text;

2.1)StringBuilder類(修改字符串)

2.1.1)String 對象是不可改變的。每次使用 System.String 類中的方法之一時,都要在內(nèi)存中創(chuàng)建一個新的字符串對象,這就需要為該新對象分配新的空間。在需要對字符串執(zhí)行重復(fù)修改的情況下,與創(chuàng)建新的 String 對象相關(guān)的系統(tǒng)開銷可能會非常昂貴。如果要修改字符串而不創(chuàng)建新的對象,則可以使用 System.Text.StringBuilder 類。

相關(guān)StringBuilder文章:www.jb51.net/article/45832.htm

3)調(diào)用System.IO的命名空間:using System.IO;

3.1)DirectoryInfo類

3.1.1)給對象實例化所在路徑構(gòu)造方法:new DirectoryInfo(路徑);

3.1.2)是否存在:對象.Exists

3.1.3)創(chuàng)建目錄:對象.Create();

3.2)SteamWriter類

3.2.1)寫入數(shù)據(jù)信息:對象.WriteLine(信息對象);

3.2.2)關(guān)閉寫入流:對象.Close();

3.3.3)銷毀寫入流:對象.Dispose();

3.3)File類

3.3.1)編輯文本:對象.AppendText(絕對路徑);

3.3.2)創(chuàng)建文本:對象.CreateText(絕對路徑);


5.XML

5.1XML概念

XML 指可擴展標(biāo)記語言(eXtensibleMarkupLanguage)。

XML 被設(shè)計用來傳輸和存儲數(shù)據(jù)。

HTML 則被設(shè)計用來顯示數(shù)據(jù)。

XML 是獨立于軟件和硬件的信息傳輸工具。

XML 是各種應(yīng)用程序之間進行數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ摺?/p>

5.2XML用途

XML 應(yīng)用于 Web 開發(fā)的許多方面,常用于簡化數(shù)據(jù)的存儲和共享。

(1)XML 把數(shù)據(jù)從 HTML 分離

如果您需要在 HTML 文檔中顯示動態(tài)數(shù)據(jù),那么每當(dāng)數(shù)據(jù)改變時將花費大量的時間來編輯 HTML。

通過 XML,數(shù)據(jù)能夠存儲在獨立的 XML 文件中。這樣您就可以專注于使用 HTML/CSS 進行顯示和布局,并確保修改底層數(shù)據(jù)不再需要對 HTML 進行任何的改變。

通過使用幾行 JavaScript 代碼,您就可以讀取一個外部 XML 文件,并更新您的網(wǎng)頁的數(shù)據(jù)內(nèi)容。

(2)XML 簡化數(shù)據(jù)共享

<1>在真實的世界中,計算機系統(tǒng)和數(shù)據(jù)使用不兼容的格式來存儲數(shù)據(jù)。

XML 數(shù)據(jù)以純文本格式進行存儲,因此提供了一種獨立于軟件和硬件的數(shù)據(jù)存儲方法。

這讓創(chuàng)建不同應(yīng)用程序可以共享的數(shù)據(jù)變得更加容易。

(3)XML 簡化數(shù)據(jù)傳輸

<1>對開發(fā)人員來說,其中一項最費時的挑戰(zhàn)一直是在互聯(lián)網(wǎng)上的不兼容系統(tǒng)之間交換數(shù)據(jù)。

由于可以通過各種不兼容的應(yīng)用程序來讀取數(shù)據(jù),以 XML 交換數(shù)據(jù)降低了這種復(fù)雜性。

(4)XML 簡化平臺變更

<1>升級到新的系統(tǒng)(硬件或軟件平臺),總是非常費時的。必須轉(zhuǎn)換大量的數(shù)據(jù),不兼容的數(shù)據(jù)經(jīng)常會丟失。XML 數(shù)據(jù)以文本格式存儲。這使得 XML 在不損失數(shù)據(jù)的情況下,更容易擴展或升級到新的操作系統(tǒng)、新的應(yīng)用程序或新的瀏覽器。

(5)XML 使您的數(shù)據(jù)更有用

<1>不同的應(yīng)用程序都能夠訪問您的數(shù)據(jù),不僅僅在 HTML 頁中,也可以從 XML 數(shù)據(jù)源中進行訪問。通過 XML,您的數(shù)據(jù)可供各種閱讀設(shè)備使用(掌上計算機、語音設(shè)備、新聞閱讀器等),還可以供盲人或其他殘障人士使用。

(6)XML 用于創(chuàng)建新的互聯(lián)網(wǎng)語言

<1>很多新的互聯(lián)網(wǎng)語言是通過 XML 創(chuàng)建的。

5.3XML樹結(jié)構(gòu)

XML 文檔形成了一種樹結(jié)構(gòu),它從"根部"開始,然后擴展到"枝葉"。

5.4XML語法

(1)XML 必須包含根元素,它是所有其他元素的父元素

(2)XML 聲明文件的可選部分,如果存在需要放在文檔的第一行

(3)在 XML 中,省略關(guān)閉標(biāo)簽是非法的。所有元素都必須有關(guān)閉標(biāo)簽

(4)XML 標(biāo)簽對大小寫敏感。必須使用相同的大小寫來編寫打開標(biāo)簽和關(guān)閉標(biāo)簽

(5)在 XML 中,所有元素都必須彼此正確地嵌套。

(6)在 XML 中,XML 的屬性值必須加引號。

(7)在 XML 中,一些字符擁有特殊的意義。

如果您把字符 "<" 放在 XML 元素中,會發(fā)生錯誤,這是因為解析器會把它當(dāng)作新元素的開始.

為了避免這個錯誤,請用實體引用來代替 "<" 字符

(8)XML 中的注釋:<!--注釋的內(nèi)容-->

(9)在 XML 中,空格會被保留,在 XML 中,文檔中的空格不會被刪減。

(10)XML 以 LF 存儲換行

<1>在 Windows 應(yīng)用程序中,換行通常以一對字符來存儲:回車符(CR)和換行符(LF)。

<2>在 Unix 和 Mac OSX 中,使用 LF 來存儲新行。

<3>在舊的 Mac 系統(tǒng)中,使用 CR 來存儲新行。

<4>XML 以 LF 存儲換行

(11)XML 元素:指的是從(且包括)開始標(biāo)簽直到(且包括)結(jié)束標(biāo)簽的部分。

5.5代碼:

學(xué)習(xí):創(chuàng)建XML、添加XML、更改XML、讀取XML

代碼貼圖

命名空間:

(1)using System.Xml;

類:XmlDocument(XML文檔)、XmlNode(XML節(jié)點)、XmlElement(XML元素節(jié)點)、XmlNodeList(XML節(jié)點集合)

<1>XmlDocument

1)對象.CreateXmlDeclaration(版本號,所使用的編碼,null);

2)把一個XmlNode類型的對象添加到對象當(dāng)中:對象.AppendChild(節(jié)點對象);

3)創(chuàng)建一個元素節(jié)點:對象.CreateElement(元素節(jié)點的名字);

4)保存文檔:對象.Save(保存的路徑);

5)加載文檔:對象.Load(加載的路徑);

6)選擇單個節(jié)點:對象.SelectSingleNode(節(jié)點的名字);

7)查找單個節(jié)點的所有子節(jié)點:對象.SelectSingleNode(節(jié)點的名字).ChildNodes;

<2>XmlNode

1)把其他節(jié)點添加到此節(jié)點中,作為此節(jié)點的子節(jié)點:此節(jié)點對象.AppendChild(其他節(jié)點);

<3>XmlElement

1)創(chuàng)建屬性:對象.SetAttribute(屬性名字,屬性值);

2)創(chuàng)建文本節(jié)點:對象.InnerText=文本信息;

<4>XmlNodeList

(2)using System.IO;

類:File(靜態(tài)類)

<1>File

1)是否存在:File.Exists(路徑)

(3)using UnityEditor;

類:AssetDatabase(靜態(tài)類)

<1>AssetDatabase

1)刷新Unity編輯器界面:AssetDatabase.Refresh();

(4)創(chuàng)建XML:把腳本隨便掛載到游戲?qū)ο笊砩?點擊運行,點擊game窗口,按下A鍵時,5.xml的目錄中多了一個ChatData.xml文件,文件內(nèi)容如圖

(5)添加XML:繼續(xù)按下B鍵,右擊工程視圖,點擊Refresh刷新,ChatData中的內(nèi)容多了一部分

(6)更改XML:繼續(xù)按下C鍵,右擊菜單刷新,發(fā)現(xiàn)紅框部分更改了

(7)讀取XML:繼續(xù)按下D鍵,控制臺打印了節(jié)點的屬性name的值和節(jié)點的文本節(jié)點

(8)XML數(shù)據(jù)生成步驟

<1>引進C#的命名空間System.Xml

<2>生成XML文檔(XmlDocument類)

<3>生成根元素(XmlElement類)添加給文檔對象

<4>循環(huán)生成子元素添加給父元素

<5>將生成的XML文檔保存

6.SQL

增、改、查、刪

(1)SQL編輯器安裝

點擊SQL安裝包,依次默認(rèn)點擊即可


此時,我們的安裝目錄下就會多出SQL編輯器的軟件

(2)新建一個數(shù)據(jù)庫文本

<1>雙擊SQL編輯器圖標(biāo)打開編輯器,彈出窗口點擊ok

<2>創(chuàng)建一個新的數(shù)據(jù)庫

<3>選擇文件保存的位置以及保存的文件名稱

(3)通過SQL編輯器添加列表以及列名

<1>點擊Design,點擊左下角的加號

<2>彈出窗口,我們把Table Name(表名)改為user,點擊加號添加表中的列,下方的窗口顯示的是對應(yīng)的SQL語句

<3>雙擊要修改的地方可以修改,Type右邊有個下拉菜單可以選擇數(shù)據(jù)類型,上面的修改也會影響下面的SQL語句

<4>在表中添加5個列,分別修改列的值類型,點擊創(chuàng)建

<5>此時列表如圖

(4)通過SQL語句添加列表以及列名

<1>點擊SQL,輸入創(chuàng)建列表的SQL語句>>create table "列表名"("列名1" 列值類型1,"列名2" 列值類型2,·····,"列名n" 列值類型n);

<2>點擊Execute,左下角顯示對號,說明運行成功

<3>引號加與不加無影響

<3>點擊Design,多了一個名為guest的table,點擊guest,也有添加的列名,對應(yīng)下面的窗口中的SQL語句跟剛剛寫的SQL語句相同

(5)通過SQL編輯器添加值

<1>點擊Data,點擊user,點擊加號

<2>彈出窗口,分別點擊每一行的列名在下方的窗口里添加內(nèi)容,注意內(nèi)容要與后面的數(shù)據(jù)類型相匹配,添加完所有列的值(也就是一行的值),這里必須要添加所有的值才能添加,最后點擊保存

<3>完成后的界面

(6)通過SQL語句添加值

<1>點擊SQL,輸入添加值的SQL語句>>insert into "列表名" (列名1,列名2,······,列名n) values(列值1, 列值2,·····, 列值n);

如果不寫列名,默認(rèn)是全部列名

<2>點擊Execute執(zhí)行SQL語句

完成后的界面

(7)通過編輯器修改值

點擊要修改的地方,會彈出一個窗口,把里面的值改為你想要的,然后Update修改更新

完成后的界面

(8)通過SQL語句修改值

<1>點擊SQL,輸入修改值的SQL語句>>update "列表名" set 列名1=值1,列名2=值2,······,列名n=值n ?where 條件表達式

<2>點擊Execute執(zhí)行SQL語句

完成后的界面

(9)通過SQL語句篩選值

<1>點擊SQL,輸入篩選值的SQL語句>>select* from "列表名" where 條件表達式

*代表顯示所有滿足條件表達式的列值,也可以把*換成其他的列名,意思是顯示滿足條件表達式的列的列值

<2>下方窗口是篩選顯示的值

(10)通過編輯器刪除一行數(shù)據(jù)

<1>選中user,選中一行,點擊最下面的減號

彈出的窗口點擊Yes
完成后的界面

(11)通過SQL語句刪除一行數(shù)據(jù)>>delete from 列表名 where 條件表達式

完成后的界面
再刷新一下就沒了

(12)通過SQL語句刪除一個列表>>drop table "列表名"

完成后的界面

總結(jié):

增:insert into "列表名" (列名1,列名2,······,列名n) values(列值1, 列值2,·····, 列值n);

刪:delete from 列表名 where 條件表達式

改:update "列表名" set 列名1=值1,列名2=值2,······,列名n=值n ?where 條件表達式

查:select* from "列表名" where 條件表達式

(13)簡單基本的SQL語句:

(1) 數(shù)據(jù)記錄篩選:

sql="select * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]"

sql="select * from 數(shù)據(jù)表 where 字段名 like '%字段值%' order by 字段名 [desc]"

sql="select top 10 * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]"

sql="select top 10 * from 數(shù)據(jù)表 order by 字段名 [desc]"

sql="select * from 數(shù)據(jù)表 where 字段名 in ('值1','值2','值3')"

sql="select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2"

(2) 更新數(shù)據(jù)記錄:

sql="update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達式"

sql="update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式"

(3) 刪除數(shù)據(jù)記錄:

sql="delete from 數(shù)據(jù)表 where 條件表達式"

sql="delete from 數(shù)據(jù)表" (將數(shù)據(jù)表所有記錄刪除)

(4) 添加數(shù)據(jù)記錄:

sql="insert into 數(shù)據(jù)表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"

sql="insert into 目標(biāo)數(shù)據(jù)表 select * from 源數(shù)據(jù)表" (把源數(shù)據(jù)表的記錄添加到目標(biāo)數(shù)據(jù)表)

(5) 數(shù)據(jù)記錄統(tǒng)計函數(shù):

AVG(字段名) 得出一個表格欄平均值

COUNT(*;字段名) 對數(shù)據(jù)行數(shù)的統(tǒng)計或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計

MAX(字段名) 取得一個表格欄最大的值

MIN(字段名) 取得一個表格欄最小的值

SUM(字段名) 把數(shù)據(jù)欄的值相加

引用以上函數(shù)的方法:

sql="select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達式"

set rs=conn.excute(sql)

用 rs("別名") 獲取統(tǒng)計的值,其它函數(shù)運用同上。

查詢?nèi)コ貜?fù)值:select distinct * from table1

(5) 數(shù)據(jù)表的建立和刪除:

CREATE TABLE 數(shù)據(jù)表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )

(6) 單列求和:

SELECT SUM(字段名) FROM 數(shù)據(jù)表

參考SQL語句大全:https://baike.so.com/doc/3210900-3383815.html

7.SQL的深入

(1)要想在C#中使用數(shù)據(jù)庫,我們需要先做一些準(zhǔn)備工作

<1>在Plugins文件夾下添加三個動態(tài)庫Mono.Data.Sqlite.dll,System.Data.dll,sqlite3.dll

1)先在Assets下新建Plugins(插件文件夾)文件夾。將Unity的安裝目錄C:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0

下的Mono.Data.Sqlite.dll,System.Data.dll拷貝至剛才新建的文件夾Plugins 下

2)在電腦中搜索sqlite3.dll,可能會有多個同名文件,我們要那個在Unity目錄下的,這個是我們自己設(shè)定Unity文件所在的位置,實在不行可以去官網(wǎng)下載 http://www.sqlite.org/download.html

3)右擊打開文件所在的位置,將sqlite3.dll拷貝至Plugins 文件夾下。

關(guān)于這三個動態(tài)庫文件,參考文章:http://blog.csdn.net/glunoy/article/details/52037598

<2>修改三個動態(tài)庫的信息

1)分別選中三個動態(tài)庫,修改信息,勾選Any Platforms(任意平臺),unity設(shè)定中CPU選擇Any CPU,OS選擇Any OS

2)下載平臺全部勾選

3)最后點擊Apply應(yīng)用,這樣我們就可以在C#中使用數(shù)據(jù)庫了

(2)引入要添加的數(shù)據(jù)庫文件

(3)創(chuàng)建腳本文件

<1>命名空間:using Mono.Data.Sqlite;

類:SqliteConnection、SqliteCommand、SqliteDataReader

1)SqliteConnection

1.1)創(chuàng)建一個與數(shù)據(jù)庫鏈接的鏈接對象:SqliteConnection(數(shù)據(jù)庫路徑);

1.2)打開數(shù)據(jù)庫:對象.Open();

1.3)創(chuàng)建數(shù)據(jù)庫命令:對象.CreateCommand();

1.4)關(guān)閉數(shù)據(jù)庫鏈接:對象.Close();

1.5)銷毀數(shù)據(jù)庫鏈接:對象.Dispose();

2)SqliteCommand

2.1)輸入命令文本:對象.CommandText=信息;

2.2)執(zhí)行SQL語句方法一:

受到影響的的行數(shù),此方法只能用來增刪改:對象.ExecuteNonQuery();

2.3)執(zhí)行SQL語句方法二:

當(dāng)有多個查詢結(jié)果,只返回第一行第一列的值,此方法在查詢結(jié)果只有一個的時候使用,對象.ExecuteScalar();

2.4)執(zhí)行SQL語句方法三:

可以返回多個或所有信息,對象.ExecuteReader();

3)SqliteDataReader

3.1)當(dāng)前行是否有可讀信息:對象.Read();

3.2)可讀的行數(shù):對象.FieldCount;

<2>命名空間:using UnityEngine;

類:Application

1)Application

1.1)找到要鏈接的數(shù)據(jù)庫所在的目錄:"Data Source="+Application.streamingAssetsPath+"StreamingAssets目錄下的目錄"

8.WWW

(1)簡單使用WWW類

<1>代碼貼圖:

<2>WWW類:

1)創(chuàng)建一個鏈接路徑的WWW對象:WWW(本地鏈接或者時網(wǎng)絡(luò)鏈接);

本地鏈接:需要在路徑前面加file://

網(wǎng)絡(luò)鏈接:服務(wù)器鏈接

2)錯誤:對象.error

3)是否在做:對象.isDone

4)圖片信息:對象.texture

5)卸載:對象.Dispose();

<2>IEnumerator協(xié)程

等待對象完成操作:yield return 一個對象;


最后:這里不奇怪了,按理說數(shù)據(jù)庫什么應(yīng)該時挺多的,但我們這里是針對游戲開發(fā),而在游戲開發(fā)中需要的并不多,基本操作即可。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容