1. JQuery.JS 2. Angular.JS(模型, scope作用域,controller,依赖注入,MVVM)2、 前端MVC
1. Vue.JS(MVVM) 2. React.JS (创建自定义标签,根据id注入标签) 3. Node.JS(服务器端)3、UI框架(Html/Css/JS组合)
1. Bootstrap(html/CSS/JS)(简洁、直观、强悍的前端框架,让web开发更迅速、简单)二、后端:Java、Tomcat(Web+Servlet+JSP) 1、后端语言:Java 2、后端框架:Spring、MVC、Boot、Cloud 三、数据库 1、数据库语言:Sql
– sql结构化查询语句(适用MySql):
-- 连接数据库:
mysql -u root -p
-- 展示所有数据库:
SHOW DATAbaseS;
-- 创建数据库:
CREATE DATAbase shujuku
-- 选择数据库:
USE shujuku;
-- 展示所有数据表:
SHOW TABLES;
-- 创建数据表:
CREATE TABLE `biao` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` varchar(25) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE IF NOT EXISTS `biao00`(
`id` INT UNSIGNED AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`sex` VARCHAR(40) NOT NULL,
`age` DATE,
PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 约束:
-- 非空约束(NOT NULL):
CREATE TABLE biao0 (
id int NOT NULL,
name varchar(255) NOT NULL,
FName varchar(255) NOT NULL,
Age int
);
-- 唯一性约束(UNIQUE):
CREATE TABLE biao1(
Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id)
)
-- 主键约束(Primary Key):
CREATE TABLE biao2(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
-- 主键约束取别名(2个列名组成CONSTRAINT)(ConSTRAINT zhujianmingming PRIMARY KEY (id,name)):
CREATE TABLE biao3(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
CREATE TABLE biao4(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
-- 唯一约束的键取别名(2个列名组成 CONSTRAINT):
CREATE TABLE biao5(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)
-- 限制列中值的范围约束(单列CHECK):
CREATE TABLE biao6(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)
-- 多列范围别名约束(CONSTRAINT):
CREATE TABLE biao7
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)
-- 默认值约束(DEFAULT) :
CREATE TABLE biao8(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)
-- 插入函数默认值(函数):
CREATE TABLE biao9
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
)
自动创建主键字段值(AUTO INCREMENT 开始值为 1):
CREATE TABLE biao10(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)
创建索引(CREATE INDEX):CREATE INDEX suoyinming ON biao (id);
CREATE INDEX suoyinming ON biao (id,name,sex);
唯一单独索引/不能重复(CREATE UNIQUE INDEX):CREATE UNIQUE INDEX suoyinming ON biao (id);
修改(ALTER):
撤销所有约束(存在问题自己调试):
ALTER TABLE biao DROp INDEX id;
ALTER TABLE biao DROP PRIMARY KEY;
ALTER TABLE biao DROP CONSTRAINT bieming;
ALTER TABLE biao DROP FOREIGN KEY bieming;
ALTER TABLE biao DROP CHECK bieming;
ALTER TABLE biao ALTER id DROP DEFAULT;
ALTER TABLE biao DROP INDEX suoyinming;
ALTER TABLE biao DROP COLUMN lie;
修改表(存在问题自己调试):
ALTER TABLE biao MODIFY sex int NOT NULL;
ALTER TABLE biao MODIFY sex int NULL;
ALTER TABLE biao ADD UNIQUE (id);
ALTER TABLE biao ADD PRIMARY KEY (id);
ALTER TABLE biao ADD CONSTRAINT bieming PRIMARY KEY (id,name);
ALTER TABLE biao ADD FOREIGN KEY (id) REFERENCES biao(id);
外键(FOREIGN KEY):ALTER TABLE biao ADD CONSTRAINT bieming FOREIGN KEY (id) REFERENCES biao(id);
检查列数据范围内约束(检查表中字段值有效性CHECK):ALTER TABLE biao ADD CHECK (id>0);
ALTER TABLE biao ADD CONSTRAINT bieming CHECK (id>0 AND name='任明');
修改列默认值:ALTER TABLE biao ALTER id SET DEFAULT 1314;
添加列(包含类型):ALTER TABLE biao ADD lie varchar(255);
修改列(包含类型):ALTER TABLE biao MODIFY COLUMN sex int(255);
修改主键自增起始值:ALTER TABLE biao AUTO_INCREMENT=100;
选取查询:SELECT DISTINCT id ,name FROM biao WHERe id LIKE 3 AND id <4 OR id=4 AND(id<5 OR id=2);
排序:
升序: SELECt DISTINCT id,name FROM biao ORDER BY id;
降序:SELECt DISTINCT id,name FROM biao ORDER BY id Desc;
多列排序:SELECt DISTINCT id,name FROM biao ORDER BY id,name Desc;
限制返回记录数目(条件限制):SELECt * FROM biao WHERe name <=5;
SELECt * FROM biao LIMIT 5;
模糊选取查询(like):SELECt * FROM biao WHERe id LIKE '1%';
SELECt * FROM biao WHERe id LIKE '%1';
SELECt * FROM biao WHERe id LIKE '%1%';
SELECt * FROM biao WHERe name LIKE '老%';
SELECt * FROM biao WHERe name LIKE '%婆';
SELECt * FROM biao WHERe name LIKE '%任明%';
通配符:
SELECt * FROM biao WHERe id LIKE '1%';
SELECt * FROM biao WHERe id LIKE '_5';
SELECt * FROM biao WHERe id REGEXP '^[35]';
SELECt * FROM biao WHERe id REGEXP '^[3-5]';
SELECt * FROM biao WHERe id REGEXP '^[^3-5]';
in单个条件设置:SELECt * FROM biao WHERe id IN (1,8,9,99);
SELECt * FROM biao WHERe id NOT BETWEEN 10 AND 99;
区间范围条件:SELECt * FROM biao WHERe id BETWEEN 510 AND 99;
区间中的单个:SELECt * FROM biao WHERe (id BETWEEN 510 AND 99) AND id IN (510,99);
SELECt * FROM biao WHERe (id BETWEEN 510 AND 99) AND id NOT IN (514,511);
别名:SELECt name AS n, id AS i FROM biao;
SELECt w.name, w.id, w.sex FROM biao AS w WHERe w.sex=6 AND w.id="6";
合并(CONCAT列)并创建别名:SELECt name, CONCAT( id, ', ', sex) AS bieming FROM biao;
多表连接(JOIN/INNER JOIN 与 JOIN 相同)成1表:SELECt biao.id, biao.name, biao1.id1, biao1.name1 FROM biao INNER JOIN biao1 ON biao.id=biao1.id1;
内连接(匹配):SELECt biao.id, biao.name, biao1.id1, biao1.name1 FROM biao INNER JOIN biao1 ON biao.id=biao1.id1;
SELECt biao.id, biao.name, biao1.id1, biao1.name1 FROM biao INNER JOIN biao1 ON biao.id=biao1.id1 ORDER BY biao.id ;
SELECt biao.id, biao.name, biao1.id1, biao1.name1 FROM biao INNER JOIN biao1 ON biao.id=biao1.id1 ORDER BY biao.id DESC;
左连接(匹配):SELECt biao.id, biao.name, biao1.id1, biao1.name1 FROM biao LEFT JOIN biao1 ON biao.id=biao1.id1 ORDER BY biao.id DESC;
右连接(匹配):SELECt biao.id, biao.name, biao1.id1, biao1.name1 FROM biao RIGHT JOIN biao1 ON biao.id=biao1.id1 ORDER BY biao.id DESC;
合并查询结果集(UNIOn):
部分合并:SELECt id FROM biao UNIOn SELECt name1 FROM biao1 ORDER BY id;
全部合并:SELECt id FROM biao UNIOn ALL SELECt name1 FROM biao1 ORDER BY id;
条件合并:SELECt id FROM biao WHERe id='99' UNIOn ALL SELECt name1 FROM biao1 WHERe id1='13' ORDER BY id;
插入: INSERT INTO biao (name,id) VALUES ('任明',991314);
修改更新:UPDATe biao SET id=991314 ,name='任明',sex=1 WHERe sex=1;
删:
删除(逐行一条条删除记录):DELETE FROM biao ;
删除(删除列id为1的一行): DELETe FROM biao WHERe id=1;
删除表:DROp TABLE biao;
删除数据库:DROP DATAbase shujuku;
清空(删除原表创建新表(删除数据不删表)):TRUNCATE TABLE biao;
复制表到新表(CREATE AS ):CREATE TABLE biao5 AS SELECT * FROM biao;
复制表到旧表(INSERT SELECt):INSERT INTO biao3 SELECT * FROM biao;
INSERT INTO biao3 (id,name) SELECt id ,name FROM biao;
INSERT INTO biao3 (id,name) SELECt id ,name FROM biao WHERe id=1;
视图( SQL 语句结果集的可视化表(虚拟逻辑表(本身不含数据(就是select语句保存在数据字典))))(Views):
基表:创建构成视图的实际的表叫做基表
查看创建视图的有无权限(有Y、无N):SELECT权限、CREATE VIEW权限
SELECT * FROM mysql.user WHERe user='root';
SELECt * FROM mysql.user WHERe user='remli';
SELECt Select_priv,Create_view_priv FROM mysql.user WHERe user='root';
创建视图:CREATE OR REPLACe VIEW biaoshitu AS SELECT id,name FROM biao;
创建视图同时指定属性清单:CREATE OR REPLACe VIEW biaoshitu (idV,nameV) AS SELECT id,name FROM biao;
修改视图:ALTER VIEW biaoshitu AS SELECt id,name FROM biao where id in (select id from biao);
函数:
Date 函数:
日期(Dates):
SELECt * FROM biao WHERe Dates='2008-11-11'
SELECt * FROM biao WHERe Dates='2008-11-11 00:00:00'
返回数值列平均值(AVG(列名)):
SELECt AVG(id) FROM biao;
SELECt AVG(id) AS '表id平均值' FROM biao;
SELECt id, sex FROM biao WHERe id > (SELECt AVG(id) FROM biao);
返回匹配指定条件的行数COUNT() :
SELECt COUNT(id) FROM biao;
SELECt COUNT(*) FROM biao;
SELECt COUNT(*) AS '行数' FROM biao;
SELECt COUNT(DISTINCT id) AS '不同行数' FROM biao;
SELECt COUNT(id) AS 'id=520的行数' FROM biao WHERe id=520;
返回指定的列中第一个记录的值(通过limit实现):
SELECt id FROM biao ORDER BY id ASC LIMIT 1;
返回指定的列中最后一个记录的值(通过limit实现):
SELECt id FROM biao ORDER BY id DESC LIMIT 1;
返回指定列的最大值(MAX(列名) ):
SELECt MAX(id) AS 'id列的最大值' FROM biao;
返回指定列的最小值(MIN(列名)):
SELECt min(id) AS 'id列的最小值' FROM biao;
返回数值列的总和SUM(列名):
SELECt sum(id) AS 'id列的总和' FROM biao;
结合聚合函数、根据一个或多个列对结果集进行分组(GROUP BY):
SELECt id, SUM(biao.sex) AS '总和进行分组' FROM biao GROUP BY id;
SELECt biao.name,COUNT(biao1.id1) AS '多表分组连接返回行数' FROM biao1 LEFT JOIN biao ON biao1.id1=biao.id GROUP BY biao.name;
筛选分组后的各组数据进行聚合同时可加条件(HAVINg):
-- 非版本mysql5.7版本问题导致which is not functionally dependent on columns in GROUP BY clause错误
SET sql_mode=(SELECt REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
SELECT biao.id, biao.name, SUM(biao1.id1) AS '表id1列总和' FROM (biao1 INNER JOIN biao ON biao1.id1=biao.id) GROUP BY biao.name HAVINg SUM(biao1.id1) > 200;
SELECt biao.id, biao.name, SUM(biao1.id1) AS '表id1列总和' FROM biao1 INNER JOIN biao ON biao1.id1=biao.id WHERe biao.id < 200 GROUP BY biao.name HAVINg SUM(biao1.id1) > 200;
判断查询子句是否有记录(EXISTS 运算符):
SELECt biao.name, biao.id FROM biao WHERe EXISTS (SELECt id1 FROM biao1 WHERe biao.id = biao1.id1 AND id1 > 200);
SELECt biao.name, biao.id FROM biao WHERe NOT EXISTS (SELECt id1 FROM biao1 WHERe biao.id = biao1.id1 AND id1 > 200);
字段的值转换为大写( UCASE() ):
SELECt UCASE(name) AS '转换大写字母', sex FROM biao;
字段的值转换为小写( LCASE() ):
SELECt LCASE(name) AS '转换小写字母', sex FROM biao;
从文本字段中提取字符(MID() ):
SELECt MID(name,1,4) AS '提取字符4个字符' FROM biao ;
SELECt MID(name,1,4) AS '提取字符4个字符' FROM biao WHERe id=11;
返回文本字段中值的长度(LEN()):
SELECt name, LENGTH(name) AS '名字长度(包含类型长度)' FROM biao;
数值字段舍入为指定的小数位数(ROUND() ):
SELECt ROUND(id) FROM biao;
SELECt ROUND(1.298, 1) AS '四舍五入保留小数1位小数';
SELECT ROUND(1.298, 0) AS '四舍五入保留小数0位小数(整数)';
SELECT ROUND(-1.23) AS '默认保留整数';
返回当前系统的日期和时间NOW():
SELECT id, name, Now() AS '当前时间' FROM biao;
对字段的显示进行格式化(FORMAT() ):
SELECt id, name, DATE_FORMAT(Now(),'%Y-%m-%d') AS '时间按年月日格式显示' FROM biao;
遗漏的未知不适用数据(NULL占位符):
SELECt id,name,sex FROM biao WHERe id IS NULL;
SELECt id,name,sex FROM biao WHERe id IS NOT NULL;
SELECt sex *(id+name) FROM biao WHERe id IS NULL;
SELECt sex *(id+name) FROM biao WHERe id IS NOT NULL;
SELECt sex *(id+IFNULL(name,0)) FROM biao;
SELECt sex *(id+COALESCE(name,0)) FROM biao;
TRANSACTION事务处理(BEGIN, ROLLBACK, COMMIT):
start transaction;-- 开启事务
begin; # 开始事务
commit; # 提交事务——结束事务
rollback; # 回滚——结束事务
存储过程/控制/缓存(记住必须分步执行/绝对不能复制到一起):
第一步:
DROp PROCEDURE IF EXISTS biao_cuncu;
delimiter $$
CREATE PROCEDURE biao_cuncu(IN id int)
BEGIN
SELECT id;
SET id=2;
SELECT id;
END
第二步:
DELIMITER ;
第三步:
SET @id=11;
CALL biao_cuncu(@id);
SELECT @id AS '传入的值';
#创建存储过程:
delimiter $$ #将语句的结束符号从分号;临时改为两个$$(可以是自定义)
CREATE PROCEDURE biao_cuncu(OUT id int)
BEGIN
SELECT id;
SET id=2;
SELECT id;
END
#退出分号屏蔽:
DELIMITER ; #将语句的结束符号恢复为分号
##设置传参调用:
SET @id=11;
CALL biao_cuncu(@id);
#查看存储过程
show procedure status;
#删除已有存储过程
DROP PROCEDURE IF EXISTS biao_cuncu;
循环插入(存储过程):-- 插入到99条数据
-- 删除存储过程
DROP PROCEDURE IF EXISTS biaofunction;
-- 分隔符
DELIMITER ;;
-- 声明存储过程函数
CREATE PROCEDURE biaofunction()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i<=99
DO
insert into biao(id,name) values (i,'任明');
SET i=i+1;
END WHILE ;
commit;
END;;
CALL biaofunction() ;
SQL 注入(永远不要信任用户的输入):
分页(LIMIT X,Y):
-- 第一个参数(起始行):指定第一个返回记录行的偏移量
-- 第二个参数(行区间):指定返回记录行的最大数目
SELECT * FROM biao LIMIT 5,10; #检索记录行 6-15行——从第6条记录行开始算,取出10条数据
SELECt * FROM biao LIMIT 5; #检索前 5 个记录行
SELECt * FROM biao LIMIT 0,5; #检索前 5 个记录行
SELECt * FROM biao limit 5,-1; #取出第6条记录行以后的所有数据
2、数据库:Mysql、Oracle、DB2、Redis、monogodb
3、数据库框架:Mybatis、
四、分布式(消息中间件):Kafka、RabbitMQ
1、分布式服务框架:Dubbo
五、部署:Git(版本)、Docker(镜像)、SVN(版本)


