前端学习框架 - 数据库
項(xiàng)目流程?---- 數(shù)據(jù)庫(kù) ---- JS基礎(chǔ) ---- 服務(wù)器端開(kāi)發(fā)
項(xiàng)目流程
項(xiàng)目常用快捷鍵:
- ? ? ? ? Windows + d? ? ? ? 顯示/隱藏桌面
- ? ? ? ? Windows + e? ? ? ? 打開(kāi)“文件資源管理器”
- ? ? ? ? Windows + r? ? ? ? 打開(kāi)“運(yùn)行窗口”
- calc? ? ? ? 計(jì)算器
- cmd? ? ? ? 終端(命令行)
- mspaint? 繪圖
軟件工程
-
含義:
- 在保證軟件的質(zhì)量,工期的前提下,開(kāi)發(fā)出具有時(shí)效性,可維護(hù),可追蹤,可移植的軟件產(chǎn)品。
-
軟件的“生命周期”:
- 軟件定義期
- 可行性研究階段:研究所需要的技術(shù);人力;設(shè)備;時(shí)間;資金;回報(bào)率;政策;風(fēng)俗習(xí)慣。
- 需求分析階段:主要分為功能性需求分析/非功能性需求分析。【非功能性需求是功能性需求正常運(yùn)行的前提條件】
- 軟件開(kāi)發(fā)期
- 概要設(shè)計(jì)階段----職位:架構(gòu)師
- 技術(shù)選型:數(shù)據(jù)庫(kù)設(shè)計(jì);子系統(tǒng);模塊?
- 詳細(xì)設(shè)計(jì)階段----職位:模塊負(fù)責(zé)人
- 負(fù)責(zé)頁(yè)面;頁(yè)面內(nèi)容;頁(yè)面屬性;產(chǎn)品交互
- 編碼實(shí)現(xiàn)階段----職位:UI/前端/后端 工程師
- UI工程師提供產(chǎn)品效果圖,前端工程師將效果圖轉(zhuǎn)換為Html,CSS,JS文件,后端工程師為前端提供所需要的數(shù)據(jù)
- 測(cè)試階段----職位:軟件測(cè)試工程師
- 軟件維護(hù),涉及各個(gè)階段
- 概要設(shè)計(jì)階段----職位:架構(gòu)師
- 軟件維護(hù)期
- 部署階段----職位:運(yùn)維工程師
- 將項(xiàng)目部署到服務(wù)器,從開(kāi)發(fā)階段進(jìn)入產(chǎn)品階段
- 維護(hù)階段
- 軟件維護(hù),涉及各個(gè)階段
- 部署階段----職位:運(yùn)維工程師
- 軟件定義期
數(shù)據(jù)庫(kù)
-
定義:
- ?用于存放項(xiàng)目中所使用的數(shù)據(jù)。
- 存儲(chǔ)數(shù)據(jù)的形式:
- 內(nèi)存;文件;第三方服務(wù)器;數(shù)據(jù)庫(kù)存儲(chǔ)
- 數(shù)據(jù)庫(kù)產(chǎn)品:
- mySQL,SQLSever,Oracle
- 數(shù)據(jù)庫(kù)分類(lèi):
- 網(wǎng)狀數(shù)據(jù)庫(kù);層次型數(shù)據(jù)庫(kù);關(guān)系型數(shù)據(jù)庫(kù);非關(guān)系型數(shù)據(jù)庫(kù)
?????????關(guān)系型數(shù)據(jù)庫(kù)
????????? ? ? 邏輯結(jié)構(gòu):Secer------>Database-------->Table----------->Row---------->Column? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?數(shù)據(jù)庫(kù)服務(wù)------>數(shù)據(jù)庫(kù)------>數(shù)據(jù)表-------------->行------------->列
- MySQL部署結(jié)構(gòu)
- 服務(wù)器端:負(fù)責(zé)存儲(chǔ)/維護(hù)數(shù)據(jù)-----銀行的數(shù)據(jù)服務(wù)器
- 客戶(hù)端:負(fù)責(zé)連接數(shù)據(jù)庫(kù)服務(wù)器,對(duì)數(shù)據(jù)進(jìn)行增刪改查------ATM機(jī)
? ? ? ? ? ? ? ? ? ? 使用客戶(hù)端連接服務(wù)器端的方法:
? ? ? ? ? ? ? ? ? ? mysql.exe -hlocalhost -P3306 -uroot -p
? ? ? ? ? ? ? ? ? 理解:-h=====host====IP地址/域名====127.0.0.1/localhost
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-p=====port====端口號(hào)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-u=====user====用戶(hù)名======root管理員
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-p=====password===密碼
- MySQL常用管理命令:(mySQL為例)
- mysql-uroot? ? ? ? ? ? ? ? 進(jìn)入MariaDB數(shù)據(jù)庫(kù)【uroot后加“;”為游客身份進(jìn)入,缺失部分權(quán)限。不加“;”為管理員身份,擁有最高權(quán)限】?
- show databases;? ? ?查看服務(wù)器上當(dāng)前所有的數(shù)據(jù)庫(kù)
- use 數(shù)據(jù)庫(kù)名稱(chēng);? ? ? 進(jìn)入指定數(shù)據(jù)庫(kù)
- show tables;? ? ? ? ? ? 顯示當(dāng)前數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)表
- desc 表名;? ? ? ? ? ? ? ?查看表中的列名
- CREATE DATABASE? 數(shù)據(jù)庫(kù)名稱(chēng);
- USE? ?數(shù)據(jù)庫(kù)名?? ? ? ? ?進(jìn)入數(shù)據(jù)庫(kù)
- CREATE TABLE 表名(列名1 數(shù)據(jù)類(lèi)型,列名2 數(shù)據(jù)類(lèi)型,列名3 數(shù)據(jù)類(lèi)型..)? ?創(chuàng)建數(shù)據(jù)表
- DROP DATABASE IF EXISTS 表名;? ? ? 刪除指定數(shù)據(jù)表【前提該表存在】
- INSRT INTO 表名 VALUES(數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3)? ? ? 插入數(shù)據(jù)【數(shù)據(jù)與創(chuàng)建數(shù)據(jù)表類(lèi)型一致】
- SELECT * FROM 表名? ? ? ? 查詢(xún)數(shù)據(jù)(表內(nèi)所有數(shù)據(jù))
- SELECT * FROM emp where 約束條件;? ? ? ? 查詢(xún)指定數(shù)據(jù)
- UPDATE 表名 set 修改數(shù)據(jù)1,修改數(shù)據(jù)2 where 約束條件? ? ? ? ? 修改指定數(shù)據(jù)
- DELETE FROM 表名;? ? ?刪除整個(gè)表中數(shù)據(jù)
- DELETE FROM 表名? where? 條件;? ? ? ?刪除表中指定元素
- MySQL常用的列存儲(chǔ)數(shù)據(jù)類(lèi)型
- 數(shù)值型? ? ? ? 可省略引號(hào)
- tinyint? ? ? ?微整型,1字節(jié)? ? ? ? 范圍:-128-127
- smallint? ? ?小整型,2字節(jié)? ? ? ? 范圍:-32768-32767
- int? ? ?整型,4個(gè)字節(jié)? ? ? ? ?范圍:-2147483648-2147483647
- bigint? ?大整型,8個(gè)字節(jié)
- float? ? ?單精度浮點(diǎn)數(shù),4個(gè)字節(jié)? ? ? 范圍比int大的多,犧牲小數(shù)點(diǎn)后若干位為代價(jià),數(shù)字越大精度越低,最大值為3.4e38
- double? ?雙精度浮點(diǎn)數(shù),8個(gè)字節(jié)? 范圍比bigint大的多,數(shù)值越大精度越低。
- decimal(M,D)? ?定點(diǎn)小數(shù),小數(shù)點(diǎn)的位置不會(huì)發(fā)生變化,M:總的有效位數(shù),D:小數(shù)位數(shù)
- boolean/bool? ? ? ? ? ?布爾型,只有兩個(gè)值,true / false
- 【true,false為關(guān)鍵字不可以加引號(hào),在使用布爾型會(huì)自動(dòng)轉(zhuǎn)換為tinyint類(lèi)型,true為1,false為0】
- 日期時(shí)間型? ? ? ? 不可以省略引號(hào)
- date ----- 日期型 ------2021/01/06
- time ----- 時(shí)間型 ------ 15:20:35
- datetime? ?------? 日期時(shí)間型? ?-----? 2021/02/20? 15:30:20
- 字符串型? ? ? ? ?不可省略引號(hào)
- ?varchar(n)? ? ? ?變長(zhǎng)字符串:幾乎不會(huì)產(chǎn)生空間浪費(fèi),數(shù)據(jù)的操作速度相對(duì)慢,n的最大值為65535,用于存儲(chǔ)變化長(zhǎng)度的數(shù)據(jù)。例如:標(biāo)題;人名
- char(m)? ? ? ? ? ? 定長(zhǎng)字符串:可能會(huì)產(chǎn)生空間浪費(fèi),數(shù)據(jù)的操作速度相對(duì)較快,m的最大值為255,用于存儲(chǔ)固定長(zhǎng)度的字符串。例如:身份證號(hào);手機(jī)號(hào)
- text(x)? ? ? ? ? ? ? 大型變長(zhǎng)字符串,x最大值為2G
- ? ? ? ??? ? ? ??
-
列約束
-
MySQL可以對(duì)插入的數(shù)據(jù)進(jìn)行驗(yàn)證,只有滿(mǎn)足條件才允許插入。例如:性別只為男女......
-
?列約束的書(shū)寫(xiě)位置為在創(chuàng)建數(shù)據(jù)表的同時(shí)添加
-
CREATE TABLE? 表名(id? int? ? 列約束)
-
-
主鍵約束? ? ? ?primary? key
-
聲明了主鍵約束的列上不允許插入重復(fù)值,一個(gè)表中只能有一個(gè)主鍵,主鍵的值不能為null,常常添加在編號(hào)列,這樣做不但會(huì)避免重復(fù)值,同樣也可以加快數(shù)據(jù)的查詢(xún)數(shù)據(jù),編號(hào)按照從小到大排列。
-
-
非空約束? ? ? ?not? null
-
聲明了非空約束的列上禁止為null
-
-
唯一約束? ? ? unique
-
聲明了唯一約束的列不允許插入重復(fù)的值,允許插入null,甚至多個(gè)null。可能會(huì)影響排序。
-
-
默認(rèn)值約束? ? default
-
可以使用default來(lái)設(shè)置默認(rèn)值,首先表中列名? 數(shù)據(jù)類(lèi)型時(shí)可以定義默認(rèn)值。
-
使用方法: 插入數(shù)據(jù)? INSERT INTO 表名(default) --------調(diào)用默認(rèn)值
-
-
檢查約束? ? ? check
-
主要用于創(chuàng)建表時(shí),進(jìn)行的數(shù)據(jù)篩選。
-
使用方法:CREATE TABLE 表名( 列名1? 數(shù)據(jù)類(lèi)型? 檢查約束)
-
【MySQL不支持檢查約束,會(huì)影響數(shù)據(jù)的插入速度,一般由后端進(jìn)行數(shù)據(jù)篩選。】
-
-
外鍵約束? ? ??
-
聲明了外鍵約束的列,插入的值必須要在另一個(gè)表的主鍵列中出現(xiàn)過(guò)才可以;外鍵列數(shù)據(jù)類(lèi)型要與對(duì)應(yīng)的主鍵列數(shù)據(jù)類(lèi)型保持一致。
-
使用方法: foreign? key? (外鍵列)? references? ?另一個(gè)表 (主鍵列);
-
【外鍵約束的目的是為了讓兩表產(chǎn)生關(guān)聯(lián)】
-
-
自增列?
-
自動(dòng)增加,設(shè)置了自增列,在插入null,就會(huì)獲取當(dāng)前最大值然后加一插入。
-
使用方法:auto _increment? ? ??
-
-
-
簡(jiǎn)單查詢(xún)
-
查詢(xún)特定列
-
SELECT? 列1,列2... FROM?表名;
-
- 查詢(xún)所有列?
- SELECT *FROM 表名;
- SELECT 列1,列2,列3.... FROM 表名;
- ? 給列起別名
- SELECT 列1? as? 列1? ?FROM? ?表名;【as? 可省略】
- 顯示不同記錄(相當(dāng)于python中的group by)
- SELECT? dictinct? ?列名? ? from? ? 表名;
- 查詢(xún)時(shí)執(zhí)行計(jì)算
- SELECT 36+2+2;
- 列計(jì)算:SELECT? 列1*10? FROM 表名;
- 查詢(xún)時(shí)排序? ?order? by? ?asc/desc
- 方法1:SELECT *FROM 表名? order? by? 列1(參照) asc/desc;
- 方法2:SELECT *FROM 表名? order? by? 列1(參照) asc/desc? 列2(參照);
- 方法3:SELECT *FROM 表名 order? ?by? ?列名1(參照1),列名2(參照2)';
-
- ? 條件查詢(xún)
- 查詢(xún)指定數(shù)據(jù)
- SELECT? * FROM 表名? where? 約束條件;
- SELECT? ?*FROM 表名? where? in(條件1,條件2...)/? SELECR? *FROM? 表名? where? not? in(條件1,條件2.....)? ? ? ? ? ? 查詢(xún)滿(mǎn)足其中一項(xiàng)條件的數(shù)據(jù)
- SELECT? ?*FROM? 表名? ?where? ?列名? ? is? ?null / SELECT? *FROM? 表名? where? ?列名? ?is? not? ?null;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 查詢(xún)結(jié)果為空/非空
- 查詢(xún)指定數(shù)據(jù)
- 模糊條件查詢(xún)? ? ? ? like
- ?SELECT? *FROM? 表名? ? where? ? 列名? ?like? ?"約束條件";
- 【約束條件:% 匹配任意字符(0個(gè)或多個(gè))? ?_ 匹配一個(gè)字符? (1個(gè))? ?約束條件必須與like連用】? ? ? ? ? ?
- ?SELECT? *FROM? 表名? ? where? ? 列名? ?like? ?"約束條件";
- 數(shù)值型? ? ? ? 可省略引號(hào)
總結(jié)
以上是生活随笔為你收集整理的前端学习框架 - 数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 语雀:如何打造 Serverless J
- 下一篇: 这几个免费的PPT素材网站,你一定要知道