【SQL 基礎入門 1. -- SQL 基本語法詳解及舉例】

文章目錄

    • SQL 數據庫創建及使用
      • 刪除數據庫
      • SQL 查看數據空中有哪些表格
      • SQL 創建表格
      • SQL 修改表格列數據格式
        • SQL 表格插入數據
        • SQL 查看表格類型組成
        • SQL 查看表格中的內容
    • SQL 查詢語句
      • SQL 查看指定列
      • SQL 選擇指定列
      • SQL 按指定列進行升序排序
      • SQL 平均值/求和/最大值/最小值

SQL 數據庫創建及使用

創建新的數據庫時,如果該數據庫已經存在,則會出現錯誤,所以我們在創建新的數據庫時一般會判斷該數據庫是否存在,如果已存在,則不會創建。

學習SQL 時建議大家自己搭建一個 linux虛擬機環境:可以參考 https://www.cnblogs.com/EthanS/p/18211302

mysql> create database if not exists test;
Query OK, 1 row affected (0.00 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.00 sec)

刪除數據庫

drop database test;

為了避免出現錯誤,我們一般會先判斷該數據庫是否存在,如果不存在,則不會刪除。

drop database if exists test;

SQL 查看數據空中有哪些表格

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| employee       |
+----------------+
1 row in set (0.00 sec)

SQL 創建表格

mysql> create table employee( id int, name varchar(40), sex varchar(4), birthday date, entry_date date, salary decimal(8,2), resume text );
Query OK, 0 rows affected (0.01 sec)

SQL 修改表格列數據格式

mysql> alter table employee modify column salary int;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

修改之后如下:

mysql> desc employee;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id         | int          | YES  |     | NULL    |       |
| name       | varchar(40)  | YES  |     | NULL    |       |
| sex        | varchar(4)   | YES  |     | NULL    |       |
| birthday   | date         | YES  |     | NULL    |       |
| entry_date | date         | YES  |     | NULL    |       |
| salary     | int          | YES  |     | NULL    |       |
| resume     | varchar(128) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
7 rows in set (0.00 sec)
SQL 表格插入數據
mysql> insert into employee(id,name,sex,birthday,entry_date,salary,resume) values(4,'sunliu','female','1998-05-04','2020-08-10','4500','i am a developer');
Query OK, 1 row affected (0.00 sec)

插入一行后如下:

mysql> select * from employee;
+------+----------+------+------------+------------+--------+------------------+
| id   | name     | sex  | birthday   | entry_date | salary | resume           |
+------+----------+------+------------+------------+--------+------------------+
|    1 | zhangsan | male | 1993-03-04 | 2016-11-10 |   1000 | i am a developer |
+------+----------+------+------------+------------+--------+------------------+
1 row in set (0.00 sec)
SQL 查看表格類型組成
mysql> desc employee;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id         | int          | YES  |     | NULL    |       |
| name       | varchar(40)  | YES  |     | NULL    |       |
| sex        | varchar(8)   | YES  |     | NULL    |       |
| birthday   | date         | YES  |     | NULL    |       |
| entry_date | date         | YES  |     | NULL    |       |
| salary     | int          | YES  |     | NULL    |       |
| resume     | varchar(128) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
7 rows in set (0.00 sec)
SQL 查看表格中的內容

插入多行數據之后,查看表格內容

mysql> select * from employee;
+------+----------+--------+------------+------------+--------+------------------+
| id   | name     | sex    | birthday   | entry_date | salary | resume           |
+------+----------+--------+------------+------------+--------+------------------+
|    1 | zhangsan | male   | 1993-03-04 | 2016-11-10 |   1000 | i am a developer |
|    2 | lisi     | male   | 1992-01-04 | 2017-11-10 |   1500 | i am a waiter    |
|    3 | wangwu   | female | 1990-02-04 | 2019-11-10 |   2500 | i am a developer |
|    4 | sunliu   | female | 1998-05-04 | 2020-08-10 |   4500 | i am a developer |
+------+----------+--------+------------+------------+--------+------------------+
4 rows in set (0.00 sec)

SQL 查詢語句

SQL 查看指定列

mysql> select name, sex from employee;
+----------+--------+
| name     | sex    |
+----------+--------+
| zhangsan | male   |
| lisi     | male   |
| wangwu   | female |
| sunliu   | female |
+----------+--------+
4 rows in set (0.00 sec)

SQL 選擇指定列

