入門MySQL——基礎語句篇

来源:https://www.cnblogs.com/kunjian/archive/2019/08/01/11285443.html
-Advertisement-
Play Games

前言: 前面幾篇文章,我們介紹了MySQL的基礎概念及邏輯架構。相信你現在應該有了自己的一套MySQL環境,接下來我們就可以開始練習MySQL了。本文將從MySQL最基礎的語句出發,為你展示出創建及修改不同對象應該使用的標準語句。 1.創建資料庫 創建資料庫的官方標準語法為: 其中{}中的內容為多選 ...


前言: 

前面幾篇文章,我們介紹了MySQL的基礎概念及邏輯架構。相信你現在應該有了自己的一套MySQL環境,接下來我們就可以開始練習MySQL了。本文將從MySQL最基礎的語句出發,為你展示出創建及修改不同對象應該使用的標準語句。

1.創建資料庫

創建資料庫的官方標準語法為:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_specification] ...

create_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name

其中{}中的內容為多選一,[]中的內容可帶可不帶,後續若有此類符號也是同等意思。
一般工作中常常這樣創建資料庫:

CREATE DATABASE IF NOT EXISTS `test_db` DEFAULT CHARACTER SET utf8;

想要查看資料庫的創建語句,可以這樣查看:

mysql> show create database test_db;
+----------+------------------------------------------------------------------+
| Database | Create Database                                                  |
+----------+------------------------------------------------------------------+
| test_db  | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+------------------------------------------------------------------+

2.修改資料庫

一般情況下很少去修改資料庫,官方給出的標準語法為:

ALTER {DATABASE | SCHEMA} [db_name]
    alter_specification ...

alter_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name

特殊情況下我們可能會修改資料庫的字元集,這時候我們可以這樣書寫:

ALTER DATABASE `test_db` DEFAULT CHARACTER SET utf8mb4;

3.刪除資料庫

刪除資料庫可要小心啊!千萬不要刪庫跑路哦。此類需求一般極少,不過我們也要會呀,連庫都不會刪豈不是很沒面子~~ 還是看下官方文檔語法:

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

相比創建和更改來講,刪除就顯得簡單粗暴很多。所有我們操作的時候要格外小心,刪除前建議做下備份。
比如我們要刪除test_db庫,我們可以這樣寫:

DROP DATABASE IF EXISTS `test_db`;

刪除之後我們再執行show database就看不到test_db庫了。

4.創建表

創建數據表是我們經常遇到的語句了,官方給出的參考語法比較長,這裡先列出下,為了不占用太多空間,這裡用代碼圖片代替。

createtable.png

對於我們學習及工作常用的選項歸納如下:

CREATE TABLE <表名> ([表定義選項])[表選項][分區選項];

[表定義選項]的格式為:
<列名1> <類型1> [,…] <列名n> <類型n>

對於臨時表的創建及分區表的創建選項,日常學習及工作中用的不多,這裡就不多介紹,下麵列舉出一個基礎的創建表的語句:

