① 資料庫標識符必須是英文字元嗎
填寫標識符必須要有以下四點。
1、標識符由字母,數字,下劃線(_)和美元符號($)組成,不能以數字開頭;2、不能把java關鍵字和保留字作為標識符。3、標識符沒有長度限制。4、標識符對大小寫敏感。
標識符就相當於這個變數或常量的名字一樣了,資料庫對象的名稱即為其標識符。
Microsoft SQL Server 中的所有內容都可以有標識符,伺服器,資料庫和資料庫對象(例如表,視圖,列,索引,觸發器,過程,約束及規則等)都可以有標識符,大多數對象要求有標識符,但對有些對象(例如約束),標識符是可選的。
對象標識符是在定義對象時創建的,標識符隨後用於引用該對象,例如,下列語句創建一個標識符為 TableX 的表,該表中有兩列的標識符分別是 KeyCol 和 Description。
ipsec的三元組是:1,安全參數索引(SPI)。2,一個源或目的IP地址。3,安全協議(AH和ESP)標識符。
定義符號常量的一般格式:CONST<常量標識符>=<常量>說明:常量說明部分以關鍵字const開頭, 後面的標識符為常量標識符,其中"="號後的常量為整數,實數,字。
② 資料庫中對於存儲漢字和各種符號的欄位應該定義為什麼類型
需要定義成字元型,一般可用char、varchar、nchar、nvarchar等,具體需要看實際需求。
這幾種類型的比較:
CHAR
CHAR存儲定長數據很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你存儲的數據是否達到了10個位元組,都要佔去10個位元組的空間。
VARCHAR
存儲變長數據,但存儲效率沒有CHAR高,如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麼"+1"呢?這一個位元組用於保存實際使用了多大的長度。
從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。
NCHAR、NVARCHAR
這兩種從名字上看比前面三種多了個"N"。和char、varchar比較起來,nchar、nvarchar最多存儲4000個字元,不論是英文還是漢字;而char、varchar最多能存儲8000個英文,4000個漢字。可以看出使用nchar、nvarchar數據類型時不用擔心輸入的字元是英文還是漢字,較為方便,但在存儲英文時數量上有些損失。
所以一般來說,如果含有中文字元,用nchar/nvarchar,如果純英文和數字,用char/varchar
③ mysql 中文應用什麼字元集
character_set_client 來自客戶端的語句的字元集,採用這個字元集對客戶端語句進行解析character_set_connection 用於沒有字元集導入符的文字和數字-字元串轉換character_set_database 默認資料庫使用的字元集。當默認資料庫更改時,伺服器則設置該變數。如果沒有默認資料庫,變數的值同character_set_servercharacter_set_results 用於向客戶端返回查詢結果的字元集character_set_ server 伺服器的默認字元集character_set_system 伺服器用來保存識別符的字元集。該值一定是utf8還有character_sets_dir 字元集安裝目錄
④ sql語句創建的資料庫表格可以使用哪些字元
1
2
3
4
5
-- 創建資料庫時,設置資料庫的編碼方式
-- CHARACTER SET:指定資料庫採用的字元集,utf8不能寫成utf-8
-- COLLATE:指定資料庫字元集的排序規則,utf8的默認排序規則為utf8_general_ci(通過show character set查看)
drop database if EXISTS dbtest;
create database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
1
2
3
-- 修改資料庫編碼
alter database dbtest CHARACTER SET GBK COLLATE gbk_chinese_ci;
alter database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
1
2
3
4
5
6
7
8
9
-- 創建表時,設置表、欄位編碼
use dbtest;
drop table if exists tbtest;
create table tbtest(
id int(10) auto_increment,
user_name varchar(60) CHARACTER SET GBK COLLATE gbk_chinese_ci,
email varchar(60),
PRIMARY key(id)
)CHARACTER SET utf8 COLLATE utf8_general_ci;
1
2
3
4
-- 修改表編碼
alter table tbtest character set utf8 COLLATE utf8_general_ci;
-- 修改欄位編碼
ALTER TABLE tbtest MODIFY email VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci;
1
2
3
4
-- 查看所有的字元編碼
SHOW CHARACTER SET;
-- 查看創建資料庫的指令並查看資料庫使用的編碼
show create database dbtest;
1
2
-- 查看資料庫編碼:
show variables like '%char%';
1
2
-- 設置character_set_server、set character_set_client和set character_set_results
set character_set_server = utf8; -- 伺服器的默認字元集。使用這個語句可以修改成功,但重啟服務後會失效。根本的辦法是修改配置MYSQL文件MY.INI,
character_set_server=utf8,配置到mysqld欄位下。
set character_set_client = gbk; -- 來自客戶端的語句的字元集。伺服器使用character_set_client變數作為客戶端發送的查詢中使用的字元集。
set character_set_results = gbk; -- 用於向客戶端返回查詢結果的字元集。character_set_results變數指示伺服器返回查詢結果到客戶端使用的字元集。包括結果數據,例如列值和結果元數據(如列名)。
1
2
-- 查看某欄位使用的編碼:
SELECT CHARSET(email) FROM tbtest;
⑤ mysql 建資料庫用什麼字元集
mysql創建資料庫一般使用的字元集為UTF-8,但具體的要根據實際情況進行選擇。
工具:mysql5.6,Navicat Premium
步驟:
1、打開Navicat Premium,雙擊左側伺服器的樹形結構,連接到伺服器,這里以localhost為例。
⑥ SQL Server中姓名,學號,性別,院系都用什麼數據類型
姓名:一般都用varchar
學號:可以是int或varchar
性別:一般都用char(2)或bit
院系:一般都用varchar
直接使用字元 」N「,」M「 ,」F「 來存儲,方案的選擇主要依照個人習慣,和手機應用的需要。因為實際應用中,無論選擇哪種方案,對資料庫性能、即操作復雜度都影響可以忽略。
(6)資料庫專業用什麼字元擴展閱讀:
SQL Server是一個可擴展的、高性能的、為分布式客戶機/伺服器計算所設計的資料庫管理系統,實現了與WindowsNT的有機結合,提供了基於事務的企業級信息管理系統方案。
在Windows NT 推出後,Microsoft與Sybase 在SQL Server 的開發上就分道揚鑣了,Microsoft 將SQL Server 移植到Windows NT系統上,專注於開發推廣SQL Server 的Windows NT 版本。Sybase 則較專注於SQL Server在UNIX 操作系統上的應用。
⑦ mysql編碼資料庫,數據表,欄位各用什麼編碼
1. ASCII
用途:用來映射簡單的單位元組字元,比如大小寫英文字母、阿拉伯數字、常用的標點符、運算符、控制字元等。
編碼范圍:U+0000 - U+007F
注意:對於用這類字元的場景夠用了,但是卻無法表達比如漢字,日文等編碼。
2. UNICODE
用途:用來映射包含 ASCII 以內的其他的所有字元。
編碼范圍:U+0000 - U+10FFFF
注意:ASCII 是 UNICODE 的子集,ASCII 編碼的字元可以無損轉換為 UNICODE 編碼的字元。
MySQL 常用字元集
1. Latin1
Latin1 是 cp1252 或者 ISO-8859-1 的別名。ISO-8859-1 編碼是單位元組編碼,向下兼容 ASCII。
編碼范圍:U+0000 - U+00FF
ISO-8859-1 收錄的字元除 ASCII 收錄的字元外,還包括西歐語言、希臘語、泰語、阿拉伯語、希伯來語對應的文字元號。
單位元組內的空間都被 ISO-8859-1 編碼佔用,所以能夠用 ISO-8859-1 編碼存儲、傳輸其他任何編碼的位元組流。
比如把一個 Utf8mb4 的編碼或者 GBK 的編碼存入 Latin1,不會有任何問題。因為 Latin1 保留了原始的位元組流,這也就是 MySQL 長期以來把 Latin1 做默認字元集的原因。
但是由於 Latin1 對任何字元都存放位元組流,造成了字元個數的浪費。
比如:
CHAR(10) CHARACTER SET LATIN1;CHAR(10) CHARACTER SET UTF8;
該欄位中存儲字元個數 UTF8 是 Latin1 的三倍!!!
2. GB18030
GB18030 是中國官方標准字元集,向前兼容 GBK、GB2312,是這兩個的超集。用 1、2、4 個位元組分別表示一個符號。比如對一般中文字元,默認是用兩個位元組編碼存儲。Windows 系統,默認用的就是 GB18030。
若只是存儲中文字元,那 GB18030 最佳。
原因有兩點:
1)佔用空間小,比如比 UTF8 小。
2)存儲的漢字根據拼音來排序,檢索快。
3. UTF8
UTF8 是 Unicode 的編碼實現,可以存儲 UNICODE 編碼對應的任何字元, 這也是使用最多的一種編碼。最大的特點就是變長的編碼方式,用 1 到 4 個位元組表示一個符號,可以根據不同的符號編碼位元組長度。
字母或數字用 1 位元組,漢字用 3 位元組,emoji 表情符號用 4 位元組。UTF8 字元集目前是使用最廣泛的。
注意!MySQL 里常說的 UTF8 是 UTF8MB3 的別名,UTF8MB3 是 UTF8MB4 的子集,UTF8MB4 才是真正的 4 位元組 UTF8 字元集!
UTF8MB3 表示最大支持 3 個位元組存儲字元,UTF8MB4 表示最大 4 個位元組存儲字元。根據實際需要和未來展望,MySQL 8.0 已經默認用 UTF8MB4 基礎字元集。
⑧ 資料庫欄位utf8編碼選哪種好,是中文加括弧,需要用於搜索
資料庫中關於字元集的種類有很多,個人建議,資料庫字元集盡量使用utf8(utf-8),以使你的數據能很順利的實現遷移,因為utf8字元集是目前最適合於實現多種不同字元集之間的轉換的字元集,盡管你在命令行工具上無法正確查看資料庫中的內容,我依然強烈建議使用utf8作為默認字元集.如果你想使用gb2312編碼,那麼建議你使用latin1作為數據表的默認字元集,這樣就能直接用中文在命令行工具中插入數據,並且可以直接顯示出來.而不要使用gb2312或者gbk等字元集,如果擔心查詢排序等問題,可以使用binary屬性約束 對編程有影響的主要是客戶端字元集和資料庫字元集(還有一個伺服器字元集,不知道干什麼用的), 資料庫中常用的操作就是保存數據和讀取數據,在這過程中,亂不亂碼和資料庫字元集貌似沒有什麼關系。我們只要保證寫入時選擇的字元集和讀取時選擇的字元集一致,即只需保證兩次操作的客戶端字元集一致即可。
在MySQL的客戶端上執行一次查詢的過程一般是,在客戶端的提示符後面輸入一條SQL語句,回車,然後終端顯示出查詢的結果。這個過程中,只有終端和三個MySQL的系統變數指定了正確的字元集,才能保證我們將一個正確的SQL語句送到伺服器,然後伺服器返回正確的結果,並且在終端正確顯示。
三個MySQL的系統變數是:
1. character_set_client,終端字元集,告訴Server客戶端提交的SQL語句的編碼格式
2. character_set_connection,連接字元集,是伺服器翻譯SQL語句時用到的編碼格式
3. character_set_results,返回的結果集的字元集,是伺服器返回結果集之前把結果集轉換成的編碼格式
在MySQL終端通過執行命令 show variables like 『char%』 可以查看這幾個變數的值。這三個變數通常都設定為同一種字元集,用命令set names [charset name]就可以修改這三個變數的值。一般來說,只要你設定了能夠表示你的數據的字元集,你查詢的結果都可以在終端正確顯示。
舉個例子,使用的表t1是utf8編碼,表中的欄位c1繼承了這個編碼,表創建如下
mysql> create table t1 ( c1 text not null ) character set utf8;
用的字元是漢字「范」,gbk編碼為B7 B6,utf8編碼為E8 8C 83
用下面的SQL語句插入數據
mysql> insert into t1 values( 『范』);
a)如果終端設置為utf8,並且執行了 set names utf8,那麼插入到資料庫中的就是「范」這個字的utf8編碼,這個過程中MySQL不需要做編碼轉換。寫入資料庫的內容可以通過執行 select hex( c1 ) from t1 得到數據的十六進制編碼來驗證。
b)如果終端設置為 utf8,並且執行了set names gbk,那麼執行完這個插入操作後,寫入的二進制數據是E9 91 BC,這是「漢字「鑼」的utf8編碼。這是因為,終端輸入的「范」用的是utf8編碼,而伺服器以為終端發送過來的內容是gbk編碼,所以在向t1表中插入的時候進行了一次gbk到utf8的轉換,結果當然是錯誤的。
c)如果終端設置為gbk,並且執行了set names gbk,那麼執行完插入操作後,寫入t1的依然是「范」這個字的utf8編碼。插入過程中,終端輸入的是「范」的gbk編碼B7 B6,伺服器被告知終端發過來的SQL語句是gbk編碼(由character_set_client指定),所以在插入數據前做了一次gbk到utf8的編碼轉換。
d)如果終端設置為gbk,並且執行了set names utf8,那麼執行完插入操作後,MySQL會報出一個數據被截斷的警告。實際上,輸入終端的是「范」這個字元的gbk編碼B7 B6,而伺服器被告知客戶端發過來的SQL語句是utf8編碼,所以在執行過程中沒有做轉碼,直到插入數據的時候,發現B7 B6不符合utf8的編碼規則,給出了警告信息,實際插入的數據是3F 3F,也就是兩個問號。
查詢的時候是同樣的道理,MySQL也是根據set names設定的字元集來對返回給客戶端的結果集做相應的編碼轉換,如果轉換的結果和終端顯示的字元集一致,就能正確顯示,如果不一致就是亂碼。
結論是,只要終端的字元集和set names指定的字元集一致就可以讓MySQL在處理過程中執行正確的轉碼並且正確地顯示。
另外,如果通過程序操作MySQL資料庫, 那麼也需要事先執行set names命令來指定程序希望輸出的字元集。比如,用程序從一個utf8編碼的資料庫向另外一個gbk編碼的資料庫進行數據遷移,在選取源資料庫數據之前,需要執行set names gbk,才能取到gbk編碼的數據。
⑨ 實際應用中,安裝資料庫選哪個字元集比較好
ORACLE用這個就行:
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
說明:
NLS_LANG一般由三個部分組成, 語言、地域和字元集
真正影響資料庫字元集的其實是第三部分。
ZHS16GBK表示採用GBK編碼格式、16位(兩個位元組)簡體中文字元集
LINUX也可以用這個字元集。
⑩ 在資料庫中,漢字屬於什麼字元類型
是字元型,編代碼時要用冒號套起來!升級中望採納謝謝!