MySQL 基本語法

来源:https://www.cnblogs.com/798911215-Darryl-Tang/archive/2018/05/31/9118570.html
-Advertisement-
Play Games

1.說明: 創建預設資料庫 create database 庫名;2.說明: 創建指定字元編碼的資料庫 create database 庫名 character set 字元編碼格式;3.說明: 刪除資料庫 drop database 庫名;4.說明: 創建新表 create table 表名 (列 ...


1.說明: 創建預設資料庫
create database 庫名;


2.說明: 創建指定字元編碼的資料庫
create database 庫名 character set 字元編碼格式;


3.說明: 刪除資料庫
drop database 庫名;


4.說明: 創建新表
create table 表名 (列名1 列類型 列約束[是否為空,是否為主鍵,是否主鍵自動增加...],
列名2  列類型 列約束[是否為空,是否為主鍵,是否主鍵自動增加...],
...
列名n 列類型 列約束[是否為空,是否為主鍵,是否主鍵自動增加...]
);


5.說明: 刪除表
drop table 表名;


6.說明: 修改表結構
①說明: 添加列
alter table 表名 add 列名 列類型 [約束];
②說明: 修改列
alter table 表名 change 列名 列新名 新列類型 [約束];
③說明: 刪除列
alter table 表名 drop 列名;
④說明: 重命名錶
alter table 表名 rename 新表名;
⑤說明: 修改表的存儲引擎
alter table 表名 engine = '存儲引擎名';


7.說明: 查看當前資料庫伺服器下所有的資料庫
show databases;


8.說明: 查看當前資料庫的編碼格式
show variables like 'character%';


9.說明: 設置當前客戶端字元集
set character_set_client = 字元格式;


10.說明: 設置連接字元集
set character_set_connection = 字元格式;


11.說明: 設置結果字元集
set character_set_results = 字元格式;


12.說明: 使用指定資料庫
use 庫名;


13.說明: 查看當前資料庫下所有的表
show tables;


14.說明: 查看表結構
desc 表名;/describe 表名;


15.說明: 查看之前所定義的表的結構的語法
show create table 表名;


16.說明: 查詢表中所有數據
show * from 表名;


17.說明: 查詢表中指定條件的數據
show * from 表名 where 篩選條件;


18.說明: 插入數值
insert into 表名(需要插入數據的列1,列2...列n)  values(對應列的數值1,數值2...數值n);


19.說明: 修改表中數據
update 表名 set 列=‘新值’where 限定修改條件;


20.說明: 清空表中數據(可恢復)
delete from 表名;


21.說明: 清空表中數據(不可恢復)
truncate table 表名;


22.說明: 刪除符合指定條件的數據
delete from 表名 where 指定條件;


23.說明: 增加指定名稱的主鍵
alter table 表名 add constraint 指定名稱(PK) primary key (需要設為主鍵的列名);


24.說明: 刪除表中主鍵
alter table 表名 drop primary key [主鍵名];


25.說明: 添加指定名稱的外鍵
alter table 從表名 add constraint 指定名稱(FK) foreign key (從表中列名) references 主表(主鍵列);


26.說明: 刪除表中指定名稱的外鍵
alter table 表名 drop foreign key [外鍵名];


27.說明: 查詢表中指定列的值(消除結果中的重覆值)
select distinct 列名 from 表名;


28.說明: 分頁查詢
select 列名 from 表名 where 條件 limit 開始位置,表示行數;


29.說明: select 語法
select [all|distinct]
*|表名.*|表名.列名 [as 列別名]
from 
表名[as 表別名]
[left|right|inner join 表名2] -- 聯合查詢
[where 指定條件] -- 指定結果需要滿足的條件
[group by 進行分組的列名] -- 指定結果按照哪幾個欄位進行分組
[having 指定分組結果的次要條件] -- 過濾分組的記錄必須滿足的次要條件
[order by 進行排序的列名 排序方式] -- 指定查詢記錄按一個或多個條件排序
[limit 限制條件];


30.說明: 範圍查詢
select * from 表名 where 列名 between 小值 and 大值;


31.說明: 模糊查詢
select * from 表名 where 列名 like '模糊查詢條件';


32.說明: 查詢模糊查詢條件中帶轉義字元的數據
select * from 表名 where 列名 like '轉義字元符號_%' escape '轉義字元符號';


33.說明: 包含查詢
select * from 表名 where 列名 in (範圍);


34.說明: 不包含
select * from 表名 where not in (範圍);


35.說明: 數據為空查詢
select * from 表名 where 列名 is null;


36.說明: 數據不為空查詢
select * from 表名 where 列名 is not null;


37.說明: 多表查詢
select * from 表1,表2,...表n where 多表中的關係條件;


38.說明: 分組查詢
select * from 表名 [where 篩選條件] group by 分組列名 [having 分組結果篩選條件];


39.說明: 內連接查詢
①隱式內連接
select 要查詢的列 from 表1,表2...表n where 多表關係條件;
②顯示內連接
select 要查詢的列 from 表1 inner join 表2 on 多表關係條件;


40.說明: 外連接查詢
①左連接
select 要查詢的列 from 表1 left join 表2 on 多表關係條件;
②右連接
select 要查詢的列 from 表2 right join 表2 on 多表關係條件;


41.說明: 變數賦值使用
① set @變數名 = 賦值; 或 set @變數名 := 賦值;
② select @變數名 := 賦值; 或 select @變數名 := 欄位名 from 表名 where 條件;


42.說明: if 條件語句
select if(表達式1,表達式2,表達式3) from 表名 [where 篩選條件...]; 判斷表達式1,成立返回表達式2結果,否則返回表達式3結果。


43.說明: case 條件語句
① select case when 條件1 then 結果1 when 條件2 then 結果2 ... else 其他結果 end [別名] from 表名 [where 篩選條件...];
② select case 要判斷的欄位或表達式 when 常量1 then 結果1 ... else 其他結果 end [別名] from 表名 [where 篩選條件...];


44.說明: 查詢 session 變數
show session variables;


45.說明: 查詢 global 變數
show global variables;


46.說明: 設置系統變數新值
set @@變數類型.變數名 = 新值;


47.說明: 主鍵索引的添加
①創建表時添加: create table 表名 (列名 類型 primary key);
或: create table 表名 (列名 類型 ...,primary key (索引列));
②創建表後添加: alter table 表名 add primary key (索引列);


48.說明: 唯一索引的添加
①創建表時添加: create table 表名 (列名 類型 unique);
或: create talbe 表名 (列名 類型...,unique key [索引名] (索引列));
②創建表後添加: alter table 表名 add unique key [索引名] (索引列);


49.說明: 常規索引的添加
①創建表時添加: create table 表名 (列名 類型 ..., index/key [索引名] (索引列1,索引列2,..));
②創建表後添加: alter table 表名 add index [索引名] (索引列1,索引列2...);


50.說明: 全文索引的添加 (只能用於MyISAM 類型的數據表)(用於char,varchar,text數據列類型)
①創建表時添加: create table 表名 (列名 類型 ...,fulltext(索引列))engine = MyISAM;
②創建表後添加: alter table 表名 add fulltext [索引名] (索引列);


51.說明: 刪除索引
① drop index 索引名 on 表名;
② alter table 表名 drop index 索引名;
③ alter table 表名 drop primary key;


52.說明: 查看索引
show index[或keys] from 表名;


53.說明: 分析SQL語句的執行性能
explain 表名; <==> desc 表名
explain select 語句;


54.說明: 創建視圖
create view 視圖名 as <select語句>;


55.說明: 刪除視圖
drop view 視圖名;


56.說明: 查看視圖
select * from 視圖名;


57.說明: 查看所有視圖
use information_schema;
select * from views;


58.說明: 創建自定義函數
create function 函數名(參數列表)
returns 返回值類型
【begin】 函數主體 【end】;


59.說明: 調用函數
select 函數名;


60.說明: 刪除函數
drop function 函數名;


61.說明: 自定義函數中的變數
declare 變數名【,變數名2...】 變數數據類型 【default 預設值】;


62.說明: 給變數賦值
select 要賦的值 into 要賦值的變數名;
<==> select 要賦值的變數名 := 要賦的值;
<==> set 要賦值的變數名 = 要賦的值;


63.說明: 流程式控制制語句語法:
① if 條件判斷結構
if 條件判斷語句1 then 滿足條件1輸出的結果;
elseif 條件判斷語句2 then 滿足條件2輸出的結果;
...
else 都不滿足上述條件輸出的結果;
end if;
② case 分支結構
Ⅰ: 等值判斷
case 判斷欄位/列/變數
when 值1 then 等於值1輸出的結果;
when 值2 then 等於值2輸出的結果;
...
else 都不滿足上述條件輸出的結果;
end case;
Ⅱ: 區間判斷
case 
when 判斷條件1 then 滿足條件1輸出的結果;
when 判斷條件2 then 滿足條件2輸出的結果;
...
else 都不滿足上述條件輸出的結果;
end case;


64.說明: Loop 迴圈(死迴圈,一般需要跟leave、iterate)
[begin_label:] Loop
迴圈語句
end Loop [end_label];


65.說明: Leave 跳出迴圈控制
leave label;


66.說明: iterate 跳出本次迴圈
iterate label;


67.說明: repeat 迴圈 (滿足條件跳出迴圈)
[begin_label:] repeat
迴圈語句;
until 結束迴圈條件
end repeat [end_label];


68.說明: while 迴圈 (滿足條件時,執行迴圈內的條件)
[begin_label:] while 參與迴圈執行的條件 DO
迴圈語句;
end while [end_label];


69.說明: 創建存儲過程
create procedure 存儲過程名稱 ([存儲過程參數IN\out\inout] 參數名稱 參數類型)
begin
存儲過程的主體;
end;


70.說明: 存儲過程調用
call 存儲過程名稱(參數);


71.說明: 刪除存儲過程
drop procedure 存儲過程名稱;


72.說明: 查看庫內所有存儲過程
show procedure status;


73.說明: 定義異常
declare 異常名 condition for 異常類型; (sqlstate_value 例: sqlstate '42000'或 mysql_error_code 例: 1148)


74.說明: 異常捕獲
declare 錯誤處理方式 handler for 異常名[,...] 錯誤代碼 (處理方式:continue,exit,undo)


75.說明: 關閉自動提交模式
set autocommit = 0;


76.說明: 開啟自動提交模式
set autocommit = 1;


77.說明: 開始事務
start transaction;


78.說明: 提交事務
commit;


79.說明: 數據回滾
rollback;


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

-Advertisement-
Play Games
更多相關文章
  • 一、實驗拓撲圖 二、實驗目標 通過部署Veeam Backup & replication,實現虛擬機的備份和還原。 三實驗要求 1、 如圖所示,開啟實驗環境。(請參考公眾號以前的相關文檔) 2、在SQL資料庫中,添加一個新資料庫veeamdb,添加一個域管理員用戶,預設資料庫為veeamdb,許可權 ...
  • [1] Linux中 “shell終端” 和 “bash解釋器” 的區別 shell終端是通過基於系統調用介面開發出的程式,用來讓用戶與系統進行對話,管理計Linux系統。它是一個命令行工具,操作類似於Windows下的CMD工具。shell終端工具有很多,bash解釋器只是其中的一種,而且是主流L ...
  • 1.輸出變數 : 若想輸出$符號,需要加入轉義符號 2.命令替換 將命令的輸出賦值給變數的方法 這個方法命令可以生成以日期命名的獨一無二的文件 生成了一個新的文件 使用命令替換的方法會創建一個子shell ...
  • 一、實驗目標 1、安裝一臺SQL SERVER(第一臺),然後克隆再一臺(第二台),一共兩台,修改兩台的主機和IP地址。 2、使用註冊的方式,用第二台遠程連接第一臺 二、實驗步驟 1)先打開一臺Windows server 2008 r2,並導入SQL server 資料庫光碟。 2)安裝SQL s ...
  • 長期更新IT編程視頻教程,資料收集整理不易,需要一點費用 有意者加QQ:2773400,非誠勿擾! ...
  • 長期更新IT編程視頻教程,資料收集整理不易,需要一點費用 有意者加QQ:2773400,非誠勿擾! 長期更新IT編程視頻教程,資料收集整理不易,需要一點費用 有意者加QQ:2773400,非誠勿擾! ...
  • 一、準備工作(下麵的內容括弧內寫master的表示僅在master節點執行,all代表所有節點都執行) 1、文件下載: http://archive.cloudera.com/cdh5/parcels/5.7.5/ [CDH-5.7.5-1.cdh5.7.5.p0.3-el7.parcel、CDH- ...
  • 1、概念 2、事務的acid屬性: 3、MySQL事務隔離級別 4、SQL的事務模式 4.1顯示事務 4.2隱式事務 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...