SQL_語法

1 數據庫

1.1?新增

create database [if not exists] 數據庫名;

1.2 刪除

drop database [if exists] 數據庫名;

1.3 查詢

?(1) 查看所有數據庫

show databases;

(2) 查看當前數據庫下的所有表

show tables;

2 數據表

2.1 新增

(1) 創建表

create table [if not exists] db_name.table_name (column_name data_type(size) comment '注釋',...
) comment '表名';

??
(2) 復制表

-- 只復制表結構
create table 新表名 as
select * from 舊表名;-- 只復制表結構
create table 新表名 like 舊表名;?-- 復制表結構及其數據
create table 新表名 as
select * from 舊表名;

(3) 生成臨時表

表名 as (查詢語句)

(4) 創建視圖

create or replace view view_name as select statement

2.2 刪除

(1) 刪除表

drop table [if exists] 表名;

(2) 刪除視圖

drop view view_name;

2.3 修改

(1)??修改表名

-- rename:重命名,包括索引、表名
alter table 舊表名 rename to 新表名;

2.4 查詢

(1) 查看表結構

desc 表名;show create table 表名;

3 數據

3.1 新增

(1) insert into ...?values

-- 1 按指定列插入數據
insert into table_name 
(field1,field2...fieldn )
values (value1,value2,...valueN)
,(...)
;-- 2 所有列插入數據
insert into table_name
values (value1,value2,...valueN)
;

(2) insert into ...?select

-- 1 從一個表中復制所有的列插入到另一個表中
insert into table2 
select * from table1; -- 2 從一個表中復制指定列插入到另一個表的指定列中
insert into table2 (column_name(s)) 
select column_name(s) from table1; 

3.2 刪除

(1) 清空表

truncate table table_name;

?3.3 查詢

(1) 條件查詢

select-- as:為表名稱或列名稱指定別名,提高可讀性列名1 as 列別名,列名2 as 列別名
from 表名 as 表別名
where 列名 運算符 列名/常量
[limit number]

(2) 去重查詢

select distinct 字段名1,... from table1;

?(3) 分組查詢

①group by

-- group by:根據一個或多個列對結果集進行分組,在分組的列上可以使用 count、sum、 avg等函數
select 列名,分組函數(列名)
from 表名
group by 列名
-- 分組后過濾
having 表達式
;

②group by ... grouping sets

-- grouping sets允許采用多種方式對結果分組,而不必使用多個select語句,從而提高執行性能.
-- grouping sets語法和普通group by類似,但需要額外執行所需的多個group by組合.例如以下sql的(列名1,列名2), ()),每個內層括號執行一個group by組合,空括號表示group by列表為空,即所有列
select 列名1,列名2,分組函數(列名) 
from 表名 
group by 列名1,列名2 
grouping sets((列名1,列名2),())
;

(4) 排序查詢

-- 將查詢數據排序后再返回數據,按字段值升序/降序,控制NULL值在排序后的結果中的位置.默認升序
select 列名 from 表名 order by 列名 [asc|desc] [nulls first|nulls last]

4 多表關聯查詢

4.1?多表關系

????????①一對一:將其中一方假設成多的一方,在多的一方添加外鍵指向一的一方的主鍵,并且給外鍵字段添加unique約束;

? ? ? ? ②一對多:在多的一方添加外鍵指向一的一方的主鍵;

? ? ? ? ③多對多:借助一張中間表,在中間表中至少有兩個字段分別指向多對多雙方的主鍵.

4.2?連接查詢

(1) 內連接:獲取兩個表中字段匹配關系的記錄

select表1.列名11,表1.列名12,...,表2.列名21,表2.列名22
from 表1
[inner] join 表2 on 表1.列名11 = 表2.列名21and 表1條件and 表2條件
;

(2)?左連接:獲取左表所有記錄,即使右表沒有對應匹配的記錄

select表1.列名11,表1.列名12,...,表2.列名21,表2.列名22
from 表1
left join 表2 on 表1.列名11 = 表2.列名21and 表2條件
where 表1條件
;

(3)?右連接:獲取右表所有記錄,即使左表沒有對應匹配的記錄

select表1.列名11,表1.列名12,...,表2.列名21,表2.列名22
from 表1
right join 表2 on 表1.列名11 = 表2.列名21and 表1條件
where 表2條件
;

4.3 子查詢

(1) where型子查詢

