六天帶你玩轉Mysql筆記---第一天
六天帶你玩轉Mysql筆記---第一天
1.資料庫的基礎
(1) 什麼是資料庫
(2)資料庫分類
(3) 不同的資料庫陣營中的產品有哪些
(4)兩種資料陣營的區別
1.1關係型資料庫
1.1.1什麼是關係型資料庫
1.1.2關係型資料庫的設計
1.2關鍵字說明
1.3SQL
1.4 Mysql資料庫
1.5 Mysql伺服器物件
2.SQL基本操作
2.1庫操作:對資料庫的增刪改查
2.1.1新增資料庫
2.1.2檢視資料庫
2.1.3更新資料庫
2.1.4刪除資料庫
3表操作
3.1新增資料表
3.2檢視資料表
3.3修改資料表
3.3.1修改表本身
3.3.2修改欄位
3.4刪除資料表
4.資料操作
4.1新增資料
4.2檢視資料
4.3更新資料
4.4刪除資料
5.中文資料問題
6.校對集
第一步:建立不同校對集表
第二步:插入資料
第三步:檢視資料
1.資料庫的基礎
(1) 什麼是資料庫
資料庫:database,儲存資料的倉庫。
資料庫:高效儲存和處理資料的介質(介質主要是兩種:磁碟和記憶體)。
(2)資料庫分類
資料庫基於儲存介質的不同,可分為兩類:
關係型資料庫(SQL)和非關係型資料庫(NoSqQL)。
(3) 不同的資料庫陣營中的產品有哪些
關係型資料庫:
l大型:Oracle,DB2
l中型:SQL-SERVER,Mysql等
l小型:accdss等
非關係型資料庫: memcached,mongodb,redis(同步到磁碟)
(4)兩種資料陣營的區別
關係型資料庫:安全(儲存磁碟基本不丟失),符合人的思維習慣,容易理解
非關係型資料庫:效率高,不安全(斷電丟失)
1.1關係型資料庫
1.1.1什麼是關係型資料庫
u關係型資料庫:是一種建立在關係模型(數學模式)上的資料庫
u關係模型:是一種所謂建立在關係上的模型,關係模型包含三個方面:
1.資料結構:資料儲存的問題,二維表(行和列)
2.操作指令集合:所有SQL語句
3.完整性約束:表內資料約束(欄位與欄位),表與表之間約束(外來鍵)
1.1.2關係型資料庫的設計
關係型資料庫:從需要儲存的資料需求中分析,如果是一類資料(實體)應該設計成一張二維表,表示由
二維表:行和列
表頭 |
欄位名1 |
欄位名2 |
資料單元 |
資料1 |
資料2 |
案例分析:分析一個教學系統,講師負責教學,教學生,在教師教學生
(1)找出系統中所存在的實體:講師表,學生表,班級表
(2)找出實體中應該存在的資料資訊
a)講師:姓名,性別,年齡,工資
b)學生:姓名,性別,學號,學科
c)班級:班級名字,教師編號
注:關係型資料庫:維護實體內部,實體與實體之間的聯絡
*實體內部聯絡:每個學生都有姓名,性別,學號,學科資訊
姓名 |
性別 |
學號 |
學科 |
年齡 |
陳明 |
男 |
Ictast0001 |
PHP |
20 |
陳晶晶 |
女 |
Ictast0002 |
PHP |
|
王威 |
Ictast0003 |
UI |
第二行的所有欄位,都是在描述陳明這個學生(內部聯絡);第二列只能放性別(內部約束)
關係型資料庫的特點之一:如果表中對應的某個欄位沒有值(資料)但是系統依然要分配空間(關係型資料庫比較浪費空間)
*實體與實體之間的聯絡:每個學生肯定屬於某個班級,每個班級一定有多個學生(一對多)
學生表
姓名 |
性別 |
學號 |
學科 |
年齡 |
陳明 |
男 |
Ictast0001 |
PHP |
20 |
陳晶晶 |
女 |
Ictast0002 |
PHP |
|
王威 |
Ictast0003 |
UI |
班級表
班級名稱 |
教室編號 |
PHP0810 |
B205 |
PHP0710 |
A203 |
UI0710 |
B330 |
如何將學生表和班級表關聯起來?
解決方案:在學生表中增加一個班級欄位倆指定班級(必須能唯一指定一個班級資訊)
姓名 |
性別 |
學號 |
學科 |
年齡 |
班級名稱 |
陳明 |
男 |
Ictast0001 |
PHP |
20 |
PHP0810 |
陳晶晶 |
女 |
Ictast0002 |
PHP |
PHP0810 |
|
王威 |
Ictast0003 |
UI |
UI0710 |
1.2關鍵字說明
(1)資料庫:database
(2)資料庫系統:DBS(Database System)是一種虛擬系統,將多種內容關聯起來的稱呼
DBS = DBNS + DB
DBMS:Database Mangement System資料庫管理系統,專門管理資料庫
DBA:Database Adminstrator資料庫管理員
(3)行/記錄:row/record本質是一個東西:都是指表中的一行(一條記錄)
行:是從結構角度出發
記錄:是從資料結構出發
(4)列/欄位:column/field本質是同一個東西
1.3SQL
(1)SQL:Structured Query Language結構化查詢語言(資料以查詢為主:99%是在查詢操作)
(2)SQL是關係型資料庫的操作指令,SQL是一種約束,但不強制:不同的資料庫產品(如Oracle,mysql)內部可能會有一些細微的區別。
(3)SQL分為三個部分
uDDL:Data Defination Lanuage,資料定義語言,用來維護儲存資料的結構(資料庫,表)代表指令:create,drop,alter等
uDML: Data Manipulation Language 資料操作語言,用來對資料進行操作(資料表中的內容),代表指令:insert,delete,update等;其中DML內部有單獨進行了一次分類:DQL(Data Query Language:資料查詢語言,如select)
uDCL:Data Control Language,資料控制語言,主要負責許可權管理(使用者),代表指令:grant,revoke等。
1.4 Mysql資料庫
(1)Mysql資料庫是一種c/s結構的軟體:客戶端/伺服器,若想訪問伺服器必須通過客戶端(伺服器一種執行,客戶端在需要的時候執行)
(2)互動方式
1.客戶端連線認證:連線伺服器,認證身份:mysql.exe -hPup
2.傳送SQL指令
3.伺服器接收SQL指令,處理SQL指令,返回操作結果。
4.客戶端接收結果:顯示結果
5.斷開連線(釋放資源:伺服器併發限制)
1.5 Mysql伺服器物件
(1)沒有辦法完全瞭解伺服器內部的內容:只能粗略的去分析資料庫伺服器的內部結構。
(2)將mysql伺服器內部物件分成四層:系統(DBMS)->資料庫(DB)->資料表(Table)->欄位(field)
2.SQL基本操作
將SQL的基本操作物件進行分類,分為三類:庫操作,表操作(欄位)資料操作
2.1庫操作:對資料庫的增刪改查
2.1.1新增資料庫
(1)Create database資料庫名字平[庫選項]
(2)庫選項:用來約束資料庫,分為兩個選項
u字符集設定:charset/character set 具體字符集(資料儲存的編碼格式)
常用字符集:CBK和UTF8
u校對集設定: collate具體校對集(資料比較的規則)
(3)資料庫名是英文名
Create database mydatabasecharset utf8;
(4)資料庫名是中文名
Set names gbk;
Create database 中國charset utf8;
2.1.2檢視資料庫
(1)檢視所有資料庫show databases;
(2)檢視指定部分資料庫:模糊查詢
show databases like‘pattern’ -- pattern是匹配模式
%:表示匹配多個字元
_: 表示單個字元
(3)檢視資料庫的建立語句:show create database 資料庫名
2.1.3更新資料庫
(1)資料庫名字不可以修改
(2)資料庫修改僅限庫選項:字符集和校對集(校對集依賴字符集)
(3)Alter database資料庫名字[庫選項];
Charset/characterset [=]字符集
Collate校對集
2.1.4刪除資料庫
(1)Drop database資料庫名字
(2)在對應的資料庫儲存的資料夾內:資料庫名字對應的資料夾也被刪除(級聯刪除:裡面的資料表全部被刪除)
3表操作
3.1新增資料表
Create table[if not exists]表名(
欄位名字資料型別,
欄位名字資料型別 --最後一行不需要逗號
)[表選項];
(1)If not exists:如果表名不存在,那麼就建立,否則不執行建立程式碼(檢查功能)
(2)表選項:控制表的表現
字符集:charset/character set具體字符集(保證表中資料儲存的字符集)
校對集:collate具體校對集;
儲存引擎: engine具體的儲存引擎(innodb和myisam)
(3)沒有選擇資料庫時的錯誤提示
任何一個表的設計都必須指定資料庫
方案1:顯式地指定表的所屬
方案2:隱式地指定表的所屬資料庫:先進入到某個資料庫環境,然後這樣建立的表自動歸屬到某個指定的資料庫。
進入資料庫環境:use資料庫名字
當建立資料表的SQL指令執行之後,到底發生了什麼?
(1)指定資料庫下已經存在對應的表
(2)在資料庫對應的資料夾下,會產生對應表的結構檔案(跟儲存引擎有關係)
3.2檢視資料表
(1)檢視所有表:show tables;
(2)檢視部分表:show table like‘pattern’
(3)查看錶的建立語句:show create table表名;
(4)查看錶結構:
查看錶中欄位資訊:Desc/describe/show columns from表名;
Field---欄位名
Type---資料型別
Null---列屬性:是否允許為Null(空)
六天帶你玩轉Mysql筆記---第一天
1.資料庫的基礎
(1) 什麼是資料庫
(2)資料庫分類
(3) 不同的資料庫陣營中的產品有哪些
(4)兩種資料陣營的區別
1.1關係型資料庫
1.1.1什
這是一系列視訊學習,寫部落格也是方便自己之後複習,有大家需要的資料可以給個參考。
接上一篇:https://blog.csdn.net/aaaaaab_/article/details/80015589
原資料表:
修改欄位:
alter table 表名 mo
集合字串:
集合跟列舉很類似,實際儲存的是數值,而不是字串(集合是多選)
集合使用方式:定義,set(元素列表);使用:可以使用元素列表中的元素(多個),使用逗號分隔
建立集合表:
-- 建立集合表
create table my_set(
hobby se
2.
變數
3
觸發器
5.
函式
6
儲存過程
1.事務安全
(1)事務:一系列要發生的連續的操作。
(2)事務安全:一種保護連
對第一天所學知識點進行回顧總結:
資料庫的基礎知識:關係型資料庫(儲存在磁碟)和非關係型資料庫(記憶體)
關係型資料庫:建立在關係模型上的資料庫。三大元件包括:
資料結構:二維表(比較浪費空間)
操作資料的指令集合:SQL(DDL:資料定義,DML(DQL)
回顧:
列屬性:主鍵,自增長,唯一鍵
關係:一對一,一對多,多對多
正規化:規範資料庫的設計,三層正規化
1NF:欄位設計必須符合原子性
2NF:不存在部分依賴(沒有複合主鍵)
3NF:不存在傳遞依賴(實體單獨建表)
逆規範化:效率與磁碟空間的博弈
高階資料操作:
新增資料:主
資料的高階操作:
資料操作:增刪改查
新增資料:
基本語法:
insert into 表名 [(欄位列表)] values(值列表);
在資料插入的時候,假設主鍵對應的值已經存在,插入一定會失敗。
主鍵衝突:
當主鍵存在衝突的時候(Duplicate ke
索引:
幾乎所有的索引都是建立在欄位之上。
索引:系統根據某種演算法將已有的資料(未來可能新增的資料),單獨建立一個檔案,檔案能夠實現快速的匹配資料,
並且能夠快速的找到對應表中的記錄。索引的意義在於:
1.提升查詢資料的效率
2.約束資料的有效性(唯一性等)
增加索引有前提條件:索引本
回顧:
欄位型別(列型別):數值型,時間日期和字串型別。
數值型:整數和小數型(浮點型和定點型)
時間日期型:datetime,date,time,timestamp,year。
字串型別:定長,變長,文字字串(text和blob),列舉(單選)和集合(多選)。
mysql的 記錄長度:
回顧:
連線查詢:多張表連線到一起,不管記錄數如何,欄位數一定會增加。
分類:內連線,外連線,自然連線和交叉連線。
交叉連線:cross join(笛卡爾積)
內連線:inner join,左右兩張表中有連線條件匹配(不忽略的匹配)
外連線:outer [left/righ 純乾貨:21天帶你玩轉容器可能有些人已經使用過容器,但考慮知識體系的完整性,我們還是從最基本的容器知識開始帶大家進入容器的世界。首先介紹一下什麼是容器?Docker是一種輕量級的作業系統虛擬化解決方案,它想達到一次構建到處執行,類似於Java虛擬機器的效果,它最初誕生於2013年,是基於go語言的實現,最初是 公有 docker容器 興趣 容器技術 process 使用 公司 秒級 驅動 純幹貨:21天帶你玩轉容器可能有些人已經使用過容器,但考慮知識體系的完整性,我們還是從最基本的容器知識開始帶大家進入容器的世界。首先介紹一下什麽是容器?Docker是一種輕量級的操作系統虛擬化解
場景復現,一個索引提高600倍查詢速度?
首先準備一張books表
create table books(
id int not null primary key auto_increment,
name varchar(255) not null,
author va 為什麼MySQL要用B+樹?聊聊B+樹與硬碟的前世今生
在上一節,我們聊到資料庫為了讓我們的查詢加速,通過索引方式對資料進行冗餘並排序,這樣我們在使用時就可以在排好序的資料裡進行快速的二分查詢,使得查詢效率指數提升。但是我在結尾同樣提到一個問題,就是記憶體大小一般是很有限的,不可能把一個表所有的 Kafka 分布式 消息服務 說起Kafka,許多使用者對它是又愛又恨。Kafka是一種分布式的、基於發布/訂閱的消息系統,其極致體驗讓人欲罷不能,但操心的運維、復雜的安全策略、可靠性易用性的缺失、算不上極致的性能發揮、並不豐富的消息服務功能,仍需要使用者付出諸多的背後工作。即使你是Kafka老手 c51 進行 ros batch num 簡單的 oat 深度學習 repr
目錄
1. 什麽是正則化?
2. 正則化如何減少過擬合?
3. 深度學習中的各種正則化技術:
L2和L1正則化
Dropout
數據增強(Data augmentation)
提前停止(Ear home 主配置文件 baidu 安裝環境 圖片 搭建 href ace eid DNS正向解析的搭建
實驗環境系統環境:centos6.5
安裝DNS環境軟件包rpm -ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_ conf fig ces sys 鏡像文件 mount size set blog 實驗環境系統環境:centos6.5:程安裝服務器WIN7:客戶端一、pxe遠程安裝服務器的搭建
安裝並開啟需要的服務,tftp,ftp,dhcp。1) yum -y install t 登入 conf rsa nag 系列 配置 上傳 我們 shel 實驗環境:linux centos 6.5*2實驗目的:用戶登錄控制及密鑰對驗證
sshd服務默認允許root用戶登錄,當在Internet中使用時這是非常不安全的。普遍的做法是先以普通用戶遠程登入,進入安全 ESS host mon conf 圖片 common roo echo 端口 虛擬Web主機指的是在同一臺服務器中運行多個Web站點,其中的每一個站點實際上並不獨自占用整個服務器,因此被稱為“虛擬”Web主機。通過Web主機服務可以充分利用服務器的硬件資源,從而大大降低網 相關推薦
六天帶你玩轉Mysql筆記---第一天
六天帶你玩轉mysql資料庫--第一天(下)
六天帶你玩轉mysql資料庫-- 第二天筆記
六天帶你玩轉Mysql筆記--第六天
六天帶你玩轉mysql資料庫--第二天(上)
六天帶你玩轉mysql資料庫--第四天筆記
六天帶你玩轉mysql資料庫-- 第三天筆記(下)
六天帶你玩轉mysql資料庫--第三天筆記(中)
六天帶你玩轉mysql資料庫--第三天筆記(上)
六天帶你玩轉mysql資料庫--第五天筆記(上)
純乾貨:21天帶你玩轉容器
純幹貨:21天帶你玩轉容器
【宇哥帶你玩轉MySQL】索引篇(一)索引揭祕,看他是如何讓你的查詢效能指數提升的
為什麼MySQL要用B+樹?聊聊B+樹與硬碟的前世今生【宇哥帶你玩轉MySQL 索引篇(二)】
1分鐘帶你玩轉Kafka
資深程序員帶你玩轉深度學習中的正則化技術(附Python代碼)!
百曉生帶你玩轉linux系統服務搭建系列----DNS服務的搭建一(正向解析)
百曉生帶你玩轉linux系統服務搭建系列----pxe遠程安裝服務器的搭建及無人值守安裝
百曉生帶你玩轉linux系統服務搭建系列----SSH遠程訪問及控制
百曉生帶你玩轉linux系統服務搭建系列----構建虛擬ApacheWeb主機