mysql> select birthday from employee where birthday = '1990-02-04';
+------------+
| birthday   |
+------------+
| 1990-02-04 |
+------------+
1 row in set (0.00 sec)

SQL 按指定列進行升序排序

mysql> select salary from employee order by salary ASC;
+--------+
| salary |
+--------+
|   1000 |
|   1500 |
|   2500 |
|   4500 |
+--------+
4 rows in set (0.00 sec)mysql> select salary from employee order by salary DESC;
+--------+
| salary |
+--------+
|   4500 |
|   2500 |
|   1500 |
|   1000 |
+--------+
4 rows in set (0.00 sec)

SQL 平均值/求和/最大值/最小值

mysql> select avg(salary) from employee;
+-------------+
| avg(salary) |
+-------------+
|   2375.0000 |
+-------------+
1 row in set (0.00 sec)mysql> select count(*) from employee;
+----------+
| count(*) |
+----------+
|        4 |
+----------+
1 row in set (0.00 sec)mysql> select max(salary) from employee;
+-------------+
| max(salary) |
+-------------+
|        4500 |
+-------------+
1 row in set (0.00 sec)mysql> select min(salary) from employee;
+-------------+
| min(salary) |
+-------------+
|        1000 |
+-------------+
1 row in set (0.00 sec)mysql> select sum(salary) from employee;
+-------------+
| sum(salary) |
+-------------+
|        9500 |
+-------------+
1 row in set (0.00 sec)

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

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

相關文章

PostgreSQL 分區表——范圍分區SQL實踐

PostgreSQL 分區表——范圍分區SQL實踐 1、環境準備1-1、新增原始表1-2、執行腳本新增2400w行1-3、創建pg分區表-分區鍵為創建時間1-4、創建24年所有分區1-5、設置默認分區(兜底用)1-6、遷移數據1-7、創建分區表索引 2、SQL增刪改查測試2-1、查詢速度對比…

Apache Flink 深度解析:流處理引擎的核心原理與生產實踐指南

Apache Flink 深度解析:流處理引擎的核心原理與生產實踐指南 引言:實時計算的范式革命 2023年雙十一期間,某頭部電商平臺基于Flink構建的實時風控系統成功攔截了每秒超過120萬次的異常交易請求。這背后是Apache Flink作為第四代計算引擎的強…

【Java學習筆記】選擇結構

選擇結構 內容結構 一、順序結構 二、分支控制 (1)單分支 (2)雙分支 (3)多分支 (4)嵌套分支 (5)switch 分支結構 三、switch和if的比較 一、順序結構…

03_JavaScript

文章目錄 一、概述1.1、JavaScript簡介1.2、JavaScript組成部分1.3、為什么要學習JavaScript1.4、學習的目的1.5、JavaScript與Java的關系 二、使用位置及運行說明2.1、使用位置2.2、如何運行 三、JavaScript基礎語法3.1、變量3.2、運算符3.3、控制流程3.3.1、分支結構3.3.2、循…

PySide6 GUI 學習筆記——常用類及控件使用方法(常用類矩陣QRect)

文章目錄 一、構造與初始化方法二、坐標與尺寸獲取三、坐標與尺寸設置四、幾何運算方法五、移動與調整方法六、狀態判斷方法七、類型轉換方法八、操作符重載九、靜態方法十、特殊方法附錄方法速查表注意的問題交集和并集圖解 📘 PySide6.QtCore.QRect 使用整數精度定…

AI 開發入門之 RAG 技術

目錄 一、從一個簡單的問題開始二、語言模型“閉卷考試”的困境三、RAG 是什么—LLM 的現實世界“外掛”四、RAG 的七步流程第一步:加載數據(Load)第二步:切分文本(Chunking)第三步:向量化&…

解決yarn install 報錯 error \node_modules\electron: Command failed.

在電腦重裝系統后,重新安裝項目依賴,遇到這一報錯 完整報錯信息如下: error D:\xxxxx\xxxxxx\node_modules\electron: Command failed. Exit code: 1 Command: node install.js Arguments: Directory: D:\xxxxx\xxxxx\node_modules\electron Output: HTTPError: Response cod…

2025年3月電子學會青少年機器人技術(五級)等級考試試卷-理論綜合

青少年機器人技術等級考試理論綜合試卷(五級) 分數:100 題數:30 一、單選題(共20題,共80分) 1. 2025年初,中國科技初創公司深度求索在大模型領域迅速崛起,其開源的大模型成為全球AI領域的焦…

