2022-8-15 資料庫 mysql 第一天

来源:https://www.cnblogs.com/ychptz/archive/2022/08/15/16589323.html
-Advertisement-
Play Games

Mysql資料庫 資料庫 資料庫【按照數據結構來組織、存儲和管理數據的倉庫】。是一個長期存儲在電腦內的、有組織的、可共用的、統一管理的大量數據的集合。 數據對於公司來說最寶貴的財富,程式員的工作就是對數據進行管理,包括運算、流轉、存儲、展示等,資料庫最重要的功能就是【存儲數據】,長期保存數據。 M ...


Mysql資料庫

資料庫

  • 資料庫【按照數據結構來組織、存儲和管理數據的倉庫】。是一個長期存儲在電腦內的、有組織的、可共用的、統一管理的大量數據的集合。
  • 數據對於公司來說最寶貴的財富,程式員的工作就是對數據進行管理,包括運算、流轉、存儲、展示等,資料庫最重要的功能就是【存儲數據】,長期保存數據。

Mysql

  • MySQL是一個【關係型資料庫管理系統】,瑞典的公司研發,被【Oracle】收購。
  • MySQL使用了一種語言【SQL語言】。
  • MySQL分為社區版和商業版,體積小、速度快、成本低,開源。

登錄mysql :

   mysql  -h 127.0.0.1 -p3306 -uroot -p

