Archive

‘專業技術’ 分類過的Archive

更新Mysql 語系

2008年5月18日 尚無評論

Mysql 的語系可對table 進行指定,而且每個欄位(varchar or text)也都可以特別指定語系為何

這麼彈性的設計,當然在使用時也要特別小心

當在使用mysql 的管理工具進行整個Table 轉換語系時,似乎所屬的各欄位語系還是照舊
不知是何原因,不過在資料庫table一多時,這樣轉換起來是很費時又費工的

所以在此介紹可以利用sql 指令進行轉換,來達到轉換語系的工作

ALTER TABLE test CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
這行可以針對test 進行轉換語系,經使用後發現,他會連該table 各欄位都可以一併轉換

所以我們可以搭配show tables,來看看目前該資料庫有多少table 再用這指令去轉換,就可以很方便進行語系轉換啦

以下為相關會有用到的語法,大家參考看看…

show variables like '%character%';
這行是在顯示目前mysql的變數為何? 可以查看目前資料庫語系或client 語系

ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE. utf8_unicode_ci;
這行指令可以是設定資料庫的預設語系為何?

show databases;
顯示目前mysql 下的資料庫名稱

show tables;
顯示目前table 名稱

show columns from table;
顯示table 裡的各欄位名稱;

SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern' | WHERE expr]
可以查看資料庫是用何者型態(myisam,innodb..)建立的
Categories: Database Tags:

SQL constraint 外鍵(Foreign Key)

2008年5月7日 2 則評論

先前開發的小系統,都不太喜歡用constraint,怕在匯入或一些從db 下手作業時會很麻煩,不過系統愈做愈大
還是一定要用constraint 這樣才不會因為程式漏做了而造成資料失去完整性或關連

根據 ANSI SQL92 的標準來看,在違 反 integrity constraint 時,資料庫系統可以採取 4 種動作 :

  • set NULL,即當 parent table 中 delete 或 update 一筆資料時,foreign table 上的資料是設為 NULL。
  • set default,設 foreign key 為 最初的default value。
  • cascade,即當 delete 或 update parent table 時,對 foreign table也做 同樣的 delete 或 update。有了cascade 的功能之後,在我們開發 application 就可以節省處理 integrity constraint 的時間了。
  • no action (restrict),即當此筆資料存在有 foreign key 時,不允許做 delete 或 update。也就是說必須將此 integrity constraint 除去後才能做 delete 或 update。

Mysql

在INNODB型態下才有支援外來鍵,不然會是設假的,INNODB型態才會檢查是否有違反外來鍵限制,會依ON UPDATE CASCADE(參考主鍵修改,外來鍵會跟著改),ON DELETE SET NULL(參考主鍵刪除,外來鍵會變空值)…等等的CASCADE 限制對table處理

以下的語法是檢查是否符合外來鍵限制條件。0是關掉檢查,1是打開檢查。
SET FOREIGN_KEY_CHECKS = 0;
SET FOREIGN_KEY_CHECKS = 1;

以下的例子則是在建立表格時指定外來鍵:
MySQL:
CREATE TABLE ORDERS
(Order_ID integer,
Order_Date date,
Customer_SID integer,
Amount double,
Primary Key (Order_ID),
Foreign Key (Customer_SID) references CUSTOMER(SID));

Oracle:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date date,
Customer_SID integer references CUSTOMER(SID),
Amount double);

SQL Server:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date datetime,
Customer_SID integer references CUSTOMER(SID),
Amount double);

以下的例子則是藉著改變表格架構來指定外來鍵:

MySQL:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

Oracle:
ALTER TABLE ORDERS
ADD (CONSTRAINT fk_orders1) FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

SQL Server:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

Categories: Database Tags: ,

HTML TEXT FIELD文字框中如何讓字靠右顯示及輸入

2008年5月5日 尚無評論
因為有需要讓輸入的文字靠右顯示及輸入,所以查了一下,整理如下:

<input type=text id=GPSL size=10 value=”-789.123″ name=”text2″  style=”direction:rtl”>

<input   type=text   value=”aaaa”   size=50     dir=”rtl”>

<input   type=text   value=”aaaa”   size=50   style=”writing-mode:tb-rl;text-align:right”>  

目前我用第一個就很正常啦,所以其它的就沒測試是否適用

Categories: WebDesign Tags: ,

SQL 計算排名

2008年4月14日 尚無評論

最近有用到計算排名的sql 語法
找了一下才知 mysql  本身是沒有提供類似的函式
只能用sql 語法 組出來以下語法就行啦

more..

Categories: Database Tags: ,

SMTP、POP3、NNTP、FTP、HTTP的服務器指令

2008年4月9日 尚無評論

目前常會透過一些services 進行服務,例如FTP 上下檔案, SMTP 寄信,POP3 收信或驗證身份
出問題時,往往會花很多時間在追蹤,到頭來才知services出事 並非程式的問題
所以有了以下這些指令,就可以先透過console 進行檢查 看看該services 是不是正常運作

more..

Categories: 程式開發 Tags: , , , ,
分頁: 上一頁 1 2 3 ... 18 19 20 21 22 23 24 25 26 27 28 下一頁