项目流程 ---- 数据库 ---- JS基础 ---- 服务器端开发
项目流程
项目常用快捷键:
- Windows + d 显示/隐藏桌面
- Windows + e 打开“文件资源管理器”
- Windows + r 打开“运行窗口”
- calc 计算器
- cmd 终端(命令行)
- mspaint 绘图
软件工程
-
含义:
- 在保证软件的质量,工期的前提下,开发出具有时效性,可维护,可追踪,可移植的软件产品。
-
软件的“生命周期”:
- 软件定义期
- 可行性研究阶段:研究所需要的技术;人力;设备;时间;资金;回报率;政策;风俗习惯。
- 需求分析阶段:主要分为功能性需求分析/非功能性需求分析。【非功能性需求是功能性需求正常运行的前提条件】
- 软件开发期
- 概要设计阶段----职位:架构师
- 技术选型:数据库设计;子系统;模块
- 详细设计阶段----职位:模块负责人
- 负责页面;页面内容;页面属性;产品交互
- 编码实现阶段----职位:UI/前端/后端 工程师
- UI工程师提供产品效果图,前端工程师将效果图转换为Html,CSS,JS文件,后端工程师为前端提供所需要的数据
- 测试阶段----职位:软件测试工程师
- 软件维护,涉及各个阶段
- 概要设计阶段----职位:架构师
- 软件维护期
- 部署阶段----职位:运维工程师
- 将项目部署到服务器,从开发阶段进入产品阶段
- 维护阶段
- 软件维护,涉及各个阶段
- 部署阶段----职位:运维工程师
- 软件定义期
数据库
-
定义:
- 用于存放项目中所使用的数据。
- 存储数据的形式:
- 内存;文件;第三方服务器;数据库存储
- 数据库产品:
- mySQL,SQLSever,Oracle
- 数据库分类:
- 网状数据库;层次型数据库;关系型数据库;非关系型数据库
关系型数据库
逻辑结构:Secer------>Database-------->Table----------->Row---------->Column 数据库服务------>数据库------>数据表-------------->行------------->列
- MySQL部署结构
- 服务器端:负责存储/维护数据-----银行的数据服务器
- 客户端:负责连接数据库服务器,对数据进行增删改查------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数据库【uroot后加“;”为游客身份进入,缺失部分权限。不加“;”为管理员身份,拥有最高权限】
- show databases; 查看服务器上当前所有的数据库
- use 数据库名称; 进入指定数据库
- show tables; 显示当前数据库中的所有数据表
- desc 表名; 查看表中的列名
- CREATE DATABASE 数据库名称;
- USE 数据库名 进入数据库
- CREATE TABLE 表名(列名1 数据类型,列名2 数据类型,列名3 数据类型..) 创建数据表
- DROP DATABASE IF EXISTS 表名; 删除指定数据表【前提该表存在】
- INSRT INTO 表名 VALUES(数据1,数据2,数据3) 插入数据【数据与创建数据表类型一致】
- SELECT * FROM 表名 查询数据(表内所有数据)
- SELECT * FROM emp where 约束条件; 查询指定数据
- UPDATE 表名 set 修改数据1,修改数据2 where 约束条件 修改指定数据
- DELETE FROM 表名; 删除整个表中数据
- DELETE FROM 表名 where 条件; 删除表中指定元素
- MySQL常用的列存储数据类型
- 数值型 可省略引号
- tinyint 微整型,1字节 范围:-128-127
- smallint 小整型,2字节 范围:-32768-32767
- int 整型,4个字节 范围:-2147483648-2147483647
- bigint 大整型,8个字节
- float 单精度浮点数,4个字节 范围比int大的多,牺牲小数点后若干位为代价,数字越大精度越低,最大值为3.4e38
- double 双精度浮点数,8个字节 范围比bigint大的多,数值越大精度越低。
- decimal(M,D) 定点小数,小数点的位置不会发生变化,M:总的有效位数,D:小数位数
- 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) 变长字符串:几乎不会产生空间浪费,数据的操作速度相对慢,n的最大值为65535,用于存储变化长度的数据。例如:标题;人名
- char(m) 定长字符串:可能会产生空间浪费,数据的操作速度相对较快,m的最大值为255,用于存储固定长度的字符串。例如:身份证号;手机号
- text(x) 大型变长字符串,x最大值为2G
-
列约束
-
MySQL可以对插入的数据进行验证,只有满足条件才允许插入。例如:性别只为男女......
-
列约束的书写位置为在创建数据表的同时添加
-
CREATE TABLE 表名(id int 列约束)
-
-
主键约束 primary key
-
声明了主键约束的列上不允许插入重复值,一个表中只能有一个主键,主键的值不能为null,常常添加在编号列,这样做不但会避免重复值,同样也可以加快数据的查询数据,编号按照从小到大排列。
-
-
非空约束 not null
-
声明了非空约束的列上禁止为null
-
-
唯一约束 unique
-
声明了唯一约束的列不允许插入重复的值,允许插入null,甚至多个null。可能会影响排序。
-
-
默认值约束 default
-
可以使用default来设置默认值,首先表中列名 数据类型时可以定义默认值。
-
使用方法: 插入数据 INSERT INTO 表名(default) --------调用默认值
-
-
检查约束 check
-
主要用于创建表时,进行的数据筛选。
-
使用方法:CREATE TABLE 表名( 列名1 数据类型 检查约束)
-
【MySQL不支持检查约束,会影响数据的插入速度,一般由后端进行数据筛选。】
-
-
外键约束
-
声明了外键约束的列,插入的值必须要在另一个表的主键列中出现过才可以;外键列数据类型要与对应的主键列数据类型保持一致。
-
使用方法: foreign key (外键列) references 另一个表 (主键列);
-
【外键约束的目的是为了让两表产生关联】
-
-
自增列
-
自动增加,设置了自增列,在插入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 表名;
- 查询时执行计算
- 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)';
-
- 条件查询
- 查询指定数据
- SELECT * FROM 表名 where 约束条件;
- SELECT *FROM 表名 where in(条件1,条件2...)/ SELECR *FROM 表名 where not in(条件1,条件2.....) 查询满足其中一项条件的数据
- SELECT *FROM 表名 where 列名 is null / SELECT *FROM 表名 where 列名 is not null; 查询结果为空/非空
- 查询指定数据
- 模糊条件查询 like
- SELECT *FROM 表名 where 列名 like "约束条件";
- 【约束条件:% 匹配任意字符(0个或多个) _ 匹配一个字符 (1个) 约束条件必须与like连用】
- SELECT *FROM 表名 where 列名 like "约束条件";
- 数值型 可省略引号