當是在本地登錄時
`` sql
mysql -uroot -p
```

創建一個資料庫:

create database  資料庫名;
create schema   資料庫名;

查看所有的資料庫

show databases

使用資料庫

use 資料庫名;

用來存儲數據的對象,是有結構的數據的集合。

  • 行:一行即為一條數據,資料庫一共有多少條數據,實際上就是有幾行數據。
  • 列:一列即為一個欄位,資料庫一共有多少個欄位,實際上就是有幾列數據。

SQL語言

1.什麼是SQL?

Structured Query Language:結構化查詢語言
SQL是一種特殊目的的編程語言,是一種資料庫查詢和程式設計語言,用於存儲數據以及查詢、更新和管理關係型資料庫系統。

2.SQL通用語法

1. SQL 語句可以單行或多行書寫,以分號結尾。
2. 可使用空格和縮進來增強語句的可讀性。
3. MySQL 資料庫的 SQL 語句不區分大小寫,關鍵字建議使用大寫。
4. 3 種註釋
	* 單行註釋: -- 註釋內容 或 # 註釋內容(mysql 特有) 
	* 多行註釋: /* 註釋 */

3. SQL分類

  1. DDL(Data Definition Language)數據定義語言
    用來定義資料庫對象:資料庫,表,列等。關鍵字:create, drop,alter 等
  2. DML(Data Manipulation Language)數據操作語言
    用來對資料庫中表的數據進行增刪改。關鍵字:insert, delete, update 等
  3. DQL(Data Query Language)數據查詢語言
    用來查詢資料庫中表的記錄(數據)。關鍵字:select, where 等
  4. DCL(Data Control Language)數據控制語言(瞭解)
    用來定義資料庫的訪問許可權和安全級別,及創建用戶。關鍵字:GRANT, REVOKE 等

DDL:操作資料庫、表

創建表

create table 表名(
欄位名1 類型(長度)約束條件;
欄位名2 類型(長度)約束條件;
欄位名3 類型(長度)約束條件;
.........
);

建表約束

因為一張表要有多個列,資料庫中的表不止有一張,建表約束說的就是我們 應該如何規範表中的數據以及表之間的關係。

|MySQL約束類型:

約束名稱 描述
NOT NULL 非空約束
UNIQUE 唯一約束,取值不允許重覆
PRIMARY KEY 主鍵約束(主關鍵字),自帶非空,唯一、索引
DEFAULT 預設值
FOREIGH KEY 外鍵約束,表和表之間的約束

(1)NOT NULL約束

CREATE TABLE `student` (
	`stu_id` int,
	`stu_name` VARCHAR(50) NOT NULL,
	`gender` char(1) DEFAULT '男',
	`brithday` datetime,
	PRIMARY KEY(stu_id)
);

(2)UNIQUE

create table `book` (
	`id` int PRIMARY KEY auto_increment,
	`name` varchar(50) not null,
	`bar_code` VARCHAR(30) not null,
	`aut_id` int not null,
	UNIQUE(bar_code)
);

(3)主鍵約束 用多個列來共同當主鍵

create table `author`(
	`aut_id` int,
	`aut_name` varchar(50) not null,
	`gender` char(1) default '男',
	`country` varchar(50),
	`birthday` datetime,
	PRIMARY KEY(aut_id,aut_name)
);

(4)外鍵約束 推薦配合主鍵去使用。有了這個約束,我們在向表中插入數據時,來源於另外一張表的主鍵
外鍵會產生的效果:

  1. 刪除表的時候,如果不刪除引用外鍵的表,被引用的表是不能直接刪除。
  2. 外鍵的值必須來源於引用的表的主鍵字元。
create table `author`(
	`aut_id` int,
	`aut_name` varchar(50) not null,
	`gender` char(1) default '男',
	`country` varchar(50),
	`birthday` datetime,
	PRIMARY KEY(aut_id)
);
create table `book` (
	`id` int PRIMARY KEY auto_increment,
	`name` varchar(50) not null,
	`bar_code` VARCHAR(30) not null UNIQUE,
	`aut_id` int not null,
	FOREIGN KEY(aut_id) REFERENCES author(aut_id)
);

對錶的修改操作

查看當前資料庫的所有表:

show tables;

查看表結構:

desc 表名;

修改表的五個操作
首碼都是 alter table 表名 -----

添加列 alter table 表名 add(欄位名1 類型 , 欄位名2 類型2 ····· ) ;

修改列數據類型:


 alter table author MODIFY address varchar(100); 

修改列名稱和數據類型 將address 改為 addr

alter table author change address addr VARCHAR(60);

刪除列 作者表 addr欄位

alter table author drop addr;

修改表名

ALTER TABLE author RENAME `authors`;

刪除表

drop table if EXISTS `user`;

DML(數據操作語言)

該語言來對錶記錄進行操作(增、刪、改),不包含查詢。

插入數據:
intsert into 表名 (欄位1,欄位2 ,欄位3)values( 1,2,3 );

INSERT INTO `authors` ( aut_id, aut_name, gender, country, birthday, hobby ) VALUES (4,'羅曼羅蘭','女','漂亮國','1945-8-15','寫字'); 

如果插入的是全欄位,欄位名可以省略。

INSERT INTO `authors` VALUES (5,'韓寒','男','中國','1984-8-15','賽車');

批量插入:

INSERT INTO `authors` VALUES 
(7,"李誕",'男','中國','1985-8-15','脫口秀'),
(8,"史鐵生",'男','中國','1967-8-15','繪畫');

修改數據
update 表名 set 欄位1 = 修改的值 ,欄位1 = 修改的值 where 條件

  update `authors` set aut_name = '金庸',country='中國' where aut_id = 1;

刪除數據

delete from `authors` where aut_id = 8;

截斷(清空表)

TRUNCATE student;

說明:
truncate實際上應該屬於DDL語言,操作立即生效,不能撤回。

  • truncate和delete都是刪除數據,drop刪除整個表。
  • truncate速度快,效率高,可以理解為直接刪除整個表,再重新建立。
  • truncate和delete都不會是表結構及其列、約束、索引的發生改變。

本文來自博客園,作者:阿薩德菩提子,轉載請註明原文鏈接:https://www.cnblogs.com/ychptz/p/16589323.html


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

-Advertisement-
Play Games
更多相關文章
  • 蘋果滑鼠右鍵無法新建txt文檔?iRightMouse mac版是Macos上一款超級右鍵滑鼠輔助工具,彌補了蘋果右鍵功能較弱的短板,為mac增加右鍵新建菜單,蘋果右鍵可以新建TXT,為用戶豐富蘋果右鍵功能。歡迎大家前來體驗! 詳情:iRightMouse for Mac(超級右鍵滑鼠輔助工具) i ...
  • 以下說明在 Ubuntu 下如何配置 HC32L110 的燒錄環境, 當前使用的是 JLink. 可以使用 JFlashExe 通過界面進行操作, 也可以通過 JLinkExe 命令行進行操作 ...
  • podman的部署和應用 podman官方網站(https://podman.io/) 什麼是podman Podman是一個無守護進程的容器引擎,用於在Linux系統上開發、管理和運行OCI容器。容器可以作為根運行,也可以以無根模式運行。簡單地說:別名docker=podman 它是一款集合了命令 ...
  • Charles:讓天底下沒有難抓的包。 前言 今天給大家推薦一個我所使用過的抓包工具中最好用的抓包工具-Charles(音譯:查爾斯),它可以抓各端發起的網路請求,我主要用來抓移動設備上的請求,上次小明就通過這種方式找到了一款付費App課程的漏洞,咳咳,不展開說了,畢竟web端的瀏覽器網路請求,打開 ...
  • office 2021 for Mac商業預覽Mac版office 2021 包括Word,Excel,PowerPoint,Outlook,OneDrive,最新版本的office將附帶新的深色模式支持,輔助功能改進,對Word、Excel、PowerPoint、Outlook的性能改進對exce ...
  • Podman部署及應用 什麼是podman Podman是一個開源項目,可在大多數Linux平臺上使用並開源在GitHub上。Podman是一個無守護進程的容器引擎,用於在Linux系統上開發,管理和運行Open Container Initiative(OCI)容器和容器鏡像。Podman提供了一 ...
  • 今天有個小伙伴問我,什麼是謂詞下推,然後我就開啟巴拉巴拉模式,說了好長一段時間,結果發現他還是懵的。 最後我概述給他一句話:所謂謂詞下推,就是將儘可能多的判斷更貼近數據源,以使查詢時能跳過無關的數據。用在SQL優化上來說,就是先過濾再做聚合等操作。 看到這裡的朋友可能就已經明白了什麼是謂詞下推,如果 ...
  • 背景介紹 StoneDB 是一款相容 MySQL 的開源 HTAP 資料庫。StoneDB 的整體架構分為三層,分別是應用層、服務層和存儲引擎層。應用層主要負責客戶端的連接管理和許可權驗證;服務層提供了 SQL 介面、查詢緩存、解析器、優化器、執行器等組件;Tianmu 引擎所在的存儲引擎層是 Sto ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...