日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

5天学习MYSQL数据库第一天剩余全部笔记(超级详细的mysql入门笔记适合新手反复看加深记忆)

發布時間:2023/12/19 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5天学习MYSQL数据库第一天剩余全部笔记(超级详细的mysql入门笔记适合新手反复看加深记忆) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是關于五天學習MYSQL數據庫的筆記,如果想要觀看視頻可以訪問(視頻鏈接(b站)
或者訪問視頻鏈接
之前的筆記已經記到了1.3的mysql基本介紹,接下來主要是:

2.1MySQL服務端框架

一. Mysql服務端架構以下幾層構成

  • 數據庫管理系統(最外層):DBMS,專門管理服務器端的所有內容。
  • 數據庫(第二層):DB,專門用于存儲數據的倉庫(可以有很多個)。
  • 二維數據表(第三層):Table,專門用于存儲具體實體的數據
  • 字段(第四層):Field,具體存儲某種類型的數據(實際存儲單元)
    數據庫中常用的幾個關鍵字:
    row:行
    column:列(field)
    這里只是簡單說了mysql分層的一個存儲架構,如果需要再深入了解底層架構,可以訪問mysql服務器架構(鏈接)
  • 2.2SQL基本操作----庫操作(創建數據庫)

    數據庫是數據存儲的最外層(最大單元)。
    創建數據庫:
    基本語法:create database 數據庫名 [庫選項];
    庫選項:數據庫的相關屬性
    字符集:charset 字符集,代表當前數據庫下的所有表存儲的數據默認指定的字符集(如果不指定,則采用DBMS默認)

    create database 數據庫名 charset 字符集名稱;

    校對集:collate 校對集(校對集默認是隨字符集的)

    2.3SQL基本操作----庫操作(顯示數據庫)

    用戶每通過SQL指令創建一個數據庫,那么系統就會產生一個對應的存儲數據的文件夾(data)。每個數據庫文件夾下面有一個opt文件,保存的是對應的數據庫選項。
    一. 顯示全部
    基本語法:show databases;

    二. 顯示部分
    基本語法:show databases like ‘匹配模式’;
    匹配模式:
    _:匹配當前位置的單個字符。
    %:匹配指定位置多個字符,前后。
    三. 顯示數據庫創建語句
    基本語法:show create database 數據庫名字;
    如圖:

    2.4SQL基本操作----庫操作(選擇+修改+刪除)

    一. 選擇數據庫
    為什么要選擇數據庫?
    因為數據存儲再數據表中,數據表存在數據庫下,要操作數據,必須首先進入到數據庫下。
    基本語法:use 數據庫名字;
    二. 修改數據庫
    修改數據庫的字符集(庫選項)
    是否可以修改數據庫的名字?mysql5.5之前可以,rename命令,但是5.5之后就不可以了
    基本語法:alter database數據庫名字 charset[=]字符集;
    一旦修改成功,opt文件改變。
    三 .刪除數據庫
    基本語法:drop database 數據庫名字;
    刪除要做好安全操作,確保里面數據沒有問題。
    刪除數據庫之后,對應的存儲數據的文件夾也會被刪除。

    3.1SQL基本操作----表操作(創建數據表)

    一.創建數據表

  • 普通創建表
    基本語法:create table 表名(字段名 字段類型 [字段屬性],字段名
    字段類型 [字段屬性]……)[表選項];
    有兩種方式可以將表掛到指定的數據庫下面:
    第一種:在數據表名字前面加上數據庫名字用‘.’連接:數據庫名.數據表名
    第二種:在創建數據表之前先進入到某個數據庫:use 數據庫名;
  • 表選項和數據庫選項類似:
    Engine:存儲引擎,mysql提供的具體存儲數據的方式,默認有一個innodb(5.5之前默認是myisam)
    Charset:字符集(只對當前自己表有效,級別比數據庫高)
    Collate:校對集

    例:create table student( name varchar(10) )charset utf8;
  • 復制已有表結構
    從已經存在的表復制一份(只復制結構,如果表中有數據不復制)。
    基本語法:create table 新表名 like 表名;
    只要使用數據庫.(小數點)表名,就可以在任何數據庫下訪問其他數據庫里的表名。
  • 3.2SQL基本操作----表操作(多維度顯示表)

    每當一個數據表創建,就會在對應的數據庫下面創建一些文件(與存儲引擎有關)。 Frm代表結構文件。
    注意:這個結構文件來自于innodb存儲引擎。Innodb存儲引擎的所有文件都存儲在外部的ibdata文件中。
    一 .顯示所有表
    基本語法:show tables;
    二 .匹配顯示表
    基本語法:show tables like ‘匹配模式’;
    三 .顯示表結構
    本質含義:顯示表中所包含的字段信息(名字,類型,屬性等等)
    基本語法:
    describe 表名;
    desc 表名;
    show columns from 表名;


    四. 顯示表的創建語句
    查看數據表創建時的語句,顯示結果不一定是用戶之前輸入的。
    基本語法:show create table 表名;
    Mysql中有多種語句結束符:
    ;和\g效果一樣,都是字段在橫排,下面是對應的數據。
    \G字段在豎排,右側是對應的數據。

    4.1SQL基本操作----表操作(多維度修改表)

    一 .設置表屬性
    表屬性就是表選項,engine,charset,collate
    基本語法:alter table 表名 表選項[=]值;
    例:alter table class charset gbk;
    注意:如果數據庫已經確定,里面有很多數據,不要輕易的修改表選項(字符集影響不大)。
    二 .修改表結構
    數據庫中數據表名字通常有前綴,取數據庫的前兩個字母加下劃線
    修改表名:rename table 舊表名 to 新表名;
    修改表選項:alter table 表名 表選項[=]新值;
    新增字段:alter table 表名 add [column] 新字段名 列類型 [列屬性] [位置first/after字段名];
    例:alter table teacher add column age int; 默認加在表的最后面
    修改字段名:alter table 表名 change 舊字段名 新字段名 字段類型 [列屬性] [新位置];
    修改字段類型(屬性):alter table 表名 modify 字段名 新類型 [新屬性]
    [新位置];
    刪除字段:alter table 表名 drop 字段名;
    三.刪除表結構
    基礎語法:drop table 表名1[,表名2……];可以同時刪除多個數據表

    5.1SQL基本操作----數據操作(插入數據)

    一 插入操作
    本質含義:將數據以SQL的形式存儲到指定的數據表(字段)里面
    基本語法:
    Insert into 表名 [(字段列表)] values(對應字段列表);
    例:
    注意:后面values中的對應的值列表只需要與前面的字段列表相對應即可,不一定與表結構完全一致。
    字段列表不一定非要有表中的所有字段。
    Insert into 表名 values (對應表結構);(向表中所有字段插入數據,值列表必須與字段列表一致)

    5.2SQL基本操作----數據操作(查刪改)

    一. 查詢操作
    查詢表中全部數據:select * from 表名; // *表示匹配所有的字段
    查詢表中部分字段:
    select 字段列表 from 表名;//字段列表使用逗號隔開
    簡單條件查詢數據:
    select 字段列表/ * from 表名 where 字段名 = 值;
    二 .刪除操作
    基本語法:
    delete from 表名 [where 條件];
    如果沒有where條件,系統會自動刪除該表的所有數據(慎用)。
    三. 更新操作
    更新:將數據進行修改,通常是修改部分字段數據。
    基本語法:update 表名 set 字段名 = 新值 [where 條件];
    如果沒有where條件,那么表中那個字段會被修改成統一值。

    6.1字符集----簡介

    一. 字符編碼的概念
    字符:各種文字和符號的總稱。
    在計算機中看到的任何內容都是字符構成的。
    字符編碼: 是計算機針對各種符號,在計算機中的一種二進制存儲代號。
    二. 字符集概念
    字符集是多個字符的集合,字符集種類較多,每個字符集包含的字符個數不同。
    常見字符集名稱: ASCII字符集、GB2312字符集、BIG5字符集、GB18030 字符集、Unicode 字符集等。計算機要準確的處理各種字符集文字,需要進行字符編碼,以便計算機能夠識別和存儲各種文字。中文文字數目大,而且還分為簡體中文和繁體中文兩種不同書寫規則的文字,而計算機最初是按英語單字節字符設長的,因此,對中文字符進行編碼,是中文信息交流的技術基礎。

    6.2字符集----mysql字符集設置

    一. 設置客戶端所有字符集
    如果直接通過cmd下的mysql.exe進行中文數據插入,可能出錯。

    出錯原因:

  • 用戶是通過mysql.exe來操作mysqld.exe

  • 真正的SQL執行是mysql.exe來執行

  • mysql.exe將數據傳入mysqld.exe的時候,沒有告知其對應的符號規則(字符集),而mysqld.exe也沒有能力自己判斷,就會使用自己默認的字符集。
    解決方案:
    Mysql.exe客戶端在進行數據操作之前將自己所使用的字符集告訴mysqld.exe。
    Cmd下的mysql.exe默認都只有一個字符集:GBK

  • 如何告知mysqld.exe字符集是gbk呢?
    快捷方式: set names 字符集;
    深層原理: 客戶端,服務端,連接層
    (show variable like ‘character set_%’)
    Mysql.exe與mysqld.exe之間的處理關系一共分為三層:

    客戶端傳入數據給服務端:client--------character_set_client

    服務端返回數據給客戶端:server---------character_set_result

    客戶端與服務端之間的連接:collection----------character_set_collection

    set names 字符集;
    語句的本質: 就是一次性打破三層關系的字符集,變得一致。
    在系統中有三個變量來記錄著這三個關系對應的字符集: show variable
    like ‘character_set%;
    查看一個新的客戶端的對應的字符集關系:
    修改變量的值:
    set 變量 = 值;
    如果只修改服務器端變量的值為gbk,則插入中文能夠成功,但是查詢顯示出插入的中文數據是亂碼。
    因為:客戶端給服務端的數據正確,服務端返回的結果默認是utf8,但是當前窗口只識別gbk
    解決方法:set character_set_results = gbk;
    對應的character_set_database也會自動修改為gbk;
    Connection只是為了更方便客戶端與服務端進行字符集轉換而設。
    set names gbk;
    等價于
    set character_set_client = gbk;//為了讓服務器識別客戶端傳來的數據
    set character_set_connection = gbk; //更好的幫助客戶端與服務端之間進行字符集轉換
    set character_set_results= gbk; //為了告訴客戶端服務端所有的返回的數據字符集

    總結

    以上是生活随笔為你收集整理的5天学习MYSQL数据库第一天剩余全部笔记(超级详细的mysql入门笔记适合新手反复看加深记忆)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。