mysql入門知識

来源:https://www.cnblogs.com/dengyanchuan/archive/2019/04/01/10638752.html
-Advertisement-
Play Games

資料庫什麼是資料庫就是存儲數據的倉庫(容器)存儲數據的方式1.變數 無法永久存儲2.文件處理 ,可以永久存儲文件處理存在的弊端: 1.文件處理速度慢 2.文件只能在自己的電腦上讀寫 無法被共用(區域網除外)單台電腦的性能終歸是有限的1.升級你的硬體設備 提升幅度有限 垂直擴展2.伺服器集群 分佈 ...


資料庫

什麼是資料庫
就是存儲數據的倉庫(容器)

存儲數據的方式
1.變數 無法永久存儲
2.文件處理 ,可以永久存儲

文件處理存在的弊端:
1.文件處理速度慢
2.文件只能在自己的電腦上讀寫 無法被共用(區域網除外)

單台電腦的性能終歸是有限的
1.升級你的硬體設備 提升幅度有限 垂直擴展
2.伺服器集群 分散式 橫向擴展

一旦把伺服器拆分開後,數據就必須能夠被不同電腦共用
必須通過網路,也就是socket

資料庫軟體的本質 也就是一個 基於socket(TCP)的C/S結構的程式

如果自己實現一個數據軟體 需要解決的幾個問題
1.一旦數據共用 就存在競爭問題,需要處理鎖
2.不是所有的TCP連接請求都要接受,得加上安全驗證
3.文件處理帶來的效率問題, 需要想辦法來提高處理速度 (索引)

有很多現成資料庫軟體可以直接使用,又分為兩大類
1.關係型資料庫
該類型的數據 提供某種機制 可以幫你維護 數據與數據之間的關係
例如 學員數據 和 班級數據 可以通過其中一方 找到另外一方
一般都是基於文件實現的
優點:容量大 可以永久存儲
mysql 免費開源,開源支持中小型企業併發

oracle 商用收費,學習免費,功能比mysql強大,用戶管理和集群
SQLServer 屬於微軟生態圈,只能運行於 windows上
mariaDB mysql創始人:韋德紐斯 擔心 mysql的前程 於是基於mysql開發了mariaDB 用起來是一模一樣
DB2 IBM 360
sqllite 非常輕量級的資料庫


共同特征都支持SQL
結構化 查詢語言
學習資料庫的重點也就是SQL語句




2.非關係型資料庫
數據與數據之間是獨立 不存在任何關聯關係
以key:value的形式來存儲數據
一般基於記憶體
優點:速度快
問題:斷電丟失

MongoDB
redis
memcache


該使用哪一類資料庫?
應該搭配使用,把數據量大的 存到關係型中 把經常訪問的放到非關係型中
提高訪問速度

資料庫相關的概念

數據 本質上一堆帶有含義的符號
name = jack

數據記錄
多個數據組成了一條完整記錄
name,age,sex
jack,38,man
rose,20,woman

表 本質就是一個文件
裡面存儲一堆數據記錄

庫 本質就是一個文件夾
裡面放一堆表文件

DBMS
data base manager system
資料庫管理系統 (TCP的伺服器)
負責管理一堆文件夾(即資料庫)

資料庫伺服器
指的是運行有TCP伺服器的程式 的電腦

DBMS和伺服器 一般運維管
到公司之後會分給你一個賬號密碼 以及伺服器地址



mysqld 是伺服器主程式
mysqld 警告說:創建文件失敗 由於許可權不足 用管理員許可權運行即可
mysql 是無界面的客戶端 需要在CMD運行
mysql連接伺服器 需要指定以下參數
-h 主機地址(ip)
-P 埠號
-u 用戶名
-p 密碼

伺服器和客戶端在同一臺電腦 可以省略主機地址 埠號預設3306 可以省略
如果不指定用戶名和密碼 以游客模式登陸 什麼都看不到



mysql 的安裝:
1.帶界面 一路next
2.壓縮包 直接解壓
2.1 添加環境變數
2.2 註冊系統服務