-- 單值子查詢:把內層查詢結果當作外層查詢的比較條件
select 列名,列名... from 表1 where 列名1 = (select 列名1 from 表2);-- in子查詢:把內層查詢結果當作外層查詢的比較條件
-- 適用于子查詢得出的結果集記錄較少,主查詢中的表較大且又有索引的情況
select 列名,列名... from 表1 where 列名 in (select 列名 from 表2);-- exists子查詢:把外層sql的結果,拿到內層sql去查詢,如果內層的sql成立,則該行取出
-- 適用于外層的主查詢記錄較少,子查詢中的表大又有索引的情況
select 列名,列名... from 表1 where exists (select 列名 from 表2 where 表1.列名1 運算符 表2.列名1);

(2) from型子查詢

-- 內層的查詢結果當成臨時表,供外層sql查詢
select 列名1,列名2... from (select 列名1,列名2... from 表名) as 表別名;

4.4?聯合查詢

-- union:將不同表中相同列中查詢的數據展示出來,不包括重復數據
select 列名稱 from 表1名稱 union select 列名稱 from 表2名稱;-- union all:將不同表中相同列中查詢的數據展示出來,不包括重復數據
select 列名稱 from 表1名稱 union all select 列名稱 from 表2名稱;

5 針對性語法

MySQL_語法文章瀏覽閱讀925次。(5) 主鍵約束:約束該單字段(或字段組)的值具有唯一性,不為null且不為空,且只有一個主鍵約束.如主鍵是整數型,可配合auto_increment實現主鍵自增長.(6) 外鍵約束:限制兩個表的關系,保證該字段的值必須來自于主表的關聯列的值.使用時在從表添加外鍵約束,用于引用主表中某列的值.要求主鍵和外鍵的數據類型必須一致.(2) 默認值約束(default):約束該字段有默認值,即該字段不輸入值時,會給一個默認值.一般結合非空約束使用.(1) 非空約束:約束該字段的值不能為null._create table `notification` if not exis https://blog.csdn.net/weixin_43875878/article/details/108302141Hive_語法文章瀏覽閱讀911次。【代碼】Hive_語法。_hive as 別名 https://blog.csdn.net/weixin_43875878/article/details/115050269

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72728.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72728.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72728.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt 開發 OpenGL 程序流程

在用 Qt 開發 OpenGL 程序時,整體的工作流程分為幾個關鍵步驟,最終目的是將數據傳遞給 GPU 并開始渲染。這一過程涉及到從代碼編寫到與著色器連接的多個操作,下面我將詳細講解每個步驟。 1. 設置 Qt 項目 這個步驟是準備工作,你首…

長短期記憶網絡(LSTM)學習指南

長短期記憶網絡(LSTM)學習指南 1. 定義和背景 長短期記憶網絡(Long Short-Term Memory, LSTM)是一種遞歸神經網絡(RNN)的變體,旨在解決傳統RNN在處理長期依賴關系時遇到的梯度消失或爆炸問題。…

仿12306項目(4)

基本預定車票功能的開發 對于乘客購票來說,需要有每一個車次的余票信息,展示給乘客,供乘客選擇,因此首個功能是余票的初始化,之后是余票查詢,這兩個都是控臺端。對于會員端的購票,需要有余票查詢…

第十二屆藍橋杯 異或數列

原題: https://www.acwing.com/problem/content/3424/ 題目大意: A、B兩人的數初始值均為0,他們輪流從X數組中取數,可以將該數與自己的數或對方的數進行異或操作,A先手,當X中的數被取完的時候誰的數大誰…

微服務的認識與拆分

微服務架構通過將應用分解為一組小的、獨立的服務來實現,每個服務圍繞特定業務功能構建,并能獨立部署與擴展。這種架構增強了開發靈活性、提高了系統的可維護性和擴展性,使得團隊可以更快地響應變化和市場需求。 目錄 認識微服務 單體架構 …

高效編程指南:PyCharm與DeepSeek的完美結合

DeepSeek接入Pycharm 前幾天DeepSeek的充值窗口又悄悄的開放了,這也就意味著我們又可以絲滑的使用DeepSeek的API進行各種輔助性工作了。本文我們來聊聊如何在代碼編輯器中使用DeepSeek自動生成代碼。 注:本文適用于所有的JetBrains開發工具&#xff0c…

項目中同時使用Redis(lettuce)和Redisson的報錯

溫馨提示:圖片有點小,可以放大頁面進行查看... 問題1:版本沖突 直接上圖,這個錯表示依賴版本不匹配問題,我本地SpringBoot用的是2.7,但是Redisson版本用的3.32.5。 我們通過點擊 artifactId跟進去 發現它…

Jackson 詳解