23種設計模式-行為型模式之模版方法模式(Java版本)

Java 模板方法模式(Template Method Pattern)詳解 🧠 什么是模板方法模式? 模板方法模式是一種行為型設計模式,在一個方法中定義一個操作中的算法骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在…

長城杯鐵人三項初賽-REVERSE復現

前言 記錄記錄 1.LoginToMe int __fastcall main(int argc, const char **argv, const char **envp) {unsigned int v3; // eaxchar s[96]; // [rsp10h] [rbp-70h] BYREFint v6; // [rsp70h] [rbp-10h]int v7; // [rsp78h] [rbp-8h]int i; // [rsp7Ch] [rbp-4h]memset(s, 0, s…

DNS實驗

DNS原理 客戶端發起請求:客戶端向本地 DNS 服務器發送域名解析請求,這是流程的起始點。本地 DNS 服務器查詢根域名服務器:若本地 DNS 服務器緩存中無對應記錄,它向根域名服務器發起查詢,根域名服務器是 DNS 系統頂層&a…

SQLMesh 通知系統深度解析:構建自動化監控體系

SQLMesh 是一款強大的數據編排工具,其內置的靈活通知系統可顯著提升團隊協作效率。本文將系統解讀 SQLMesh 的通知機制,涵蓋配置方法、事件觸發邏輯及高級定制技巧。 一、通知系統的核心架構 1. 通知目標(Notification Targets) …

精益數據分析(20/126):解析經典數據分析框架,助力創業增長

精益數據分析(20/126):解析經典數據分析框架,助力創業增長 在創業和數據分析的學習道路上,每一次深入探索都可能為我們帶來新的啟發。今天,依舊帶著和大家共同進步的想法,我們一起深入研讀《精…

【OSG學習筆記】Day 8: 紋理貼圖——賦予模型細節

在 OSG(Open Scene Graph)中,紋理貼圖是為模型添加細節的關鍵技術,主要涉及紋理加載、UV 映射和多重紋理疊加三部分。 基礎理論 紋理加載 紋理的作用,就是將2D圖像映射到3D模型表面,增強視覺細節。 紋理類型與格式支持: OSG 支持多種圖像格式,包括常見的 .jpg/.jpe…

基于事件驅動的云原生后端架構設計:從理念到落地

??個人主頁??:慌ZHANG-CSDN博客 ????期待您的關注 ???? 一、引言:微服務之后,事件驅動正在成為新范式 隨著業務復雜度的提升,傳統同步式微服務調用模式逐漸暴露出瓶頸:服務間耦合度高、并發能力有限、出錯鏈路復雜。而在互聯網業務、金融交易、物聯網等場景中…

vue3:十一、主頁面布局(修改頂部導航欄樣式-右側:用戶信息+退出登錄+全屏顯示)

一、效果 完成效果,增加頂部導航欄,右側用戶信息(其中個人中心需要后續進行頁面開發,這里只寫了退出登錄功能),以及全屏功能 二、搭建并引入右側組件 將右側內容封裝到單獨的組件,直接引入(像左側導航條等內容也是可以做成這種形式) 1、新建右側組件的頁面 在layout中…

沁恒CHV203中斷嵌套導致修改線程棧-韋東山

調試專題bug實例 2025年01月09日20點場 處理辦法1:就是關閉中斷嵌套 處理辦法2: 使用原來的棧

Qt本地化 - installTranslator不生效

bool QCoreApplication::installTranslator(QTranslator *translationFile)注意這里輸入的是QTranslator對象指針,如果QTranslator是局部變量,一旦離開其作用域就會導致翻譯失效 錯誤代碼示范: void ApplyTranslator(const QString& qmf…

Qt UDP組播實現與調試指南

在Qt中使用UDP組播(Multicast)可以實現高效的一對多網絡通信。以下是關鍵步驟和示例代碼: 一、UDP組播核心機制 組播地址:使用D類地址(224.0.0.0 - 239.255.255.255)TTL設置:控制數據包傳播范圍(默認1,同一網段)網絡接口:指定發送/接收的物理接口二、發送端實現 /…

PCB封裝主要組成元素

PCB(Printed Circuit Board,印刷電路板)封裝是指將電子元件固定在 PCB 上,并實現電氣連接的方式。主要包括以下幾類。 1. 焊盤(Pad) 作用:焊盤是 PCB 封裝中最重要的元素之一,它是…