例如有这样一张表,存的是学生测验成绩,测验记录可以有多条,我们需要筛选出每个学生最近一次的测验记录 mysql> desc t_student_test; +--------------+--------------+------+-----+---------+-------------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+--…

2022-01-20 0条评论 12点热度 0人点赞 admin 阅读全文

实现类似关系数据库的select in subquery,如下: SELECT * FROM table1 WHERE some_id NOT IN ( SELECT id FROM table2 WHERE some_field = 'some_value' ) db.collect_name1.find( { "some_id": { $nin: db.collection_name2.find({}, { "some_field": "some_value" }).toArray().map(e => …

2022-01-17 0条评论 14点热度 0人点赞 admin 阅读全文

MySQL下有一个特殊的数据库记录者所有的表,以及表的结构,那就是information_schema,我们可以查询这个数据库来找到所有数据库的列表,所有表的列表,以及某个表的所有列的详细信息。 找出某个数据库下的所有表,并修改字符集为:utf8mb4_general_ci 用到information_schema.tables 存储着全部数据库的表 -- 得到数据库是test的所有表的详细信息列表 SELECT * from information_schema.tables where table_schema…

2022-01-13 0条评论 13点热度 0人点赞 admin 阅读全文

需要根据某个字段的值,来比较两个表的异同,某个字段的内容,1)两个表里都有;2)只有A表有,B表没有;3)只有B表有,A表没有。 主要思路是把两张表UNION起来,然后根据需要比较的字段来分组,根据count(分组字段)的数量来比较,如果count=2,说明两张表都有,如果count=1说明只有某一张表才有。 具体的SQL如下: -- 比较两张表不同的内容 compare_key就是要比较的字段,假设两个表都有,没有的话,或者两个表的要比的字段不一样,那么只要union的时候用别名就可以了(或者建立虚拟字段) SE…

2022-01-05 0条评论 21点热度 0人点赞 admin 阅读全文

需要得到Oracle数据库当前User下所有的表的列表 可以使用SQL查询到,如下 -- 一行一个表的名字 SELECT DISTINCT OBJECT_NAME FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE' -- 用逗号隔开,把多个表连起来 SELECT wm_concat(DISTINCT OBJECT_NAME) FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE'  

2022-01-01 0条评论 23点热度 0人点赞 admin 阅读全文

使用DBeaver连接MySQL,遇到错误:public key retrieval is not allowed,以及其他一些错误(例如serverTimezone错误),是因为MySQL的一些驱动属性参数没有设置正确(或者说没有给默认的属性参数),我们平时用Java或者其他语言连接MySQL的时候,那个url也是带了一堆的参数的,例如: jdbc:mysql://localhost:3306/some_db?allowPublicKeyRetrieval=true&autoReconnect=true&…

2021-12-22 0条评论 44点热度 0人点赞 admin 阅读全文

MySQL默认在Windows上是对大小写不敏感的(不区分大小写),但是默认在Linux上是区分大小写的。所以规范一点,为了避免奇奇怪怪的问题,还是建议开发和使用都区分大小写。 一般来说的规则是:在定义数据库、表、列的时候全部采用小写字母加下划线的方式,不使用任何大写字母 不过如果遇到特殊情况,或者因为老项目不适合修改代码,只能让MySQL数据库对大小写不敏感,要怎么做呢? MySQL中使用这个来控制的 正常安装的情况:修改my.conf (一般是正常安装的,可能在/etc/my.cnf) 增加如下lower_ca…

2021-11-28 0条评论 36点热度 0人点赞 admin 阅读全文

JSK1.8以上的Java应用(如SpringBoot/SpringWeb等)连接MSSQL(也可能是MSSQL Server的版本比较旧),发现无法链接,报错如下: The server selected protocol version TLS10 is not accepted by client preferences TLS12 com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全…

2021-11-25 0条评论 43点热度 0人点赞 admin 阅读全文

Oracle的服务器端备份示例,如下: Oracle的客户端备份详见:https://blog.terrynow.com/2021/10/26/oracle-client-dump-exp-imp-examples/ #impdp expdp是在服务器上使用的,如果用客户端去备份服务器的东西,只能用imp和exp grant create any directory to USER1; #/home/oracle/dump要注意owner等等权限 create or replace directory my_dum…

2021-11-21 0条评论 47点热度 0人点赞 admin 阅读全文

如题,Oracle中要用SQL得到日期中的年份、月份、日,如下: -- 得到年份 select to_number(to_char(sysdate,'yyyy')) from dual; -- 得到年月日的数字,例如当前2021年11月20日,就是20211120 select to_number(to_char(sysdate,'yyyyMMdd')) from dual; -- 或者使用Oracle提供的 Extract 函数 select sysdate from dual; --获得当前系统时间 selec…

2021-11-20 0条评论 54点热度 0人点赞 admin 阅读全文