MySql(一):基本操作

来源:https://www.cnblogs.com/dintalk/archive/2019/05/10/10844362.html
-Advertisement-
Play Games

sql語句其實不難,尤其對於那些英語稍好一些的人來說! 最最最重要的就是搞清楚sql語句的執行順序!!!數據就像沙子, 語句就是篩子, 沙子按照順序經過給定的篩子,留下來的就是你要的!!! 並不是寫在前面的就先執行!!! 如下: SELECT *, SUM(pnum) '商品總數量' (4) FRO ...


  sql語句其實不難,尤其對於那些英語稍好一些的人來說!

最最最重要的就是搞清楚sql語句的執行順序!!!數據就像沙子, 語句就是篩子, 沙子按照順序經過給定的篩子,留下來的就是你要的!!!

並不是寫在前面的就先執行!!! 如下:

SELECT *, SUM(pnum) '商品總數量' (4)

FROM products (1)

GROUP BY con (2)

HAVING SUM(pnum) > 200; (3)

這句sql語句其實是先執行 (1) FROM products 從products表中篩選所有數據

再執行(2) GROUP BY con 將數據按照con欄位進行分組

再執行(3) HAVING SUM(pnum) > 200 篩選出pnum總數大於200的分組

最後執行(4) SELECT * , SUM(pnum) 將層層過濾的數據顯示出來

註意: 頂哥較懶, 下文的sql語句統統小寫啦

如遇諸如 : Incoreect string value : ..... 之類的報錯請通過以下sql語句查看自己的資料庫預設編碼是否和輸入環境的編碼一致:

SHOW VARIABLES LIKE 'character%';

l 數據定義語言:簡稱DDL(Data Definition Language),用來定義資料庫對象:資料庫, 表, 列等. 關鍵字: create , alter , drop 等

l 數據操作語言:簡稱 DML(Data Manipulation Language), 用來對資料庫中表的記錄進行更新. 關鍵字:insert , delete, update等

l 數據控制語言:簡稱 DCL(Data Control Language), 用來定義資料庫的訪問許可權和安全級別,及創建用戶

l 數據查詢語言:簡稱DQL(Data Query Language), 用來查詢資料庫中表的記錄. 關鍵字:select, from, where 等

 

DDL --database相關操作

 

create database demo; # 創建名為demo的資料庫(預設編碼)

create database if not exists demo; # 不存在則創建demo資料庫

create database demo character set ‘gbk’; # 創建名為demo gbk編碼的資料庫

​ show databases; # 列出mysql伺服器中所有的資料庫

​ show create database demo; # 查看demo資料庫的定義信息

​ crop database demo; # 刪除資料庫demo

​ select database(); # 查看正在使用的資料庫

​ use demo; # 使用demo 資料庫

 

DDL—table相關操作

​ create table demo( # 創建demo表, 指定 id 欄位為主鍵約束,

id int primary key, # name 欄位為非空約束

name varchar(12) not null

);

create table demo1 like demo; # 創建demo1表,表結構和demo表相同

show tables ; # 查看資料庫中所有的表

desc demo; # 查看demo表的結構(Tips:為何是desc? describe是秒速的意思!

drop table demo; # 刪除demo表

drop table if exists demo; # demo表存在則刪除

alter table demo add address varchar(20); # 為demo表增加地址欄位

alter table demo modify address varchar(30); # 修改表中欄位的類型長度

alter table demo change address addr varchar(30); # 修改表中欄位名

alter table demo drop addr; # 刪除表中的欄位

rename table demo to dmeo1; # 將demo表重命名為demo1

alter tabel demo1 character set 'gbk'; #將demo1表的編碼修改為gbk

DML 相關操作

插入表記錄: insert

insert into demo(id, name) values(1, "song");

insert into demo(id) values(2); # 無數據欄位會使用null

更新表記錄:update

update demo set id = 1, name = 'song'; # 將demo表中記錄全部更新

update demo name = 'hui' where id = 2; # 將id為2的記錄名字更新為hui

刪除表記錄

