資料庫只要有
① 都有哪些資料庫
有:
微軟的 sql server;IBM 的DB2、informix;甲骨文的 Oracle Database、MYSQL;
EMBARCADERO 的 interbase(firebird);..............
國內的 人大金倉、華科的達夢 ...................
② 什麼是資料庫
您好,你的問題,我之前好像也遇到過,以下是我原來的解決思路和方法,希望能幫助到你,若有錯誤,還望見諒!資料庫(Database)是按照 數據結構來組織、 存儲和管理數據的倉庫,它產生於距今六十多年前,隨著 信息技術和市場的發展,特別是二十世紀九十年代以後, 數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。資料庫有很多種 類型,從最簡單的存儲有各種數據的 表格到能夠進行海量 數據存儲的大型 資料庫系統都在各個方面得到了廣泛的應用。在信息化社會,充分有效地管理和利用各類信息資源,是進行科學研究和決策管理的前提條件。資料庫技術是管理信息系統、辦公自動化系統、決策支持系統等各類信息系統的核心部分,是進行科學研究和決策管理的重要技術手段。(2)資料庫只要有擴展閱讀:常用關系型資料庫產品介紹:一、Oracle前身叫SDL、由Larry Ellison和兩個變成任意在1977創辦,他們開發了主機的拳頭產品,在市場上大量銷售。Oracle公司是最早開發關系型資料庫的廠商之一,其產品支持最廣泛的操作系統平台。目前Oracle關系資料庫產品的市場佔有率數一數二 。Oracle公司是目前全球最大的資料庫軟體公司,也是近年業務增長極為迅速的軟體提供與服務商 主要應用范圍:傳統大企業、大公司、政府、金融、證券等。 二、MySQL被廣泛的應用在Internet上的大中小型網站中。由於體積小、速度快、總體擁有成本低,開放源代碼三、 Microsoft SQL Server是微軟公司開發的大型關系資料庫系統。SQL Server的功能比較全面,效率高,可以作為中型企業或單位的資料庫平台。SQL Server可以與Winodws操作系統緊密集成,不論是應用程序開發速度還是系統事務處理運行速度,都得到較大的提升,對於在Windows平台上開發的各種企業級信息管理系統來說,不論是C/S(客戶機/伺服器)架構還是B/S(瀏覽器/伺服器)架構。SQL Server都是一個很好的選擇。,非常感謝您的耐心觀看,如有幫助請採納,祝生活愉快!謝謝!
③ 數據倉庫與資料庫的主要區別有
首先我們來了解數據倉庫和資料庫分別是什麼:
1、資料庫:是一種邏輯概念,用來存放數據的倉庫,通過資料庫軟體來實現。資料庫由很多表組成,表是二維的,一張表裡面有很多欄位。欄位一字排開,對數據就一行一行的寫入表中。資料庫的表,在於能夠用二維表現多維的關系。如:oracle、DB2、MySQL、Sybase、MSSQL Server等。
2、數據倉庫:是資料庫概念的升級。從邏輯上理解,資料庫和數據倉庫沒有區別,都是通過資料庫軟體實現存放數據的地方,只不過從數據量來說,數據倉庫要比資料庫更龐大德多。數據倉庫主要用於數據挖掘和數據分析,輔助領導做決策;
區別主要總結為以下幾點:
1.資料庫只存放在當前值,數據倉庫存放歷史值;
2.資料庫內數據是動態變化的,只要有業務發生,數據就會被更新,而數據倉庫則是靜態的歷史數據,只能定期添加、刷新;
3.資料庫中的數據結構比較復雜,有各種結構以適合業務處理系統的需要,而數據倉庫中的數據結構則相對簡單;
4.資料庫中數據訪問頻率較高,但訪問量較少,而數據倉庫的訪問頻率低但訪問量卻很高;
5.資料庫中數據的目標是面向業務處理人員的,為業務處理人員提供信息處理的支持,而數據倉庫則是面向高層管理人員的,為其提供決策支持;
6.資料庫在訪問數據時要求響應速度快,其響應時間一般在幾秒內,而數據倉庫的響應時間則可長達數幾小時
④ 為什麼要有資料庫
為什麼要有資料庫?時代在發展,社會在進步。隨著時代的發展,節奏也是非常快的,必須有一個資料庫,如果沒有資料庫的話,辦任何事情是非常繁瑣和麻煩的。敵方所在六七十年代。沒有網路就沒有資料庫。而是靠著手抄手寫。進行各種材料的儲存,需要大量的人員。而且想要找什麼資料是很繁瑣很麻煩的。而且還佔用好多空間管理人員去維護管理。所以在新的時代。網路時代建立資料庫是非常有必要的。所以要想准確快捷的儲存查找各種資料,必須建立一個資料庫。這也是時代的發展所需要的。
⑤ 到底什麼是資料庫,還有各種資料庫的區別是什麼解釋的簡單點!
資料庫是用來存儲數據的。通常有SQL、MySQL等,這些是網站或者系統用來存儲數據的。mssql和mysql的區別
mssql 是微軟的那個 SQL Server,運行於windows 2000,2003等平台
mysql 是個開源的資料庫Server,可運行在windows平台、unix\\linux平台,其標准版是免費的,可以到www.mysql.com 看看
asp\\php只是一種解釋語言,不一定mssql不能用php,也不一定mysql非得用php,只不過asp-mssql,php-mysql是一種常用的組合
SQL資料庫完全手冊_1
SQL是Structured Quevy Language(結構化查詢語言)的縮寫。SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。在使用它時,只需要發出「做什麼」的命令,「怎麼做」是不用使用者考慮的。SQL功能強大、簡單易學、使用方便,已經成為了資料庫操作的基礎,並且現在幾乎所有的資料庫均支持SQL。
##1 二、SQL資料庫數據體系結構
SQL資料庫的數據體系結構基本上是***結構,但使用術語與傳統關系模型術語不同。在SQL中,關系模式(模式)稱為「基本表」(base table);存儲模式(內模式)稱為「存儲文件」(stored file);子模式(外模式)稱為「視圖」(view);元組稱為「行」(row);屬性稱為「列」(column)。名稱對稱如^00100009a^:
##1 三、SQL語言的組成
在正式學習SQL語言之前,首先讓我們對SQL語言有一個基本認識,介紹一下SQL語言的組成:
1.一個SQL資料庫是表(Table)的集合,它由一個或多個SQL模式定義。
2.一個SQL表由行集構成,一行是列的序列(集合),每列與行對應一個數據項。
3.一個表或者是一個基本表或者是一個視圖。基本表是實際存儲在資料庫的表,而視圖是由若干基本表或其他視圖構成的表的定義。
4.一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲上一個物理文件對應。
5.用戶可以用SQL語句對視圖和基本表進行查詢等操作。在用戶角度來看,視圖和基本表是一樣的,沒有區別,都是關系(表格)。
6.SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada語言等。SQL用戶也能作為獨立的用戶介面,供交互環境下的終端用戶使用。
##1 四、對資料庫進行操作
SQL包括了所有對資料庫的操作,主要是由4個部分組成:
1.數據定義:這一部分又稱為「SQL DDL」,定義資料庫的邏輯結構,包括定義資料庫、基本表、視圖和索引4部分。
2.數據操縱:這一部分又稱為「SQL DML」,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。
3.數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。
4.嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。
下面我們將分別介紹:
##2 (一)數據定義
SQL數據定義功能包括定義資料庫、基本表、索引和視圖。
首先,讓我們了解一下SQL所提供的基本數據類型:(如^00100009b^)
1.資料庫的建立與刪除
(1)建立資料庫:資料庫是一個包括了多個基本表的數據集,其語句格式為:
CREATE DATABASE <資料庫名> 〔其它參數〕
其中,<資料庫名>在系統中必須是唯一的,不能重復,不然將導致數據存取失誤。〔其它參數〕因具體資料庫實現系統不同而異。
例:要建立項目管理資料庫(xmmanage),其語句應為:
CREATE DATABASE xmmanage
(2) 資料庫的刪除:將資料庫及其全部內容從系統中刪除。
其語句格式為:DROP DATABASE <資料庫名>
例:刪除項目管理資料庫(xmmanage),其語句應為:
DROP DATABASE xmmanage
2.基本表的定義及變更
本身獨立存在的表稱為基本表,在SQL語言中一個關系唯一對應一個基本表。基本表的定義指建立基本關系模式,而變更則是指對資料庫中已存在的基本表進行刪除與修改。
(1)基本表的定義:基本表是非導出關系,其定義涉及表名、列名及數據類型等,其語句格式為:
CREATE TABLE〔<資料庫名>.〕<表名>
(<列名> 數據類型〔預設值〕 〔NOT NULL / NULL〕
〔,<列名> 數據類型 〔預設值〕 〔NOT NULL / NULL〕〕......
〔,UNIQUE (列名〔,列名〕......)〕
〔,PRIMARY KEY(列名)〕
〔,FOREIGN KEY(列名〔,列名〕......)REFERENCE <表名>(列名〔,列名〕......)〕
〔,CHECK(條件)〕 〔其它參數〕)
其中,〈資料庫名〉.〕指出將新建立的表存放於該資料庫中;
新建的表由兩部分組成:其一為表和一組列名,其二是實際存放的數據(即可在定義表的同時,直接存放數據到表中);
列名為用戶自定義的易於理解的名稱,列名中不能使用空格;
數據類型為上面所介紹的幾種標准數據類型;
〔NOT NULL/NULL〕指出該列是否允許存放空值,SQL語言支持空值的概念,所謂空值是「不知道」或「無意義」的值,值得注意的是數據「0」和空格都不是空值,系統一般默認允許為空值,所以當不允許為空值時,必須明確使用NOT NULL;
〔,UNIQUE〕將列按照其規定的順序進行排列,如不指定排列順序,則按列的定義順序排列;
〔PRIMARY KEY〕用於指定表的主鍵(即關系中的主屬性),實體完整性約束條件規定:主鍵必須是唯一的,非空的;
〔,FOREIGN KEY (列名〔,列名〕......) REFERENCE<表名>(列名〔,列名〕......)〕是用於指定外鍵參照完整性約束條件,FOREIGN KEY指定相關列為外鍵,其參照對象為另外一個表的指定列,即使用REFERENCE引入的外表中的列,當不指定外表列名時,系統將默認其列名與參照鍵的列名相同,要注意的是:使用外鍵時必須使用參照,另外數據的外鍵參照完整性約束條件規定:外鍵的值要麼與相對應的主鍵相同,要麼為空值(具體由實現系統不同而異)
〔,CHECK〕用於使用指定條件對存入表中的數據進行檢查,以確定其合法性,提高數據的安全性。
例:要建立一個學生情況表(student)
CREATE TABLE student //創建基本表student
(st_class CHAR(8),// 定義列st_class班級,數據類型為8位定長字元串
st_no CHAR(10) NOT NULL,//定義列st_no學號,類型為10位定長字元串,非空
st_name CHAR(8) NOT NULL,//定義列st_name姓名,類型為8位定長字元串,非空
st_sex CHAR(2),//定義列st_sex性別,類型為2位定長字元串
st_age SMALLINT,//定義列st_age年齡,類型為短整型
PRIMARY KEY (st_no))//定義st_no學號為主鍵。
例:要建立課程設置表(subject)
CREATE TABLE subject//創建基本表subject
(su_no CHAR(4) NOT NULL,// 定義列su_no課號,類型為4位定長字元串,非空
su_subject CHAR(20) NOT NULL,// 定義列su_subject課程名,類型為20位定長字元串,非空
su_credit INTEGER,// 定義列su_credit學分,類型為長整數
su_period INTEGER,//定義列su_period學時,類型為長整數
su_preno CHAR(4),//定義列su_preno先修課號,類型為4位定長字元串
PRIMARY KEY(su_no))//定義su_no課號為主鍵。
例:要建立學生選課表(score)
CREATE TABLE score //創建基本表score
(st_no CHAR(10),//定義列st_no學號,類型為10位定長字元串
su_no CHAR(4),//定義列su_no課號,類型為4位定長字元串
sc_score INTEGER NULL,//定義列sc_score,類型為長整形,可以為空值
FOREIGN KEY (st_no) REFERENCE student,//從表student中引入參照外鍵st_no,以確保本表與表student的關聯與同步
FOREIGN KEY (suno) REFERENCE subject)//從表subject中引入參照外鍵su_no,以確保本表與表subject的關聯與同步
(2)基本表的刪除:用以從資料庫中刪除一個基本表及其全部內容,其語句格式為:
DROP TABLE〔<資料庫名>.〕表名
例如:將上面建立的表都刪除
DROP TABLE student,subject,score
(3)基本表的修改:在基本表建立並使用一段時間後,可能需要根據實際要求對基本表的結構進行修改,即增加新的屬性或刪除屬性。
增加屬性的語句格式為:
ALTER TABLE 〔<資料庫名>.〕表名 ADD
(<列名> 數據類型 〔預設值〕 〔NOT NULL / NULL〕
〔,<列名> 數據類型〔預設值〕〔NOT NULL / NULL〕〕......
〔,UNIQUE (列名〔,列名〕......)〕
〔,PRIMARY KEY(列名)〕
〔,FOREIGN KEY(列名〔,列名〕......) REFERENCE <表名>(列名〔,列名〕......)〕
〔,CHECK(條件)〕〔其它參數〕)
例如:在基本表student中加入列stborn出生日期,數據類型為DATE,且不能為空值
ALTER TABLE student ADD (stborn DATE NOT NULL)
刪除屬性的語句格式為:
ALTER TABLE 〔<資料庫名>.〕表名 DROP
( <列名> 數據類型 〔預設值〕〔NOT NULL / NULL〕
〔,<列名> 數據類型 〔預設值〕〔NOT NULL / NULL〕〕......)
例如:將基本表student中的列st_age刪除
ALTER TABLE student DROP (st_age)
3.視圖定義與刪除
在SQL中,視圖是外模式一級數據結構的基本單位。它是從一個或幾個基本表中導出的表,是從現有基本表中抽取若乾子集組成用戶的「專用表」。這種構造方式必須使用SQL中的SELECT語句來實現。在定義一個視圖時,只是把其定義存放在系統的數據中,而並不直接存儲視圖對應的數據,直到用戶使用視圖時才去求得對應的數據。
(1)視圖的定義:定義視圖可以使用CREATE VIEW語句實現,其語句格式為:
CREATE VIEW 視圖名 AS SELECT語句
從一個基本表中導出視圖:
例:從基本表student中導出只包括女學生情況的視圖
CREATE VIEW WOMANVIEW AS //創建一個視圖WOMANVIEW
SELECT st_class,st_no,st_name,st_age //選擇列st_class,st_no,st_name,st_age顯示
FROM student //從基本表student引入
WHERE st_sex=『女』//引入條件為性別為「女」,注意字元變數都使用單引號引用
從多個基本表中導出視圖:
例如:從基本表student和score中導出只包括女學生且分數在60分以上的視圖
CREATEVIEW WOMAN_SCORE AS //定義視圖WOMANSCORE
SELECT student.st_class,student.st_no,student.st_name,student.st_age,score.sc_score //有選擇性顯示相關列
FROM student.score //從基本表student和score中引入
WHERE student.st_sex=『女』AND score.sc_score>=60 AND student.st_no=score.st_no //選擇條件:性別為「女」 且分數在60分以上。並使用st_no將兩表聯系起來。
以後如果進行這一視圖的應用,則只需使用語句
SELECT * FROM WOMAN_SCORE //其中「*」為通配符,代表所有元素
(2)視圖的刪除:用於刪除已不再使用的視圖,其語句格式如下:
DROP VIEW 視圖名
例:將上面建立的WOMAN_SCORE視圖刪除
DROP VIEW WOMAN_SCORE
4.索引的定義與刪除
索引屬於物理存儲概念,而不是邏輯的概念。在SQL中拋棄了索引概念,直接使用主鍵概念。值得一提的是,有些關系DBMS同時包括索引機制和主鍵機制,這里我們推薦使用主鍵機制,因為它對系統資源佔用較低且效率較高。
(1)索引的定義:索引是建立在基本表之上的,其語句格式為:
CREATE 〔UNIQUE〕 INDEX 索引名 ON
〔<資料庫名>.〕表名(列名 〔ASC/DESC〕〔,列名 〔ASC/DESC〕〕......)
這里,保留字UNIQUE表示基本表中的索引值不允許重復,若預設則表示索引值在表中允許重復;DESC表示按索引鍵降序排列,若預設或ASC表示升序排列。
例:對基本表student中的st_no和st_age建立索引,分別為升序與降序,且索引值不允許重復
CREATE UNIQUE INDEX STINDEX ON//創建索引STINDEX
student(st_no ASC,st_age DESC)//對student中的st_no和st_age建立索引
(2)索引的刪除:
DROP INDEX 索引名
例:刪除上面建立的索引STINDEX
DROP INDEX STINDEX
##2 (二)數據查詢
SQL是一種查詢功能很強的語言,只要是資料庫存在的數據,總能通過適當的方法將它從資料庫中查找出來。SQL中的查詢語句只有一個:SELECT,它可與其它語句配合完成所有的查詢功能。SELECT語句的完整語法,可以有6個子句。完整的語法如下:
SELECT 目標表的列名或列表達式集合
FROM 基本表或(和)視圖集合
〔WHERE條件表達式〕
〔GROUP BY列名集合
〔HAVING組條件表達式〕〕
〔ORDER BY列名〔集合〕…〕
整個語句的語義如下:從FROM子句中列出的表中,選擇滿足WHERE子句中給出的條件表達式的元組,然後按GROUPBY子句(分組子句)中指定列的值分組,再提取滿足HAVING子句中組條件表達式的那些組,按SELECT子句給出的列名或列表達式求值輸出。ORDER子句(排序子句)是對輸出的目標表進行重新排序,並可附加說明ASC(升序)或DESC(降序)排列。
⑥ 如圖,一個登陸界面,怎麼用access2007做資料庫,資料庫只要有用戶名、密碼和許可權就好了。
https://..com/question/1819229584180973628.html?fr=iks&word=Access+%B5%C7%C2%BC&ie=gbk
您可以參考這個
⑦ 寫有關資料庫的php程序時,什麼時候應該關閉資料庫是不是只要有資料庫的操作,最後都要mysql_close()
在你的 網頁結尾的位置 關閉就可以,也就是你不再做資料庫操作的時候關閉就可以。
不必要都關閉,系統會自動關閉資料庫。但是這是個好習慣,作為程序員有始有終這是被贊許的。
⑧ 資料庫都有哪些
一、資料庫種類有哪些
早期較為時興的資料庫種類有三種,分別是層次式資料庫、網路式資料庫和關系型資料庫。而在如今的互聯網中,最常見的資料庫種類主要有2種,即關系型資料庫和非關系型資料庫。
二、層次資料庫介紹
層次資料庫是最開始研製的資料庫系統軟體,它把數據根據層次構造(樹結構)的方法呈現。層次資料庫以前是非常熱門的資料庫,但伴隨著關系資料庫的逐漸流行,如今早已非常少應用了。
較為具備象徵性的層次資料庫是IMS(Information Management System)資料庫,由IBM企業研發。
三、關系型資料庫詳細介紹
網路資料庫和層次資料庫在數據獨立性和抽象性級別上有所欠缺,用戶開展存儲時,需要聲明數據的存儲結構和相對路徑。而關系資料庫就可以較切實解決這種問題。
和Excel工作簿一樣,關系型資料庫也選用由列和行構成的二維表來管理數據,簡單易懂。另外,它還利用SQL(Structured Query Language,結構化查詢語言)對數據開展實際操作。
四、非關系型資料庫詳細介紹
伴隨著互聯網技術Web2.0的興起,傳統關系型資料庫在應對大數據量,比如大規模和高並發的微博、微信或者SNS類型的web2.0動態網頁時,已經有些力不從心,曝露了許多難以克服的難題。因此出現了針對大規模數據量場景,以性能卓越和應用便捷為目的的的資料庫產品——NOSQL資料庫。
⑨ 資料庫有哪三類
一、數字類型。
數字類型按照我的分類方法分為三類:整數類、小數類和數字類。我所謂的「數字類」,就是指DECIMAL和NUMERIC,它們是同一種類型。它嚴格的說不是一種數字類型,因為他們實際上是將數字以字元串形式保存的;他的值的每一位(包括小數點)佔一個位元組的存儲空間,因此這種類型耗費空間比較大。但是它的一個突出的優點是小數的位數固定,在運算中不會「失真」,所以比較適合用於「價格」、「金額」這樣對精度要求不高但准確度要求非常高的欄位。
小數類,即浮點數類型,根據精度的不同,有FLOAT(單精度)和DOUBLE(雙精度)兩種。它們的優勢是精確度,FLOAT可以表示絕對值非常小、小到約 1.17E-38 (0.000...0117, 小數點後面有37個零)的小數,而DOUBLE更是可以表示絕對值小到約 2.22E-308 (0.000...0222, 小數點後面有307個零)的小數。FLOAT類型和DOUBLE類型佔用存儲空間分別是4位元組和8位元組。如果需要用到小數的欄位,精度要求不高的,當然用FLOAT了!可是說句實在話,我們「民用」的數據,哪有要求精度那麼高的呢?這兩種類型至今我沒有用過——我還沒有遇到適合於使用它們的事例。
用的最多的,最值得精打細算的,是整數類型。從只佔一個位元組存儲空間的TINYINT到佔8個位元組的BIGINT,挑選一個「夠用」並且佔用存儲空間最小的類型是設計資料庫時應該考慮的。TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT佔用存儲空間分別為1位元組、2位元組、3位元組、4位元組和8位元組,就無符號的整數而言,這些類型能表示的最大整數分別為255、65535、16777215、4294967295和18446744073709551615。如果用來保存用戶的年齡(舉例來說,資料庫中保存年齡是不可取的),用TINYINT就夠了;九城的《縱橫》里,各項技能值,用SMALLINT也夠了;如果要用作一個肯定不會超過16000000行的表的AUTO_INCREMENT的IDENTIFY欄位,當然用 MEDIUMINT 不用 INT ,試想,每行節約一個位元組,16000000行可以節約10兆多呢!
二、日期時間類型
日期和時間類型比較簡單,無非是 DATE、TIME、DATETIME、TIMESTAMP和YEAR等幾個類型。只對日期敏感,而對時間沒有要求的欄位,就用DATE而不用DATETIME是不用說的了;單獨使用時間的情況也時有發生——使用TIME;但最多用到的還是用DATETIME。在日期時間類型上沒有什麼文章可做,這里就不再詳述。
三、字元(串)類型
不要以為字元類型就是 CHAR !CHAR和VARCHAR的區別在於CHAR是固定長度,只要你定義一個欄位是CHAR(10),那麼不論你存儲的數據是否達到了10個位元組,它都要佔去10個位元組的空間;而VARVHAR則是可變長度的,如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的,VARCHAR 類型的實際長度是它的值的(實際長度+1)。為什麼「+1」呢?這一個位元組用於保存實際使用了多大的長度呀!從這個「+1」中也應該看到,如果一個欄位,它的可能值最長是10個字元,而多數情況下也就是用到了10個字元時,用VARCHAR就不合算了:因為在多數情況下,實際佔用空間是11個位元組,比用CHAR(10)還多佔用一個位元組!
舉個例子,就是一個存儲股票名稱和代碼的表,股票名稱絕大部分是四個字的,即8個位元組;股票代碼,上海的是六位數字,深圳的是四位數字。這些都是固定長度的,股票名稱當然要用 CHAR(8) ;股票代碼雖然是不固定長度,但如果使用VARVHAR(6),一個深圳的股票代碼實際佔用空間是5個位元組,而一個上海的股票代碼要佔用7個位元組!考慮到上海的股票數目比深圳的多,那麼用VARCHAR(6)就不如CHAR(6)合算了。
雖然一個CHAR或VARVHAR的最大長度可以到255,我認為大於20的CHAR是幾乎用不到的——很少有大於20個位元組長度的固定長度吧?不是固定長度的就用VARCHAR!大於100的VARCHAR也是幾乎用不到的——比這更大的用TEXT就好了。TINYTEXT,最大長度為255,佔用空間也是(實際長度+1);TEXT,最大長度65535,佔用空間是(實際長度+2);MEDIUMTEXT,最大長度16777215,佔用空間是(實際長度+3);LONGTEXT,最大長度4294967295,佔用空間是(實際長度+4)。為什麼「+1」?「+2」?「+3」?「+4」?你要是還不知道就不應該了。這些可以用在論壇啊、新聞啊,什麼的,用來保存文章的正文。根據實際情況的不同,選擇從小到大的不同類型。
四、枚舉和集合類型
枚舉(ENUM)類型,最多可以定義65535種不同的字元串從中做出選擇,只能並且必須選擇其中一種,佔用存儲空間是一個或兩個位元組,由枚舉值的數目決定;集合(SET)類型,最多可以有64個成員,可以選擇其中的零個到不限定的多個,佔用存儲空間是一個到八個位元組,由集合可能的成員數目決定。