数据库小知识

  1. oracle 数据库查询, 字符串不能用双引号
    条件中的数字age="1"和age=1均有效, 与字段类型无关


    数据库小知识_第1张图片
    image.png

    数据库小知识_第2张图片
    image.png

以上均可以查到数据

  1. dbcp线程池的DelegatingPrePareStatement设置的问号参数保存在_stmt --> _stmt --> Preparestatement --> parameterString中

  2. mysql中保存boolean值用tinyint类型, mysql没有boolean类型, jdbc设置时用PreparedStatement setBoolean(int parameterIndex, boolean x) , Insert语句中设置true不能带单引号:

-- mysql会自动将true转为1
Insert into table_name(id,myTinyInt) values(1,true);
  1. 查询不同数据库所有保留关键字
    1). oracle
select * from v$reserved_words order by keyword asc;
数据库小知识_第3张图片
查询结果

2). mysql查找关键字目前只知道官网手册可以查询.

JDBC只提供了部分关键字的获取办法:

DatabaseMetaData.getSQLKeywords() 

获取此数据库的还“不”是 SQL:2003 关键字的所有 SQL 关键字的逗号分隔列表。
https://en.wikipedia.org/wiki/SQL:2003

  1. sql关键字为字段名时, sql语句中使用到时可以使用双引号" "括起来, 可以防止报错, 双引号支持oracle和mysql, 反引号只支持mysql
  2. mysql的binary数据类型的长度单位是byte,设置长度为1,执行sql
    ···sql
    insert into tablename values(b'1000001');
    ···
    会看到显示为 A , 其中b'1000001'是二进制的65,对应的ascii字符为A
  3. MySQL有四种BLOB类型:
      ·tinyblob:仅255个字符
      ·blob:最大限制到65K字节
      ·mediumblob:限制到16M字节
      ·longblob:可达4GB
  4. Oracle中Clob与Blob类型:
    Clob(Character Large Object):数据库中的一种保存文件所使用的类型。 可以用来保存大文本,xml等
    Blob(Binary Large Object):二进制大对象,是一个可以存储二进制文件的容器。可以保存图片,文件,音频等
  5. 表中设置更新时间字段,类型timestamp,默认值 '1980-01-01 00:00:00',每次更新纪录时update_time字段修改为当前时间CURRENT_TIMESTAMP ,字段备注为'最近一次更新时间'。这样做省去了每次更新数据都需要在代码中添加修改时间戳的麻烦
update_time timestamp NULL DEFAULT '1980-01-01 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '最近一次更新时间'
  1. MySQL批量插入
INSERT INTO student VALUES('1','mwq','18'),('2','shh','19'),('3','wdl','20')
  1. mybatis中mapper文件一般默认的两个SQL
selectAll() 
selectByLimit(Object obj)
  1. 类似用户表一般都有created_by create_time last_updated_by last_update_time is_deleted五个字段
  2. mybatis查询方法,若方法返回值是List,查询结果为0时,返回空List;若方法返回值是Object,查询结果为0时,返回null
  3. 设置数据库自增ID
  4. 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查询最近生成的一个自增ID

    SELECT LAST_INSERT_ID()
    
    1. 查询MySQL数据库编码
    > show variables like 'char%';
    

    查询结果如下

    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\

    查看这几种编码的区别

    你可能感兴趣的:(数据库小知识)