delete from demo; # 刪除demo表中的所有數據

delete from demo where name = 'song'; # 刪除demo表中name為song的記錄

truncate table demo; # 摧毀demo表並重建同結構的表

DQL 相關操作

select * from demo ; # 查詢demo表中所有的數據

select id, name from demo; # 查詢demo表中id 和 name 列的數據

select id as 編號, name as 姓名 from demo as 學生表; # 使用別名,as 可以省略

select distinct name, age from demo; # 去除重覆值

select math + english 總成績 from student; # 從學生表中查詢熟悉和英語的總分並使用別名

select name , age + 10 from student; # 查詢姓名年齡,並將每個人的年齡增加10歲

select * from student where math > 100 or english > 100; # 查詢任意一科超過100的學生

select * from student where name like '_宋%寶'; # 查詢所有名字第二個字是宋且以寶結尾的學生

select * from student where age > 12 order by id asc, age desc; # 查詢年齡大於12的按照id升序排序顯示,id一樣時按照年齡降序排序

select max(age) from student; # 查詢學生表中年齡最大的

select * from student where age > 18 group by sex having name is not null; # 查詢 年齡大於18的按照性別進行分組,且姓名不為空的記錄

Tips: having 和where的區別:

having 是在分組後對數據進行過濾

where 是在分組前對數據進行過濾

having 後面可以使用聚合函數

where 後面不可以使用聚合函數

select * from student limit 0, 3 ; # 查詢索引從0開始,共3條記錄

Tips: 起始索引 = (當前頁頁碼數 -1 ) * 每頁顯示條數

#查詢第一頁的數據信息

select * from sudent limit 0, 3;

#查詢第二頁的數據信息

select * from student limit 3, 3;

 

可關註公眾號,隨時隨地查閱相關文章


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

-Advertisement-
Play Games
更多相關文章
  • redis簡介,redis數據結構中字元串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)的基礎命令 ...
  • --資料庫、模式、表名 "identities"."Test"."tab_test" --修改欄位名 ALTER TABLE "identities"."Test"."tab_test" RENAME "u_name" to realname ; --添加欄位 ALTER TABLE "identi... ...
  • Mysql 索引精講 開門見山,直接上圖,下麵的思維導圖即是現在要講的內容,可以先有個印象~ 常見索引類型(實現層面) 索引種類(應用層面) 聚簇索引與非聚簇索引 覆蓋索引 最佳索引使用策略 1.常見索引類型(實現層面) 首先不談Mysql怎麼實現索引的,先馬後炮一下,如果讓我們來設計資料庫的索引, ...
  • [20190510]rman備份的疑問8.txt--//上午測試rman備份多個文件,探究input memory buffer 的問題.--//補充測試5個文件的情況.--//http://blog.itpub.net/267265/viewspace-2148246/=>[20171204]關於 ...
  • 一、問題 linux下的mysql5.7忘記密碼 二、解決 第一步:打開mysql5.7的配置文件my.cnf,併在裡面增加一行:skip-grant-tables 保存並退出(:wq) 第二步:重啟mysql 第三步:登錄mysql並且修改密碼 用root賬號登錄: [root@iz09a32x1 ...
  • MySQL備份與主備配置 數據備份類型 全量備份:備份整個資料庫 增量備份:備份自上一次備份以來(增量或完全)以來變化的數據 差異備份:備份自上一次完全備份以來變化的數據 全量備份 全量備份的方法有 2 種,一種是利用資料庫管理工具提供的備份恢復和導入導出功能。例如:如果使用 Navicat、PHP ...
  • DATENAME和DATEPART有何區別,Insus.NET寫成一個函數,可以方便查詢與對比: 一個是返回一個字元串,另一個是返回一個整數。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Cr ...
  • Redis 有 string、list、set、zset、hash數據類型。string類型是最基礎的,其他類型都是在string類型上去建立的,所以瞭解熟悉string類型的常用操作對於學習redis非常必要。 APPEND:向鍵的值後面追加字元串,並且返回追加後的值長度 SETBIT:設置或清除 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...