-
oracle 數(shù)據(jù)庫(kù)查詢, 字符串不能用雙引號(hào)
條件中的數(shù)字age="1"和age=1均有效, 與字段類型無關(guān)
image.png
image.png
以上均可以查到數(shù)據(jù)
dbcp線程池的DelegatingPrePareStatement設(shè)置的問號(hào)參數(shù)保存在_stmt --> _stmt --> Preparestatement --> parameterString中
mysql中保存boolean值用tinyint類型, mysql沒有boolean類型, jdbc設(shè)置時(shí)用PreparedStatement setBoolean(int parameterIndex, boolean x) , Insert語句中設(shè)置true不能帶單引號(hào):
-- mysql會(huì)自動(dòng)將true轉(zhuǎn)為1
Insert into table_name(id,myTinyInt) values(1,true);
- 查詢不同數(shù)據(jù)庫(kù)所有保留關(guān)鍵字
1). oracle
select * from v$reserved_words order by keyword asc;
查詢結(jié)果
2). mysql查找關(guān)鍵字目前只知道官網(wǎng)手冊(cè)可以查詢.
JDBC只提供了部分關(guān)鍵字的獲取辦法:
DatabaseMetaData.getSQLKeywords()
獲取此數(shù)據(jù)庫(kù)的還“不”是 SQL:2003 關(guān)鍵字的所有 SQL 關(guān)鍵字的逗號(hào)分隔列表垦搬。
https://en.wikipedia.org/wiki/SQL:2003
- sql關(guān)鍵字為字段名時(shí), sql語句中使用到時(shí)可以使用雙引號(hào)" "括起來, 可以防止報(bào)錯(cuò), 雙引號(hào)支持oracle和mysql, 反引號(hào)
只支持mysql
- mysql的binary數(shù)據(jù)類型的長(zhǎng)度單位是byte败匹,設(shè)置長(zhǎng)度為1,執(zhí)行sql
···sql
insert into tablename values(b'1000001');
···
會(huì)看到顯示為 A , 其中b'1000001'是二進(jìn)制的65,對(duì)應(yīng)的ascii字符為A - MySQL有四種BLOB類型:
·tinyblob:僅255個(gè)字符
·blob:最大限制到65K字節(jié)
·mediumblob:限制到16M字節(jié)
·longblob:可達(dá)4GB - Oracle中Clob與Blob類型:
Clob(Character Large Object):數(shù)據(jù)庫(kù)中的一種保存文件所使用的類型迈套。 可以用來保存大文本,xml等
Blob(Binary Large Object):二進(jìn)制大對(duì)象干毅,是一個(gè)可以存儲(chǔ)二進(jìn)制文件的容器循未。可以保存圖片搏存,文件瑰步,音頻等 - 表中設(shè)置更新時(shí)間字段,類型timestamp璧眠,默認(rèn)值 '1980-01-01 00:00:00'缩焦,每次更新紀(jì)錄時(shí)update_time字段修改為當(dāng)前時(shí)間CURRENT_TIMESTAMP ,字段備注為'最近一次更新時(shí)間'责静。這樣做省去了每次更新數(shù)據(jù)都需要在代碼中添加修改時(shí)間戳的麻煩
update_time timestamp NULL DEFAULT '1980-01-01 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '最近一次更新時(shí)間'
- MySQL批量插入
INSERT INTO student VALUES('1','mwq','18'),('2','shh','19'),('3','wdl','20')
- mybatis中mapper文件一般默認(rèn)的兩個(gè)SQL
selectAll()
selectByLimit(Object obj)
- 類似用戶表一般都有created_by create_time last_updated_by last_update_time is_deleted五個(gè)字段
- mybatis查詢方法袁滥,若方法返回值是List<Object>,查詢結(jié)果為0時(shí)泰演,返回空List呻拌;若方法返回值是Object,查詢結(jié)果為0時(shí)睦焕,返回null
- 設(shè)置數(shù)據(jù)庫(kù)自增ID
CREATE TABLE `user`(
id BIGINT(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
username varchar(255) NOT NULL COMMENT'用戶名',
....
PRIMARK KEY(id),
UNIQUE KEY `uniq_user_username` (username)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf-8 COMMENT='用戶表';
可以使用SQL查詢最近生成的一個(gè)自增ID
SELECT LAST_INSERT_ID()
- 查詢MySQL數(shù)據(jù)庫(kù)編碼
> show variables like 'char%';
查詢結(jié)果如下
Variable_name | Value | |
---|---|---|
character_set_client | utf8 | |
character_set_connection | utf8 | |
character_set_database | utf8 | |
character_set_filesystem | binary | |
character_set_results | utf8 | |
character_set_server | utf8 | |
character_set_system | utf8 | |
character_sets_dir | E:\Program Files (x86)\MySQL\MySQL Server 5.7\share\charsets\ |
查看這幾種編碼的區(qū)別