目錄 前言 Jackson 是 Java 生態中最流行的 JSON 處理庫之一,廣泛應用于 RESTful API、數據存儲和傳輸等場景。它提供了高效、靈活的 JSON 序列化和反序列化功能,支持注解、模塊化設計和多種數據格式(如 XML、YAML)。本文將詳細介…

H.264,H.265,H.266標準技術改進

關于H.264,H.265,H.266相關資料鏈接: 標準及中文資料鏈接 視頻編碼中的主要技術 視頻編碼的目標是在保證視頻質量的前提下,盡可能減少數據量。以下是視頻編碼中的核心技術: 塊劃分(Block Partitioning) 將視頻幀劃分…

clickhouse安裝路徑

《ClickHouse安裝路徑指南》 大家好,今天我們將一起學習如何在電腦上找到和理解ClickHouse的安裝路徑。這將幫助學生、科研人員以及任何對數據庫技術感興趣的人更好地管理他們的數據查詢工作。 ClickHouse是一款列式存儲數據庫管理系統(DBMS&#xff09…

時序數據庫 InfluxDB 3.0 版本性能實測報告:寫入吞吐量提升效果驗證

亮點總結: TSBS 測試表明,對于少于 100 萬臺設備的數據集,InfluxDB OSS 3.0 的數據寫入速度實際上比 InfluxDB OSS 1.8 更慢。 對于 100 萬臺及以上設備的數據集,InfluxDB OSS 3.0 的數據寫入性能才開始超過 InfluxDB OSS 1.8。…

AS32X601雙核鎖步MCU技術優勢分析

AS32X601是國科安芯公司研制的一系列基于32位RISC-V指令集車規級MCU處理器芯片。主頻高達180MHz,支持雙核鎖步架構,基于軟錯誤防護技術加持,顯著提高芯片安全性能。產品具有高安全、低失效、多IO、低成本、抗輻照等特點。 一、功能安全與可靠…

基于 LeNet 網絡的 MNIST 數據集圖像分類

1.LeNet的原始實驗數據集MNIST 名稱:MNIST手寫數字數據集 數據類型:灰度圖 (一通道) 圖像大小:28*28 類別數:10類(數字0-9) 1.通過torchvision.datasets.MNIST下載并保存到本地…

電池綜合測試儀:科技賦能,精準守護能源安全

在當今這個科技日新月異的時代,電池作為眾多電子設備的心臟,其性能的穩定與高效直接關系到設備的運行質量與使用安全。隨著電動汽車、可穿戴設備、儲能系統等領域的快速發展,對電池性能的檢測與評估提出了更高要求。在此背景下,電…

【Linux 22.4 ubuntu 安裝cuda12.1 完整方案】

下載cuda12.1 官網網址 wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run sudo sh cuda_12.1.1_530.30.02_linux.run!import! 如果已經安裝驅動,則不要選擇dirver那項 添加環境變量 vim ~/.b…

實戰案例分享:Android WLAN Hal層移植(MTK+QCA6696)

本文將詳細介紹基于MTK平臺,適配高通(Qualcomm)QCA6696芯片的Android WLAN HAL層的移植過程,包括HIDL接口定義、Wi-Fi驅動移植以及wpa_supplicant適配過程,涵蓋STA與AP模式的常見問題與解決方法。 1. HIDL接口簡介 HID…

Greenplum6.19集群搭建

一,安裝說明 1.1環境說明 1、首先確定部署的環境,確定下服務器的端口,一般默認是22的端口; 2、當前這份文檔是服務器處于10022端口下部署的(現場生產環境要求,22端口在生產環境存在安全隱患)&…

電商項目-秒殺系統(四)秒殺異步下單防止重復秒殺

一、 防止惡意刷單解決 在生產場景下,可能會有一些人會惡意訪問當前網站,來進行惡意的刷單。這樣會造成當前系統出現一些業務上的業務混亂,出現臟數據,或者造成后端訪問壓力大等問題。 一般要解決這個問題的話,前端可…

原生android 打包.aar到uniapp使用

1.原生安卓里面引入uniapp官方提供的包文件: uniapp-v8-release.aar 2.提供uniapp調用的接口,新建類文件繼承UniModule, package com.dermandar.panoramal;import com.scjt.lib.certlib;import io.dcloud.feature.uniapp.annotation.UniJSM…

Android 多用戶相關

Android 多用戶相關 本文主要記錄下android 多用戶相關的adb 命令操作. 1: 獲取用戶列表 命令: adb shell pm list users 輸出如下: Users:UserInfo{0:機主:c13} running默認只有一個用戶, id為0 ,用戶狀態為運行 2: 創建新用戶 命令: adb shell …