首先是sqlite:
1.命令列注釋符--
2.分頁查詢
select * from messages limit 10,100;
表示跳過10行,取100行的返回結果。
3.設定預設欄位值
CREATE TABLE t2(id integer default 0,time datetime default (strftime('%Y-%m-%d %H:%M:%s','now')));
或者CREATE TABLE t2(id integer default 0,time datetime default (datetime()));
4.連接字串串連符號||
例:
update message set content=content||'abc';
5.聯合主鍵
create table test(col1 char(2),col2 char(2),primary key (col1,col2));
6.插入資料時候如果主鍵已經存在則忽略(替換)此句
insert or ignore(replace) into user values('abc');
7.建立觸發器自動更新表的last_update_time:
create trigger tr_test before update on test for each row begin update test set gtime = datetime() where id = new.id; END;
MYSQL:
1.命令列注釋符#
2.分頁查詢
select * from messages limit 10,100;
表示跳過10行,取100行的返回結果。
3.建表時間列預設為目前時間
CREATE TABLE mTable( my_time timestamp default current_timestamp);
4.連接字串串連函數concat
例:
update message set content=content||'abc';
5.聯合主鍵
create table test(col1 char(2),col2 char(2),primary key (col1,col2));
6.插入資料時候如果主鍵已經存在則忽略(替換)此句
insert or ignore(replace) into user values('abc');
7.建表時欄位區分大小寫
column_name varchar(20) character set utf8 collate utf8_bin
8.使用變數做表名
/* -----建立預存程序:sp_auto_create-------*/
delimiter ;;
create procedure sp_auto_create(in tname char(32))
begin
set @stmt=concat('create table ',tname,'(id int,name varchar(10));');
prepare s1 from @stmt;
execute s1;
end ;;
delimiter ;
/* -----執行預存程序:sp_auto_create,自動產生表test-------*/
call sp_auto_create ('test');