一、基础知识储备
CS架构:客户端(需要客户先安装)/服务器;
BS架构:浏览器(可直接使用浏览器运行)/服务器;
软件开发周期:软件定义期(可行性研究阶段,需求分析阶段)——软件开发期(概要设计阶段,编码实现阶段,测试阶段)——软件维护期(软件维护阶段)
二、常用快捷键
Alt+Tab:切换当前的窗口;
Windows+d:显示或者隐藏桌面;
Windows+e:打开“此电脑”或者“文件资源管理器”;
Windows+r:打开“运行”窗口,可以快速打开软件,例如:cmd(命令行)/mspaint(画图)/calc(计算器)/mstsc(连接远程云服务器)
三、数据库
1.关系型数据库逻辑结构
数据库服务器Server -> 数据库Database -> 数据表Table -> 行Row -> 列Column;
2.mysql为中小型数据库,可用于各种操作系统;
3.部署结构
(1)服务器端
mysqld.exe(相当于start键,是启动文件,占用的端口是3306)
服务器端主要负责储存维护数据
(2)客户端
mysql.exe
客户端负责连接数据库服务器
4.mysql.exe -h127.0.0.1 -P3306 -uroot -p
-h(host连接服务器域名/IP地址,连接自己电脑的localhost/127.0.0.1)
-P(post端口)
-u(user用户名,mysql管理员用户名为root)
简写为mysql -uroot
用小键盘上的上下箭头可以调出以前写的代码,Esc取消上述操作
5.常用的管理命令
show databases;——查询所有数据库
use 数据库名称;——进入指定数据库
show tables;——查看当前所处的数据库有哪些表
desc 数据表名称;——描述指定数据表中表头都有哪些项
quit;——退出连接
select * from 数据表名称;——查询数据表中数据
6.下面介绍的是脚本模式时脚本文件写法,结果可以去交互模式下查看,我的电脑有问题输入utf8 依旧会乱码,所以需要在进入mysql之前输入chcp 65001+enter来手动改变一下编码,防止以后乱码;
set names utf8;#客户端服务器使用utf8编码;
drop database if exists xizi;#如果存在数据库xizi则丢弃它;
creat database xizi charset=utf8;#创建数据库xizi并使用utf8编码;
use xizi;#打开xizi数据库;
#创建笔记本分类的表family;
create table family (
fid int primary key, #编号并附加主键约束
fname varchar(20) #分类名称
);
#输入数据
insert into family values
("10","小米"),
("20","戴尔"),
("30","联想");
#创建保存笔记本数据的表laptop
create table laptop (
lid int primary key auto_increment, #编号并附加主键约束以及设置为自增列
title varchar(50) unique not null, #标题
price decimal(7,2) default 9999, #价格
stime date default "2022-10-24" , #上架时间
isonsale boolean, #是否在售
familyid int, #所属类别编号
#将familyid作为外键列,取值必须到family的fid去找
foreign key(familyid) references family(fid)
);
#输入数据
insert into laptop values("1","小米先锋",null,"2022-10-1",true,"10");
insert into laptop values("2","戴尔三","45563.22","2020-9-15",false,"20");
insert into laptop values("3","联想拯救","10050.24",null,true,"30");
#只给编号,标题,上架时间提供值;其他列不提供值,会自动应用默认值
insert into laptop(lid,title,price,isonsale,familyid) values(4,"devile","10002.33",true,30);
insert into laptop values("7","戴尔3.0",default,default,false,"20");
insert into laptop values(null,"戴尔3.1",default,default,false,"20");
insert into laptop values(null,"戴尔3.9",default,default,false,"20");
insert into laptop values(null,"戴尔3.2",default,default,false,"20");
insert into laptop values(null,"戴尔3.3",default,default,false,"20");
insert into laptop values(null,"戴尔3.4",default,default,false,"20");
insert into laptop values(null,"戴尔3.5",default,default,false,"20");
insert into laptop values(null,"戴尔3.6",default,default,false,"20");
delete from laptop where lid="2";#删除数据
update 数据表 set 列名称=...,列名称=...,列名称=... where 条件(比如id="2")
7.常见简称
定义数据结构(DDL)【create/drop/alter(修改)】、操作数据(DML)【insert/delete(删除)/update(修改】、查询数据(DQL)【select】、控制用户权限(DCL)【grant(授权)/revoke(收权)】
8.列类型
(1)数值型
tinyint/smallint/int/bigint/float/double/decimal/boolean
整数型
tinyint微整形,占一个字节,范围【-128,127】
smallint小整形,占两个字节,范围【-32768,32767】
int整形,占4个字节,范围【-2147483648,2147483647】
bigint大整形,占8个字节,范围很大
浮点型
float单精度浮点型,占四个字节
double双精度浮点型,占8个字节
demcial(M,D)定点小数,小数点不会发生变化,M代表总的有效位数,D代表小数点后的有效位数
布尔型
只有两个值,分别是true和false代表真和假;用于储存只有两个值的数据,例如:性别,是否在线,是否是会员
(2)日期时间型
date/time/datetime
date日期型“2022-10-22”
time时间型
“15.50.30”
datetime日期时间型
“2022-10-12 15.50.30”
(3)字符串型
varchar/char/text
varchar(M)变长字符串(空间浪费少)
char定长字符串(视情况而定)
9.列约束
(1)primary key主键约束
一个表格里只能有一个主键,声明主键约束的列,不允许重复的值,主键约束的列的上禁止插入null(一次性插入多条数据,
允许在主键约束里使用一次null,这可能导致出错,所以不推荐使用一次性插入)
(2)not null非空约束
声明了非空约束的列禁止插入null
(3)unique唯一约束
声明了唯一约束的列上不允许 插入重复的值,但允许插入null,甚至是多个null
(4)default默认值约束(default+默认值)
在插入数据的时候,如果不提供的值可以使用列的默认值。步骤分为两步:
【1.设置默认值,通过default设置,如果不设置的话,默认值是null.
2.使用默认值,不提供值时会自动使用默认值】
(5)check检查约束
用户根据自己需求添加的约束,MySQL不支持这种约束,认为这种约束会严重影响数据的插入速度。
例如:create table student(score tinyint check(socre>=0 and score<=100));
(6)foreign key(外键列(familyid)) references family(另一个表的主键列fid)外键约束
目的是为了确保两表之间建立关联,便于后期的查询,声明了外键约束的列,插入的值必须在另一个表的主键列中出现过
(注意事项:外键约束的列上允许插入null,外键列和对应的另一个表的主键列类型要保持一致(如int对int)
(7)auto_increment自增列
自动增长,声明了自增列,在插入的值的时候,只需要赋值为null就会获取当前的最大值然后加1插入
(注意事项:自增列必须添加在整数形式的主键列上,允许手动赋值)
10.其他说明
null是关键字,使用时不能加引号
多个约束可以同时使用,之间敲个空格即可
11.简单查询
查询特定的列
查询所有的列
给列起别名
as
显示不同的记录
distinct
查询时执行计算
查询结果排序
order by
asc(升序) / desc(降序)
条件查询
where
比较运算符
> < >= <= = !=
and(&&) / or(||)
is null/is not null
in()/not in()
模糊条件查询
% _
like
分页查询
两个已知条件
当前的页码
每页的数据量
开始查询的值=(当前的页码-1)*每页的数据量
limit 开始查询的值, 每页的数据量
注意:开始查询的值和每页的数据量必须是数值,不能加引号
12.复杂查询
聚合查询/分组查询
count()/sum()/avg()/max()/min()
group by
year()
子查询
多表查询
内连接
inner join on
左外连接
left outer join on
右外连接
right outer join on
全连接
mysql不支持
解决方案
union
union all
四、JS
1.数据类型(ES5)
原始类型
数值型,字符串型,布尔型,空null,未定义undefined【ES6新增:Symbol类型、bingint类型】
引用类型
2.数据类型转换
数值型+字符串——字符串
数值+布尔型——数值型
字符串+布尔型——字符串
强制转换——Number(),parseInt(),parseFloat(),toString()
3.%取余,/正常运算5/2=2.5
4.switch-case只能进行全等(===)的条件判断
switch(表达式){
case 值1:语句块1 break
case 值2:语句块2 break
.......
case 值n:语句块n break
default:语句块N+1}
5.While(循环条件){循环体}——停止循环用break
do{循环体}while(循环条件)——停止循环用break
6.for(初始值;循环条件;增量){循环体}
continue跳过并继续
break结束
7.return和break对比
return用于函数中,作用是结束函数的调用,不再执行函数体
break用于循环或者switch-case语句,用于结束对应语句
8.递归
function say(){console.log("从前有座山") say()}
9.如何面向对象:封装,继承,多态
10.斐波那契数列
function f(n){
if(n==1 || n==2){
return 1
}else{
return f(n-1)+f(n-2)
}
}
console.log(f(4))
11.
前端基础知识和一些面试题(一)
于 2022-10-02 12:08:52 首次发布
本文介绍了前端的基础知识,包括CS与BS架构的区别、软件开发周期、常用快捷键,以及数据库的相关概念如关系型数据库逻辑结构、MySQL的使用。此外,文章还详细讲解了前端面试中常见的数据库操作和SQL查询,如数据表结构、插入、更新和删除数据,以及查询语句的编写。同时,文中也涉及到了JavaScript的基础知识,如数据类型、变量提升、DOM操作及事件处理。最后,文章讨论了前端开发中的跨域问题及其解决方案,如CORS和代理。
摘要由CSDN通过智能技术生成