資料庫學習筆記 4 強大的SQL

来源:https://www.cnblogs.com/hoyu/archive/2018/03/21/8617279.html
-Advertisement-
Play Games

其實這篇文章應該至少一個星期前就應該更新了,但是最近小猿我和喜歡了好多年的女神牽手成功,所以這些天有點飄。 聚集函數 最經常用過的聚集函數也就 avg 平均值 sum 求和 min 最小值 max 最大值 count 記錄數 分組聚集 Group by 對於Group by只要記住如果Group b ...


其實這篇文章應該至少一個星期前就應該更新了,但是最近小猿我和喜歡了好多年的女神牽手成功,所以這些天有點飄。

---創建表結構
create table tablename
(
    id int,
    name varchat(20) not NULL,
    address varchat(100) ,
    primary key (id),
    FOREIGN  KEY (id) REFERENCES retable
);


---刪除數據
delete from tablename;

---刪除關係(刪除表)
drop table tablename;

---添加列
alter table tablename add name varchat(20);

---刪除列
alter table tablename drop name;




---插入數據
insert into tablename values(...);

---查詢語句(多關係查詢)
select * from tablename where ...;

---對查詢查詢內容進行去重
select distinct name from tablename;

聚集函數

最經常用過的聚集函數也就

  • avg 平均值
  • sum 求和
  • min 最小值
  • max 最大值
  • count 記錄數

分組聚集 Group by

對於Group by只要記住如果Group by子句中沒有出現的屬性,在select子句中只能以聚集函數的形式體現。

join using

這次學習還遇到一個坑,不理解什麼是join using。查了一遍才知道,當兩個表關聯欄位採用相同明明規範時可以用join using 簡化join on

select * from A join B on a.name=b.name

可以替換成 select * from A join B using(name)

top

由於我是一本《sqlserver寶典2012》和《資料庫系統概念》一起看的,所以有時候能遇到一些小差異

《資料庫系統概念》里的練題里有一個是找出工資最高的所有人(工資最高有很多人)

我的第一個想法就是用前幾天看的top配合with ties就可以簡單的解決這個問題了,執行了一下發現mysql並不支持這樣的語法與之對應的是limit,Oracle中與之對應的應該是利用rownum。

外連接

外連接分為左、右、全三種連接方式。

左外連接以左表為主表,右表中沒有的指補null,右外連接相反。

全外連接左右都會判斷。

SQL VIEW

總是聽周圍的大神們講這個功能或者那個功能應該用SQL視圖或許能簡單一點,這回終於一睹SQL view的芳容。

視圖包含行和列,就像一個真實的表。視圖中的欄位就是來自一個或多個資料庫中的真實的表中的欄位。我們可以向視圖添加 SQL 函數、WHERE 以及 JOIN 語句,我們也可以提交數據,就像這些來自於某個單一的表。

知道了SQL view是怎麼回事,我開始糾結於應用程式怎麼調用的問題。其實很簡單視圖就是存放在資料庫上的虛擬表,只不過只有在使用的時候數據才會被查詢出來。

SQL中的時間

SQL中表示時間的類型基本有三種

  • date 表示年月日
  • time 表示時分秒
  • timestamp 是date和time的結合

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

-Advertisement-
Play Games
更多相關文章
  • 1、複製/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問許可權。 2、編輯/etc/group文件,添加組hadoop。 3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號; ...
  • 貼上內容來源https://www.cnblogs.com/Alier/p/6358447.html 1 備份原來的更新源 2 修改更新源 打開sources.list (這就是存放更新源的文件) 將下麵所有內容複製,粘貼並覆蓋sources.list文件中的所有內容 3 讓更新源生效 ...
  • 本文收錄在Linux運維企業架構實戰系列 做了幾周的測試,踩了無數的坑,總結一下,全是乾貨,給大家分享~ 一、elk 實用知識點總結 1、編碼轉換問題(主要就是中文亂碼) (1)input 中的codec => plain 轉碼 將GB2312 的文本編碼,轉為UTF-8 的編碼 (2)也可以在fi ...
  • SecureCRT 是一款非常好用的遠程終端連接軟體,且支持 Windows/Linux/macOS 全平臺。由於現在工作平臺主要在 Linux 系統上,SecureCRT 也是必備軟體。一開始安裝的是 Ubuntu 16.04 LTS,但用了了一段時間還是不喜歡 Unity 的界面,自己也是一個喜 ...
  • 本文為mariadb官方手冊:SET Variable的譯文。 原文:https://mariadb.com/kb/en/set-variable/我提交到MariaDB官方手冊的譯文:https://mariadb.com/kb/zh-cn/set-variable/ 語法 存儲程式stored ...
  • pt-table-checksum和pt-table-sync分別檢驗master-slave的數據不一致並修複。 1、本次測試環境 2、 3、開始檢測差異 1)創建一個用戶,可以訪問master和slave,master上執行如下的創建用戶命令 構造master-slave的差異環境,slave同 ...
  • redis中的很多操作都是基於上面介紹的redis對象,瞭解這些對象的底層實現,可以為之後更多的redis特性做準備。 ...
  • 我們通常是使用 某條件 是否包含於 某列中 ,簡單點 就是:select * from 表名 where 欄位名 like '%條件數據%'; 現在說下 某列 被包含於 條件數據中 接下來看查詢結果 可以看出 過濾掉330302,4401數據 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...