修改管理員密碼
1.如果知道原始密碼 mysqladmin -uroot -p password 123
2.不知道原密碼 可以在啟動伺服器時 跳過 授權表
mysqld --skip-grant-tables
無密碼登錄伺服器 執行修改密碼的指令
update mysql.user set password = password("新密碼") where user = "root" and host = "localhost";


關於庫的 語句
創建庫
create database 庫名稱
刪除庫
drop database 庫名稱
修改庫的屬性
alter database 庫名稱 charset = "新的編碼"
查看創建庫詳細信息
show create database mydb;
查看所有資料庫
show databases
選擇一個資料庫
use 庫名稱


關於表

create table 表名稱(name char,age int);
create table 庫.表名(name char,age int);

查看所有表
show tables;
查看表的詳細信息
show create table t1;
查看表結構 (欄位)
desc t1;


alter table t1 charset = "gbk"; 改編碼
alter table t1 add sex char; 添加欄位
alter table t1 drop sex; 刪除欄位
alter table t1 modify age char; 修改欄位的類型
alter table t1 change age ages int; 修改欄位的名字和類型
rename table t1 to table1; 修改表的名稱

刪除
drop table table1;



數據記錄相關操作是重點學習對象
# 一次性插入多條記錄
insert into table_name values("陳麻子",20);
# 一次性插入多條記錄
insert into table_name values(值1,值2),(值2,值2),...;
上述語法 值的個數必須與欄位的個數相同

# 指定要插入數據的欄位
insert into t2(name) values("我只有姓名啊")


查看數據
select * from t2; * 表示查看所有欄位 多個欄位用逗號隔開

修改
update t2 set age = 100; 沒有條件則全部修改
update t2 set age = 100 where name = "陳";
update t2 set age = 100,name = "劉鐵柱" where name = "陳" ;

刪除數據
delete from t2 where name = "劉鐵柱";

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

-Advertisement-
Play Games
更多相關文章
  • 記錄工作疑問和生活趣味點,便於以後翻閱鞏固。 ...
  • 移動印表機時,印表機當前所在伺服器為源伺服器,印表機將遷移到的伺服器為目的伺服器。 步驟: 1.為源伺服器創建印表機配置文件 其中,Servername為源伺服器名或IP,SaveFile為.printexport文件的文件名。 2.在目的伺服器上恢復印表機的配置文件備份 其中,Servername ...
  • systemctl enable cockpit 時,會出現如下錯誤: 修改cockpit.service 文件為如下所示: 添加 [Install] 配置單元,即可解決問題。 參考鏈接:https://unix.stackexchange.com/questions/337860/service- ...
  • 1.echo 用於輸出字元串或者變數的值 2.date 顯示及設置系統的時間和日期,格式為 “date [選項][+指定格式]”,輸入以“+”號開頭的參數,及可按照指定格式輸出 3.reboot 用於重啟系統,必須為root管理員 4.poweroff 用於關閉系統,必須為root管理員 5.wge ...
  • By combining the NTSTATUS into a single 32-bit numbering space, the following NTSTATUS values are defined. Most values also have a defined default mes ...
  • 語法: Cscript Prncnfg {-g | -t | -x | -?} [-S <ServerName>] [-P <PrinterName>] [-z <NewPrinterName>] [-u <UserName>] [-w <Password>] [-r <PortName>] [-l ...
  • 我的機器是CUDA16.04的,之前裝過CUDA10.0,因為一些原因,現在需要安轉CUDA9.0。 1.首先https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target ...
  • 1.索引如果沒有特別指明類型,一般是說b樹索引,b樹索引使用b樹數據結構存儲數據,實際上很多存儲引擎使用的是b+樹,每一個葉子節點都包含指向下一個葉子節點的指針,從而方便葉子節點的範圍遍歷 2.底層的存儲引擎也可能使用不同的存儲結構,比如NDB集群存儲引擎使用了T樹,InnoDB使用的是B+樹 3. ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...