CREATE TABLE `user_info` (
  `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',
  `user_id` bigint(11) NOT NULL COMMENT '用戶id',
  `username` varchar(45) NOT NULL COMMENT '真實姓名',
  `email` varchar(30) NOT NULL COMMENT '用戶郵箱',
  `nickname` varchar(45) NOT NULL COMMENT '昵稱',
  `birthday` date NOT NULL COMMENT '生日',
  `sex` tinyint(4) DEFAULT '0' COMMENT '性別',
  `short_introduce` varchar(150) DEFAULT NULL COMMENT '一句話介紹自己,最多50個漢字',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniq_user_id` (`user_id`),
  KEY `idx_username`(`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶信息表'

5.修改表

修改表可選選項同樣是很多的,參考上面創建表的選項,這裡就不一一列出了。
alter table用於更改表的結構,例如,可以添加或刪除列,創建或刪除索引,更改現有列的類型,或重命名列或表本身。還可以更改表的存儲引擎或表註釋。下麵介紹下幾個常用的修改表的示例:

修改表選項 

# 修改表的存儲引擎
ALTER TABLE t1 ENGINE = InnoDB;

# 修改表的自增值
ALTER TABLE t1 AUTO_INCREMENT = 13;

# 修改表的字元集
ALTER TABLE t1 CHARACTER SET = utf8;

# 添加(或更改)表註釋:
ALTER TABLE t1 COMMENT = 'New table comment';

# 修改表名稱
ALTER TABLE t1 RENAME t2;

欄位(列)操作 

# 增加欄位
# ALTER TABLE <表名> ADD COLUMN <新欄位名> <數據類型> [約束條件] [FIRST|AFTER 已存在的欄位名]
ALTER TABLE t1 ADD COLUMN col1 INT FIRST;

# 刪除欄位
ALTER TABLE t1 DROP COLUMN col1;

# 修改欄位類型
ALTER TABLE t1 MODIFY col1 VARCHAR(30);

# 更改欄位名稱
ALTER TABLE t1 CHANGE col1 col2 VARCHAR(30);

索引操作 

# 添加索引
alter table t1 add index index_name (column_list) ;
alter table t1 add unique (column_list) ;
alter table t1 add primary key (column_list) ;

# 刪除索引
alter table t1 drop index index_name ;
alter table t1 drop primary key ;

6.截斷表

截斷表即truncate table,也可理解為清空表,從邏輯上講,TRUNCATE TABLE類似於DELETE一個表的所有行,但它繞過了刪除數據的DML方法,因此它不能回滾。
truncate語法很簡單,官方文檔示例:

TRUNCATE [TABLE] tbl_name

7.刪除表

刪除表官方給出的參考語法為:

DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]

如果我們不需要這個表,可以考慮使用該語法,但是它將刪除表定義和所有表數據,是不可回滾的操作,一定要小心執行哦。

總結: 

本文記錄一些常用的基礎語句,雖然看起來很簡單,但回顧一下還是有收穫的,特別是翻閱官方文檔後,發現這些基礎的語句也是有很多選項的,可能我們只是經常用到其中一種。自己也很少寫這種系列的文章,打算多寫幾篇入門MySQL的基礎文章,可能這幾篇先後順序也不太嚴謹,其他同學有什麼好的想法,歡迎與我溝通哦!


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

-Advertisement-
Play Games
更多相關文章
  • 一、安裝前準備工作:安裝jdk,配置環境變數 二、開始安裝: 1、進入安裝路徑:/home/weblogic 2、將安裝文件wls1036_generic.jar放入安裝目錄 3、chmod a+x wls1036_generic.jar 賦予安裝文件可執行的許可權 4、執行安裝命令:java -ja ...
  • 我們在裝好了Ubuntu之後,打開瀏覽器,顯示Server not found。 1.點擊網路圖標,顯示如下: 2.進入etc/NetworkManager,找到 Networkmanager.conf文件。 依次輸入指令: sudo su(之後輸入密碼),接著輸入cd / 再輸入cd etc/Ne ...
  • 1、準備 例:兩台192.168.11.10(主),192.168.11.11(從),功能變數名稱www.test1.com 2、主DNS伺服器(192.168.11.10)配置 3、配置正向解析 4、重啟DNS伺服器 5、檢查解析是否成功 6、配置反向解析 7、重啟DNS伺服器 8、檢查解析是否成功 9、 ...
  • Linux網路——查看網路連接情況的命令 摘要:本文主要學習了Linux中用來查看網路連接情況的命令。 hostname命令 hostname命令用於顯示和設置系統的主機名稱,設置只是臨時生效,永久生效需要更改配置文件。 基本語法 修改主機名: 查看系統信息: 選項說明 使用舉例 ping命令 pi ...
  • 前言:無人機和人工智慧現在是非常熱門的話題,將兩者結合起來是一個比較好的創意,本文介紹一種可行的解決方案來實現基於視覺感知的跟蹤無人機。從零開始搭建無人機系統工作量和難度(以及錢)都是非常大的,所以在無人機系統的選擇上,選用正點原子開發的開源演算法無人機Minifly四軸和攝像頭。視覺感知模塊(目標檢 ...
  • 完全零基礎在Linux中安裝 JDK 總體思路:先確定沒有Java程式了 — 然後創建相應路徑文件夾 — 下載JDK — 解壓到當前路徑 — 自定義文件名稱 — 配置環境變數 — 檢查是否安裝成功 第一步 進入到root編程環境 第二步 查看已安裝的Java程式 我有的Java程式如下(這裡因人而異 ...
  • 資料庫MySQL學習筆記 [TOC] 寫在前面 學習鏈接: "資料庫 MySQL 視頻教程全集" MySQL引入 資料庫的好處 1. 持久化數據到本地 2. 可以實現結構化查詢,方便管理 資料庫的相關概念 DB:資料庫(database):存儲數據的“倉庫”,它保存了一系列有組織的數據。 DBMS: ...
  • 某日閑餘時間看到一篇介紹Gridea博客平臺的文章,大概看了一下覺得此平臺還不錯,隨即自己進入Gridea官網瞅了瞅。哇,這搭建過程也太簡單了吧,比Hexo博客搭建要容易很多,而且還有後臺管理客戶端,很適合小白用戶入門。最重要的是不用自己購買功能變數名稱!可以直接與GitHub或Coding配合展示頁面。下 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...