項目中常見資料庫知識

来源:http://www.cnblogs.com/whiteme/archive/2017/08/10/7337778.html
-Advertisement-
Play Games

最近在寫一些介面,總結一下目前想到的一些需要註意的點,說的並不是sqlserver與其他資料庫語句的區別,只是想到了就寫下來了,老規矩之後想到了在添加進去 分頁 sqlserver sqlserver一般通過not in/row_number()(不支持limit)一共兩種,網上還有一種是要在201 ...


  最近在寫一些介面,總結一下目前想到的一些需要註意的點,說的並不是sqlserver與其他資料庫語句的區別,只是想到了就寫下來了,老規矩之後想到了在添加進去

分頁

sqlserver

  sqlserver一般通過not in/row_number()(不支持limit)一共兩種,網上還有一種是要在2012版本之後的,我沒弄過就不寫了

 select top (pageNum) 欄位1,欄位2
   from 表名   where id not in (
      select top (page*pageNum) 欄位1,欄位2 from 表名 order by id
 ) order by id
    ==========》需要page當前頁頁數,pageNum當前頁顯示條數  思路是:通過not in查數據,需要一個排序的欄位  示例:select top 10 * from users where pid not in (select top 0 pid from users order by pid) order by pid
 select top (pageNum)
   from( 
    select ROW_NUMBER() over ( order by pid ) rownumber , *      from 表名  =====>獲取全部的數據  ) A   where rownumber > (page*pageNum);====》這個全部數據的rownumber大於這個數  示例:select top 10 from (select ROW_NUMBER() over ( order by pid ) rownumber,* from users ) A where rownumber>0

mysql

  mysql的分頁一般都是通過limit來的(不支持top)

  select * from 表名 limit m,n    ===>m表示從第幾個開始,n表示當前頁顯示條數     m=(當前頁-1)*當前頁的數目
 示例:select* from users limit 0,10

null值  (null在資料庫中表示沒有對這列數據賦值)

    查詢資料庫中null值,是不能使用“ =null ”或者” =“” ”(需要提一點的適null的長度是null,""的長度是0),而是使用is null/  is not null

sqlserver中的covert()函數的轉換格式描述

  具體的轉換格式在下麵的例子中可以看到,列舉的是當前時間

  SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
  SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06
  SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16
  SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06
  SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06
  SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06
  SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06
  SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
  SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46
  SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
  SELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06
  SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16
  SELECT CONVERT(varchar(100), GETDATE(), 12): 060516
  SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
  SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
  SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
  SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
  SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
  SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
  SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47
  SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
  SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
  SELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
  SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
  SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
  SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
  SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
  SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
  SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
  SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49
  SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
  SELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
  SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
  SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516
  SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
  SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
  SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
  SELECT CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
  SELECT CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
  SELECT CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
  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(從第幾個開始))    

 create table users(
  id int primary key not null,
  name varchar(50)
  );
 create sequence users_id increment by 1 start with 1 maxvalue 9999;
 使用時:
 insert into users(users_id.nextval,'whiteme');

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 事務是資料庫進行併發控制非常重要的機制,通過本文來系統的瞭解一下事務到底是怎麼回事。 1、什麼是事務? 事務是作為單個邏輯工作單元執行的一系列操作,它由一條或者一組語句組成,它們麽全部成功,要麼全部失敗。 舉個例子,比如在12306訂火車票,要麼你訂票成功,餘票顯示就減少一張;要麼你訂票失敗,餘票顯 ...
  • 用c++簡單封裝了redis的基本操作(hiredis) 介面包括:①鏈接和斷開連接、②設置鍵值對(set)、③查詢鍵值對(get)、④刪除鍵值對(del)、⑤將所有鍵顯示出來 若任何一處發生錯誤,返回對應的錯誤狀態碼,同時可以調用getErrorMsg()查看錯誤信息 所有碼包括: M_REDIS ...
  • 最近在做MySQL主從資料庫同步測試,發現了一些問題,其中主從同步延遲問題是其中之一,下麵內容是從網上找到的一些講解,記錄下來以便自己學習; MySQL的主從同步是一個很成熟的架構,優點為:①在從伺服器可以執行查詢工作(即我們常說的讀功能),降低主伺服器壓力;②在從主伺服器進行備份,避免備份期間影響 ...
  • 上周拿到了我的第一個工作任務,統計一個按天分區每天都有百億條數據條的hive表中account欄位的非重用戶數(大概兩千萬)。後來又更改為按id欄位分別統計每個id的用戶數。 按照我資料庫老師的教導,我很輕易的跳出來了count(distinct account)這個句子。然後寫上了一行查詢,等待了 ...
  • 我們知道Oracle資料庫真正存放數據的是數據文件(Data File),oracle表空間(tablespace)實際上是一個邏輯的概念,在物理上是並不存在的,那麼把一組data files捻在一起就成為一個表空間。表空間屬性:一個資料庫可以包含多個表空間,一個表空間只能屬於一個資料庫一個表空間包 ...
  • 在sqlserver2008中“新建查詢”,執行批量添加語句的執行時間: 10000 條數據 用了3秒50000 條數據 21秒100000 條數據 42秒40000 條數據 16秒200000 條數據 1:37秒 ...
  • Hbase集群監控 Hbase JMX集群監控,監控每個regionServer的總請求數,readRequestsCount,writeRequestCount,region分裂,region合併,Store 數據來源:/jmx?qry=Hadoop:service=HBase,name=Reg... ...
  • 仔細觀察上面幾個圖,比較下 oracle資料庫中的+操作符竟然可以替換left join 和right join sql server暫時沒用到過 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...