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