您的位置:首页 > 数据库

数据库操作大全(不断记录积累)!!

2017-08-31 16:58 197 查看

共性:

排序:SQL语言的默认排序方式是升序,ORDER BY 子句若未显式指定升序(ASC)或降序(DESC),那么就认按默认升序排序。
join操作:
select * from a  inner join   b  on  a.id=b.id
INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "a" 中的行在 "b" 中没有匹配,就不会列出这些行。

oracle

1.mybatis中的时间操作,搜索指定时间内的数据!
<![CDATA[
AND TRANS_LASTDATETIME < to_date(#{translastdatetime,jdbcType=VARCHAR},'yyyy-mm-dd')+1
AND TRANS_LASTDATETIME >= to_date(#{translastdatetime,jdbcType=VARCHAR},'yyyy-mm-dd')
]]>

注意:传进来的时间要是字符串格式,不能是时间格式。如果是时间格式,直接如此即可!
<![CDATA[
AND W.CREATE_DATE < #{createDate,jdbcType=TIMESTAMP}+1
AND W.CREATE_DATE >= #{createDate,jdbcType=TIMESTAMP}
]]>2.转时间 to_char(G.DOC_DATE, 'yyyy-mm-dd hh24:mi:ss')

mysql

1.时间操作
1.1搜索某天的数据!
1.1.1:select * from 表名 where to_days(字段名)=to_days(查询时间参数);
1.2DATE_SUB() 函数从日期减去指定的时间间隔。
DATE_SUB(date,INTERVAL expr type)date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。

Type 值MICROSECOND.SECOND.MINUTE.HOUR.DAY.WEEK.MONTH.QUARTER.YEAR.等等

2.删除表数据
   truncate table 表名; 效率比delete快,实际上是删除了表在新建了一个同样的表!但是删除后不会记录mysql日志,所以不可恢复数据!

delete from  表名;  事实上市一条数据一条的清空!
3.删除表用别名
delete m from menu m where m.ID = 10;

要在delete后面也加别名!
3:写一个循环loop的储存过程
begin 
declare i int ;
set i = 1;
add_loop : LOOP
insert into multithreading (thread_name,create_date,last_modify_date,control_num) values 
("线程",current_timestamp(),current_timestamp(),(i));
SET i = i + 1;
IF i >= 100000 THEN
LEAVE add_loop;
END IF;
END LOOP;
end

两个数据库共有方法:

group by;按某个字段分组的后操作。


这是表数据


这是sql按password分组后,因为password=222有两条,所以只显示一条,显示的是相同数据的后一条数据!



当我们使用sum的时候,发现可以直接运算分组后某个字段的综合!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: