【MySQL】常用SQL語句

介紹常用的DDL語句、DML語句

基本語法

  1. 分號結尾
  2. 使用空格和縮進
  3. 不區分大小寫
  4. --或#注釋單行內容 ?/*注釋多行內容*/

DDL數據定義語句:定義數據庫、表、字段

一、操作庫

-- 創建庫create database db1;-- 創建庫是否存在,不存在則創建create database if not exists db1;-- 查看所有數據庫show databases;-- 查看某個數據庫的定義信息show create database db1;-- 修改數據庫字符信息alter database db1 character set utf8;-- 刪除數據庫drop database db1;

二、操作表

--創建表create table student(id int,name varchar(32),age int ,score double(4,1),birthday date,insert_time timestamp);??-- 查看表結構desc 表名;-- 查看創建表的SQL語句show create table 表名;-- 修改表名alter table 表名 rename to 新的表名;-- 添加一列alter table 表名 add 列名 數據類型;-- 刪除列alter table 表名 drop 列名;-- 刪除表drop table 表名;drop table ?if exists 表名 ;

DML(Data Manipulation Language)數據操作語句:增刪改

一、增加 insert into

-- 寫全所有列名insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);-- 不寫列名(所有列全部添加)insert into 表名 values(值1,值2,...值n);-- 插入部分數據insert into 表名(列名1,列名2) values(值1,值2);

二、刪除 delete

-- 刪除表中數據delete from 表名 where 列名 ?= 值;-- 刪除表中所有數據delete from 表名;-- 刪除表中所有數據(高效 先刪除表,然后再創建一張一樣的表。)truncate table 表名;

三、修改 update

-- 不帶條件的修改(會修改所有行)update 表名 set 列名 = 值;-- 帶條件的修改update 表名 set 列名 = 值 where 列名=值;

DQL(Data Query Language)數據查詢語句:查詢

關于查詢語句有很多,這里基礎的不再介紹。主要介紹排序查詢、聚合函數、模糊查詢、分組查詢、分頁查詢、內連接、外連接、子查詢

一、基礎關鍵字

?BETWEEN...AND (在什么之間)和 ?IN( 集合)

-- 查詢年齡大于等于20 小于等于30SELECT * FROM student WHERE age >= 20 && ?age <=30;SELECT * FROM student WHERE age >= 20 AND ?age <=30;SELECT * FROM student WHERE age BETWEEN 20 AND 30;-- 查詢年齡22歲,18歲,25歲的信息SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25SELECT * FROM student WHERE age IN (22,18,25);is not null(不為null值) 與 like(模糊查詢)、distinct(去除重復值)-- 查詢英語成績不為nullSELECT * FROM student WHERE english ?IS NOT NULL;

?_:單個任意字符

?%:多個任意字符

-- 查詢姓馬的有哪些? likeSELECT * FROM student WHERE NAME LIKE '馬%';-- 查詢姓名第二個字是化的人SELECT * FROM student WHERE NAME LIKE "_化%";-- 查詢姓名是3個字的人SELECT * FROM student WHERE NAME LIKE '___';-- 查詢姓名中包含德的人SELECT * FROM student WHERE NAME LIKE '%德%';-- 關鍵詞 DISTINCT 用于返回唯一不同的值。-- 語法:SELECT DISTINCT 列名稱 FROM 表名稱SELECT DISTINCT NAME FROM ?student ;

二、排序查詢 order by

語法:order by 子句

??????????order by 排序字段1 排序方式1 , ?排序字段2 排序方式2...

注意:

????????????如果有多個排序條件,則當前邊的條件值一樣時,才會判斷第二條件。、

-- 例子SELECT * FROM person ORDER BY math; --默認升序SELECT * FROM person ORDER BY math desc; --降序

三、 聚合函數:將一列數據作為一個整體,進行縱向的計算。

1.count:計算個數

2.max:計算最大值

3.min:計算最小

4.sum:計算和

5.avg:計算平均數

四、分組查詢 grout by

??????語法:group by 分組字段;

??????注意:分組之后查詢的字段:分組字段、聚合函數

-- 按照性別分組。分別查詢男、女同學的平均分SELECT sex , AVG(math) FROM student GROUP BY sex;-- 按照性別分組。分別查詢男、女同學的平均分,人數SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex;-- ?按照性別分組。分別查詢男、女同學的平均分,人數 要求:分數低于70分的人,不參與分組SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex;-- ?按照性別分組。分別查詢男、女同學的平均分,人數 要求:分數低于70分的人,不參與分組,分組之后。人數要大于2個人SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;SELECT sex , AVG(math),COUNT(id) 人數 FROM student WHERE math > 70 GROUP BY sex HAVING 人數 > 2;

五、 分頁查詢

????1. 語法:limit 開始的索引,每頁查詢的條數;

????2. 公式:開始的索引 = (當前的頁碼 - 1) * 每頁顯示的條數

????3. limit 是一個MySQL"方言"

-- 每頁顯示3條記錄SELECT * FROM student LIMIT 0,3; -- 第1頁SELECT * FROM student LIMIT 3,3; -- 第2頁SELECT * FROM student LIMIT 6,3; -- 第3頁

六、內連接查詢:

???1. 從哪些表中查詢數據

???2.條件是什么

???3. 查詢哪些字段

1.隱式內連接:使用where條件消除無用數據

-- 查詢員工表的名稱,性別。部門表的名稱SELECT emp.name,emp.gender,dept.name FROM emp,dept WHERE emp.`dept_id` = dept.`id`;SELECTt1.name, -- 員工表的姓名t1.gender,-- 員工表的性別t2.name -- 部門表的名稱FROMemp t1,dept t2WHEREt1.`dept_id` = t2.`id`;

?2.顯式內連接

-- 語法:select 字段列表 from 表名1 [inner] join 表名2 on 條件-- 例如:SELECT * FROM emp INNER JOIN dept ON emp.`dept_id` = dept.`id`; ??SELECT * FROM emp JOIN dept ON emp.`dept_id` = dept.`id`;

?七、外連接查詢

1.左外連接 -- 查詢的是左表所有數據以及其交集部分。

-- 語法:select 字段列表 from 表1 left [outer] join 表2 on 條件;-- 例子:-- 查詢所有員工信息,如果員工有部門,則查詢部門名稱,沒有部門,則不顯示部門名稱SELECT ?t1.*,t2.`name` FROM emp t1 LEFT JOIN dept t2 ON t1.`dept_id` = t2.`id`;

?2.右外連接 ?-- 查詢的是右表所有數據以及其交集部分。

-- 語法:select 字段列表 from 表1 right [outer] join 表2 on 條件;-- 例子:SELECT ?* FROM dept t2 RIGHT JOIN emp t1 ON t1.`dept_id` = t2.`id`;

?八、子查詢:查詢中嵌套查詢

-- 查詢工資最高的員工信息-- 1 查詢最高的工資是多少 9000SELECT MAX(salary) FROM emp;-- 2 查詢員工信息,并且工資等于9000的SELECT * FROM emp WHERE emp.`salary` = 9000;-- 一條sql就完成這個操作。這就是子查詢SELECT * FROM emp WHERE emp.`salary` = (SELECT MAX(salary) FROM emp);

???1.子查詢的結果是單行單列的

?子查詢可以作為條件,使用運算符去判斷。 運算符: > >= < <= =

-- 查詢員工工資小于平均工資的人SELECT * FROM emp WHERE emp.salary < (SELECT AVG(salary) FROM emp);

???2. 子查詢的結果是多行單列的:

???子查詢可以作為條件,使用運算符in來判斷

-- 查詢'財務部'和'市場部'所有的員工信息SELECT id FROM dept WHERE NAME = '財務部' OR NAME = '市場部';SELECT * FROM emp WHERE dept_id = 3 OR dept_id = 2;-- 子查詢SELECT * FROM emp WHERE dept_id IN (SELECT id FROM dept WHERE NAME = '財務部' OR NAME = '市場部');

???3. 子查詢的結果是多行多列的:

???子查詢可以作為一張虛擬表參與查詢

-- 查詢員工入職日期是2011-11-11日之后的員工信息和部門信息-- 子查詢SELECT * FROM dept t1 ,(SELECT * FROM emp WHERE emp.`join_date` > '2011-11-11') t2 WHERE t1.id = t2.dept_id;-- 普通內連接SELECT * FROM emp t1,dept t2 WHERE t1.`dept_id` = t2.`id` AND t1.`join_date` > ?'2011-11-11'

DCL(Data Control Language)數據控制語句:創建用戶,控制訪問權限

管理用戶

添加用戶

語法:CREATE USER '用戶名'@'主機名' IDENTIFIED BY '密碼';

刪除用戶

語法:DROP USER '用戶名'@'主機名';

權限管理

查詢權限
-- 查詢權限SHOW GRANTS FOR '用戶名'@'主機名';SHOW GRANTS FOR 'lisi'@'%';
授予權限
-- 授予權限grant 權限列表 on 數據庫名.表名 to '用戶名'@'主機名';-- 給張三用戶授予所有權限,在任意數據庫任意表上GRANT ALL ON *.* TO 'zhangsan'@'localhost';
撤銷權限
-- 撤銷權限:revoke 權限列表 on 數據庫名.表名 from '用戶名'@'主機名';REVOKE UPDATE ON db3.`account` FROM 'lisi'@'%';

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

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

相關文章

云手機就是虛擬機嗎?

云手機并非等同于虛擬機&#xff0c;盡管二者存在一定相似性&#xff0c;但有著諸多區別&#xff0c;以下從多個方面來分析&#xff1a;云手機是一種基于云計算技術&#xff0c;將云端服務器虛擬化為手機設備&#xff0c;用戶能通過網絡遠程操控的虛擬手機服務&#xff0c;它從…

準確--Nginx 1.28.0 安裝與配置流程

Nginx 1.28.0 安裝與配置流程 1. 下載與解壓 cd ~ wget http://nginx.org/download/nginx-1.28.0.tar.gz tar -zxvf nginx-1.28.0.tar.gz cd nginx-1.28.02. 配置編譯參數 ./configure \--prefix/home/ynnewweb/nginx \--with-http_ssl_module \--with-http_gzip_static_module…

無標記點動捕新范式:Xsens系統助力人形機器人實現毫米級動作復刻

Xsen搭載Manus數據手套在機器人操作與機器學習中的應用當前&#xff0c;人形機器人正加速向工業裝配、家庭陪護、倉儲物流等場景滲透&#xff0c;而 “如何讓機器人的動作既符合人類運動規律&#xff0c;又能實現高精度執行” 成為制約其落地的核心瓶頸。Xsens 高精度全身動捕系…

mysql57超管root忘記密碼怎么辦

目錄 背景 1.首先停止數據庫 2.使用免密模式啟動 3.修改密碼 3.1刷新權限配置 3.2修改密碼 4.殺掉mysql 5.重新正常啟動mysql 6.查看mysql狀態 7.驗證 7.1首先服務器本地驗證 7.2遠程驗證 背景 數據庫密碼忘記了,急的抓耳撓腮,怎么也想不起來,于是就開始重置吧 1.…

RESTful API:@RequestParam與@PathVariable實戰對比

RequestParam vs PathVariable 在刪除和查找操作中的使用差異 在項目實戰中&#xff0c;選擇使用 RequestParam 還是 PathVariable 來接收ID參數&#xff0c;通常基于以下幾個考慮因素&#xff1a; 1. RESTful API 設計原則 查找操作使用 PathVariable GetMapping("/depts…

劇本殺小程序系統開發:開啟沉浸式社交娛樂新紀元

在當今數字化浪潮席卷的時代&#xff0c;社交娛樂方式正經歷著前所未有的變革。劇本殺&#xff0c;這一融合了角色扮演、推理懸疑與社交互動的線下娛樂項目&#xff0c;近年來迅速風靡全國&#xff0c;成為年輕人熱衷的社交新寵。而隨著移動互聯網的蓬勃發展&#xff0c;劇本殺…

中線安防保護器,也叫終端電氣綜合治理保護設備為現代生活筑起安全防線

中線安防保護器&#xff08;Neutral Line Protection Device&#xff0c;簡稱NLPD&#xff09;是一種專門用于監測和保護電力系統中性線的安全裝置。中線安防保護器的基本原理為:通過電流檢測環節采集系統中性線上過電流信息&#xff0c; 經控制器快速計算并提取各次諧波電流的…

Spring Cloud Alibaba快速入門02-Nacos配置中心(下)

文章目錄前言配置中心 - 數據隔離示例1.先創建命名空間2.創建配置3.克隆配置4.動態切換環境5.yml多文檔模式spring.profiles.activedevspring.profiles.activetest總結前言 上一章簡單了解了Nacos配置中心的基本用法&#xff0c;這一章將開始Nacos配置中心的實戰案例。 配置中…

基于結構光相移法的三維重建

基于結構光相移法的三維重建程序 1. 介紹 結構光相移法是一種常用的三維重建技術&#xff0c;通過投射條紋圖案并捕捉其變形來計算物體的三維形狀。相移法通過多次投射不同相位的條紋圖案&#xff0c;利用相位信息來提取物體表面的深度信息。 2. MATLAB實現 2.1 生成條紋圖案 首…

機器學習10——降維與度量學習(K近鄰、多維縮放、主成分分析)

上一章&#xff1a;機器學習09——聚類 下一章&#xff1a;機器學習11——特征選擇與稀疏學習 機器學習實戰項目&#xff1a;【從 0 到 1 落地】機器學習實操項目目錄&#xff1a;覆蓋入門到進階&#xff0c;大學生就業 / 競賽必備 文章目錄一、k近鄰學習&#xff08;kNN&#…

Js 圖片加載完成 與 圖片緩存加載的區別

這兩個有什么區別// 圖片加載完成后淡入$img.on(load, function () {$img.css(opacity, 1);});// 處理圖片緩存情況if ($img[0].complete) {$img.css(opacity, 1);}要理解這兩段代碼的區別&#xff0c;需要先明確它們的核心作用場景和執行時機差異—— 本質是解決 “圖片加載完…

國產化PDF處理控件Spire.PDF教程:如何在 Java 中通過模板生成 PDF

在企業級應用開發中&#xff0c;生成 PDF 文檔是一項非常常見的需求。無論是發票、報告、合同&#xff0c;還是其他業務文檔&#xff0c;開發人員通常都需要一種高效、穩定的方式來創建 PDF。與其逐行繪制 PDF 內容&#xff0c;不如直接利用 模板 ——常見的模板形式包括 HTML …

Spring Cloud Gateway WebFlux現cvss10分高危漏洞,可導致環境屬性篡改

漏洞概述Spring官方披露了Spring Cloud Gateway Server WebFlux組件中存在一個高危漏洞&#xff08;編號CVE-2025-41243&#xff09;&#xff0c;該漏洞在特定配置下允許攻擊者篡改Spring環境屬性。該漏洞已獲得CVSS 10.0的最高嚴重性評級。根據安全公告&#xff0c;該漏洞被描…

嵌入式 SQLite 數據庫開發筆記

嵌入式 SQLite 數據庫開發入門筆記在嵌入式開發中&#xff0c;數據存儲與管理是不可或缺的環節。對于資源有限的系統&#xff0c;輕量級數據庫 SQLite 是一個非常理想的選擇。它無需獨立服務進程&#xff0c;直接嵌入到應用中即可使用&#xff0c;既能滿足數據持久化需求&#…

Spark面試題及詳細答案100道(71-80)-- 配置與部署

《前后端面試題》專欄集合了前后端各個知識模塊的面試題&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

Redis 面試

1、主從集群1、構建主從集群單節點Redis的并發能力是有上限的&#xff0c;要進一步提高Redis的并發能力&#xff0c;就需要搭建主從集群&#xff0c;實現讀寫分離。主寫從讀&#xff0c;主可以讀也可以寫&#xff0c;從只能讀利用docker-compose文件來構建主從集群&#xff1a;…

如何使用PostgreSQL數據庫進行數據挖掘與預測分析

如何使用PostgreSQL數據庫進行數據挖掘與預測分析 關鍵詞:PostgreSQL,數據挖掘,預測分析,數據庫,機器學習 摘要:本文旨在深入探討如何利用PostgreSQL數據庫進行數據挖掘與預測分析。首先介紹了使用PostgreSQL進行此類操作的背景信息,包括目的、預期讀者、文檔結構等。接…

ZooKeeper vs Redis:分布式鎖的實現與選型指南

一、Redis 分布式鎖&#xff1a;追求極致的性能 Redis 分布式鎖基于內存操作&#xff0c;其核心思想是在內存中設置一個唯一的鍵值對來表示鎖的持有。 1. 基礎實現&#xff08;SETNX Lua&#xff09; 最簡單的實現是使用 SETNX&#xff08;SET if Not eXists&#xff09;命令&…

vue基于Springboot框架的考研咨詢平臺系統實現

目錄前言-本系統介紹已開發項目效果實現截圖開發技術詳細介紹核心代碼參考示例1.建立用戶稀疏矩陣&#xff0c;用于用戶相似度計算【相似度矩陣】2.計算目標用戶與其他用戶的相似度系統測試總結源碼獲取詳細視頻演示或者查看其他版本&#xff1a;文章底部獲取博主聯系方式&…

蘋果用戶速更新!macOS存嚴重漏洞,用戶隱私數據面臨泄露風險

漏洞概況近日&#xff0c;macOS系統發現一個CVSS評分高達 9.8 的高危漏洞&#xff0c;該漏洞可能允許應用程序繞過系統保護機制&#xff0c;非法訪問受保護的用戶數據。該漏洞編號為 CVE-2025-24204&#xff0c;目前已有概念驗證&#xff08;PoC&#xff09;代碼公開。漏洞影響…