度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1332|回复: 11
打印 上一主题 下一主题

[分享] 项目中常见数据库知识

[复制链接]

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
跳转到指定楼层
楼主
发表于 2020-6-10 14:33:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
分页
sqlserver
  sqlserver一般通过not in/row_number()(不支持limit)一共两种,网上还有一种是要在2012版本之后的,我没弄过就不写了
  1.  select top (pageNum) 字段1,字段2
  2.    from 表名
  3.   where id not in (
  4.       select top (page*pageNum) 字段1,字段2 from 表名 order by id
  5.  )  order by id        
  6.     ==========》需要page当前页页数,pageNum当前页显示条数  思路是:通过not in查数据,需要一个排序的字段
  7.  示例:select top 10 * from users where pid not in (select top 0 pid from users order by pid) order by pid
复制代码
  1. select top (pageNum)
  2.    from(
  3.     select ROW_NUMBER() over ( order by pid ) rownumber ,  *
  4.          from 表名  =====>获取全部的数据
  5.      ) A
  6.   where rownumber > (page*pageNum);====》这个全部数据的rownumber大于这个数
  7.  示例:select top 10 from (select ROW_NUMBER() over ( order by pid ) rownumber,* from users ) A where rownumber>0
复制代码

mysql
  mysql的分页一般都是通过limit来的(不支持top)
  1.  select * from 表名 limit m,n    ===>m表示从第几个开始,n表示当前页显示条数     m=(当前页-1)*当前页的数目
  2.  示例:select* from users limit 0,10
复制代码

null值  (null在数据库中表示没有对这列数据赋值)
    查询数据库中null值,是不能使用“ =null ”或者” =“” ”(需要提一点的适null的长度是null,""的长度是0),而是使用is null/  is not null
sqlserver中的covert()函数的转换格式描述
  具体的转换格式在下面的例子中可以看到,列举的是当前时间
  1.   SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
  2.   SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06
  3.   SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16
  4.   SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06
  5.   SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06
  6.   SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06
  7.   SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06
  8.   SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
  9.   SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46
  10.   SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
  11.   SELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06
  12.   SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16
  13.   SELECT CONVERT(varchar(100), GETDATE(), 12): 060516
  14.   SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
  15.   SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
  16.   SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
  17.   SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
  18.   SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
  19.   SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
  20.   SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47
  21.   SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
  22.   SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
  23.   SELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
  24.   SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
  25.   SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
  26.   SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
  27.   SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
  28.   SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
  29.   SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
  30.   SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49
  31.   SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
  32.   SELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
  33.   SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
  34.   SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516
  35.   SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
  36.   SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
  37.   SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
  38.   SELECT CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
  39.   SELECT CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
  40.   SELECT CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
  41.   SELECT CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
复制代码

自增长id
mysql     id int auto_increment primary key not null
sqlserver          id  int identity(1,1) primary key not null
oracle(通过序列来实现自增长increment by 1(每次增加量) start with 1(从第几个开始))  
  1. create table users(
  2.   id int primary key not null,
  3.   name varchar(50)
  4.   );
  5. create sequence users_id increment by 1 start with 1 maxvalue 9999;
  6. 使用时:
  7. insert into users(users_id.nextval,'whiteme');
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
沙发
 楼主| 发表于 2020-6-10 14:33:50 | 只看该作者
回复

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
板凳
 楼主| 发表于 2020-6-10 14:34:30 | 只看该作者
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
地板
发表于 2020-6-10 15:12:02 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
5#
发表于 2020-6-10 18:21:43 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
6#
 楼主| 发表于 2020-6-11 14:22:22 | 只看该作者

点评

下次整个回帖奖励赛  详情 回复 发表于 2020-6-11 15:03
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
7#
 楼主| 发表于 2020-6-11 14:23:15 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
8#
发表于 2020-6-11 15:03:12 | 只看该作者

下次整个回帖奖励赛
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
9#
 楼主| 发表于 2020-6-14 14:48:40 | 只看该作者
张兴康 发表于 2017-8-11 15:03
下次整个回帖奖励赛

回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
10#
发表于 2020-6-14 15:10:29 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-9-28 05:29 , Processed in 0.239784 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表