當前位置:首頁 » 數據倉庫 » sql資料庫編碼格式
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql資料庫編碼格式

發布時間: 2023-08-09 00:29:43

『壹』 mysql用sql語句創建表和資料庫怎麼設置字元編碼'

方法如下:

  • 我們先建一個DEMO表,來做我們今天的實現,建表語句如下:

    CREATE TABLE

    DEMO

    (

    NAME VARCHAR(50) COMMENT '姓名',

    SEX CHAR(1) COMMENT '性別',

    PRIMARY KEY (NAME)

    )

    ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='例子表';

    並且select查詢一下,如下圖

『貳』 請問怎麼修改MS SQL資料庫的編碼方式啊

sql server 2000的unicode編碼有特殊性,僅僅在rails中使用utf8編碼,和把全部rails項目文件格式改成utf8之外,還是不夠的。僅僅這樣做,只是部分中文字元能夠正確處理,而且存入sql server2000中的中文數據,也完全是亂碼。正確的配置方法應該如下。

1. ms sql server2000中數據欄位全部要選擇成n打頭的類型,比如ntext,nvarchar等。

2.安裝ADO Driver
安裝one -click installer 來安裝ruby 的話就已經安裝了所有連接SQL Server使用的需求包.但是,並沒有安裝ADO Driver.
這樣來安裝它:

在Ruby目錄下找到這個目錄: \ruby\lib\ruby\site_ruby\1.8\DBD .例如:我的Ruby安裝在D:\ruby中,所以是這個目錄D:\ruby\lib\ruby\site_ruby\1.8\DBD 在該目錄中創建一個ADO文件夾. 下載Ruby-DBI,將lib/dbd_ado/ADO.rb文件拷貝到X:/ruby/lib/ruby/site_ruby/1.8/DBD/ADO/ADO.rb

3. 配置database.yml:Java代碼
development:
adapter: sqlserver
database: database_name
host: server_name
username: user_name
password: your_pw_here

development:
adapter: sqlserver
database: database_name
host: server_name
username: user_name
password: your_pw_here

4.在environment.rb添加下面代碼
require 'win32ole'
WIN32OLE.codepage = WIN32OLE::CP_UTF8

在這里稍微解釋下第四部分的設置。sql server 2000中使用的unicode 並非是utf8,ado的默認鏈接編碼都是當前系統設置的code pages相關的。

一般的windows設置都是非unicode的,比如簡體中文windows系統下一般都是gb2312, 在rails中database.yml設置encoding: utf8,對於sql server沒有任何用處。

為了迫使sql server接受utf8數據,必須修改ado鏈接的code pages值為utf8,才能讓ado部分代碼在接受rails傳入的utf8數據之後,不做任何額外的處理. 否則的話,ado部分代碼會根據當前系統的默認code pages值來處理這里字元數據。

於是在中文windows系統上,從utf8的rails項目中傳入的數據,會被當作gb2312編碼的數據來傳遞到sql server2000中,於是sql server2000中存入的數據會成為亂碼,也有部分數據在處理過程中出錯,導致sql 語句執行出錯。比如常見的中文字元右邊的單引號會不見的情況。

不設置 WIN32OLE.codepage = WIN32OLE::CP_UTF8,你的整個系統編碼配置是這樣的
rails(utf8)<-->ado(根據當前系統cp來取得編碼,或是gb2312或是其他)<-->sql server 2000 (unicode)
整個系統編碼不一至

WIN32OLE.codepage = WIN32OLE::CP_UTF8 這句代碼就是為了更改cp值.整個系統編碼配置是這樣的
rails(utf8)<-->ado(utf8)<-->sql server 2000 (unicode)
整個系統編碼一至,整個系統中不會再出現任何亂碼.

註:以上轉自:jack發表在javaeye網站上的文章,地址:http://www.javaeye.com/topic/53877

database.yml也可以用以下的配置試試(用下面這種的話第1條或許不用,沒試過)

『叄』 mysql用sql語句創建表和資料庫怎麼設置字元編碼'

--創建資料庫時,設置資料庫的編碼方式
--CHARACTERSET:指定資料庫採用的字元集,utf8不能寫成utf-8
--COLLATE:指定資料庫字元集的排序規則,utf8的默認排序規則為utf8_general_ci(通過showcharacterset查看)
dropdatabaseifEXISTSdbtest;
_general_ci;
--修改資料庫編碼
_chinese_ci;
_general_ci;
--創建表時,設置表、欄位編碼
usedbtest;
droptableifexiststbtest;
createtabletbtest(
idint(10)auto_increment,
user_namevarchar(60)CHARACTERSETGBKCOLLATEgbk_chinese_ci,
emailvarchar(60),
PRIMARYkey(id)
)CHARACTERSETutf8COLLATEutf8_general_ci;
--修改表編碼
_general_ci;
--修改欄位編碼
(60)CHARACTERSETutf8COLLATEutf8_general_ci;
--查看所有的字元編碼
SHOWCHARACTERSET;
--查看創建資料庫的指令並查看資料庫使用的編碼
showcreatedatabasedbtest;
--查看資料庫編碼:
showvariableslike'%char%';
--設置character_set_server、setcharacter_set_client和setcharacter_set_resultssetcharacter_set_server=utf8;--伺服器的默認字元集。使用這個語句可以修改成功,但重啟服務後會失效。根本的辦法是修改配置MYSQL文件MY.INI,