網頁

顯示具有 SQL 標籤的文章。 顯示所有文章
顯示具有 SQL 標籤的文章。 顯示所有文章

2014年5月27日 星期二

SQL學習筆記-資料中單引號問題

一個蠻白痴的問題,若要做insert,而你的資料中正好又有單引號('),如:'123'456這時要怎寫?

insert into table_name (val1,val2) values ('''123''456','789');

還真是有夠怪的寫法,要記錄一下

2013年6月9日 星期日

sqlite學習筆記 - sqlite初體驗

sqlite是我從來沒用過,但在手機端還真的好用,一般的linux或mac os x都內建,這邊就稍微記錄一下從無到有做一個user_meta的table,放個資料做個select

Step1: 創建一個名叫xxx的DB
>sqlite3 xxx.db

執行完會進入sqlite3的command link
Step2: 建立table
sqlite> create table user_meta (id integer primary key, meta_key varchar(50), meta_value varchar(300));

Step3: 測試一下,insert一筆
sqlite> insert into user_meta(meta_key, meta_value) values('account','alvin');

Step4: 測試一下,select
sqlite> select * from user_name

顯示--> 1|account|alvin

Step5: 離開
sqlite>.exit

超簡單~

2012年12月23日 星期日

SQL學習筆記-SET IDENTITY_INSERT

有個案子用的是sybase,正好要重新建置,想說就把資料都備份成SQL出來後,再重新放入就好,沒想到重建好後,insert不進去了,出現下列訊息

ERROR: Explicit value specified for identity field in table 'xxxx'
when 'SET IDENTITY_INSERT' is OFF.


查詢了下才知道,id是primary key,是不能指定的,但我偏偏是備份耶,id是一定會用到的,沒指定到時程式整個混亂,最後找到個解法,但還是不是很好用

set IDENTITY_INSERT table名稱 on
{執行此talbe相關所有sql}
set IDENTITY_INSERT table名稱 on


這樣就可以了


參考網址:
set IDENTITY_INSERT on 和 off 的设置

2012年11月15日 星期四

資料庫學習筆記-Table is marked as crashed....

最近多災多難,壞事通常一塊發生,昨天主機空間不足,造成網站crash,清出空間後,以為沒事了,但還是有人回報沒法使用,在mysqld的log中發現類以這種log

121114 22:44:51 [ERROR] /usr/libexec/mysqld: Table './xxxxx' is marked as crashed and should be repaired

查了下資料,有工具可以修,但不知道原因為什麼,不過先弄好他吧,指令如下:

REPAIR TABLE `TableName`

這樣就正常了

參考網址:
MYSQL 資料表 顯示 #145 - Table './xxxx/' is marked as crashed and should be repaired

2012年10月18日 星期四

下SQL從Sybase資料庫中Random取得資料

軟體工程師的日子真是一堆有的沒的學不完,可怕的是根本沒時間從頭看到尾,最後加重學不完的壓力,想想我從來沒有好好學過sql,哈哈哈,不過我還是能用

這次的需求是要Random,但不是很想用程式去Random產生,加上我用的是Sybase,並不是很常見的,只好去找找,找到些資料

Sybase
SELECT column FROM table ORDER BY NEWID()

實際使用,發現重覆的機會蠻高的,大概是沒有下seed吧....,查了些資料,大多都用rand(),但下法複雜許多,也許暫時先這麼做,反正最差也就再用程式去random出id,再select

順便列下其他的

MySql
SELECT column FROM table ORDER BY RAND()

PostgreSQL
SELECT column FROM table ORDER BY RANDOM()

MS Sql
SELECT TOP 1 column FROM table ORDER BY NEWID()


參考網址:
SQL to Select a random row from a database table
Sybase: get random records from a table!!