
- 状态描述
- npm install
- 安装
- install
- eg: npm install less -g
- 删除
- uninstall
- eg: npm uninstall less -g
- 安装在全局
-
命令行: npm install 包名 -g
-
会安装到npm目录下,在交互模式下使用,在脚本模式下不可用
-
查看目标路径: npm root -g
-
卸载已经安装的包:npm unistall 包名
-
列出安装的包:npm ls -g
-
更新已经安装的包:npm update 包名
-
生成:
- 在当前路径下生成package.json文件
- npm init
-
发布:
- 登录/注册: npm adduser
- 发布: npm publish
-
Node.js 核心模块
-
(1)console global.console: 用于向stdout 和 stderr 输出 信息 console: console模块中的Console构造函数,可以向任意指定的输出流(文件)中执行输入
-
(2)queryString 提供了处理URL中‘查询字符串’部分的相关操作 parse() // 从查询字符串中解析出数据对象 stringify() //将数据对象转换为查询字符串格式,从方法有3个参数,第一个为数据对象,第二个参数设置每组键值对之间的分隔符,第三个参数设置键和值之间的分隔符
-
(3)url 提供了处理URl 中不同部分的相关操作 // 第二个参数为true,将查询字符串部分解析为对象 parse() format() //将对象地址解析出相对的URl resolve() // 根据地址解析出相对的URL
-
(4)path parse('path') // 解析路径字符串 format('obj') // 将路径对象格式化为字符串 resolve(path1, path2) // 根据基础路径解析出目路径的绝对路径 relative(path1, path2) // 根据基础路径获取目标路径与其的相对关系
-
(5)DNS 模块 提供了域名到IP地址的双向解析功能 lookup() resolve() reverse()
-
(6) Util 工具模块 format() // 使用带占位符的方式格式化字符串 inspect() // 返回1个对象的字符串格式 inherits(Sub, Base) // 构造函数间的继承
-
(7) buffer (不用引入) 缓冲区,一块专用于存储数据的储存区域
-
(8) fs 模块 提供了文件的读写/更名/删除/遍历目录等操作 所有异步方法回调函数中的第一个参数都是IO错误对象
-
(9) http
-
(10) mysql
SQL 语言
- SQL: Strctured Query Language,结构化查查询语言,
- 用于操作关系型数据库中数据的标准化语言
- SQL语言被主流的关系型数据库所支持,所以相同的SQL语句在大多数数据库中都可以顺利执行;
- 但各个厂家的实现的细节与拓展方面有所不同,比如:
- 列类型不尽相同
- 分页查询实现不同
- 工具函数不尽相同
- 储存过程语法不同
- SQL 语句的分类
- DDL: Data Define Language,定于数据的结构
- CREATE 创建数据库或表
CREATE DATABASE erp CHARSET UTF8; CREATE TABLE emp( id INT, ename VARCHAR(32) ) - DROP 删除数据库或表
DROP DATABASE IF EXISTS erp; DROP TABLE emp; - ALERT 添加/修改/删除列
ALTER TABLE emp ADD weixin VARCHAR(32); ALTER TABLE emp CHANG phone tel VARCHAR(11); - TRUNCATE 清除表中的数据
TRUNCATE TABLE emp; - DML: Data Manipulate Language,操作数据行
- INSERT 插入数据
- DELETE 删除数据
- UPDATE 修改数据
- DQL: Data Query Language,查询数据
- SELECT 查询表中的记录,是SQL语句中最复杂
基本查询
基本查询语法
SELECT eid,ename FROM emp;
查询所有列
SELECT * FROM emp;
为列取别名
SELECT eid AS i, ename AS n FROM emp;
只显示列上不同的值
SELECT DISTINCT depId FROM emp;
查询过程中执行运算
SELECT salary*12+comm FROM emp;
条件查询 -- 实现根据特定的条件对结果进行筛选
- 进行相等或不等的判定
SELECT * FROM emp WHERE eid = 81;
SELECT * FROM emp WHERE salary >= 6000;
SELECT * FROM emp WHERE age BETWEEN 20 AND 30;
SELECT * FROM emp WHERE depId <> 6000;
SELECT * FROM emp WHERE age BETWEEN 20 AND 30;
SELECT * FROM emp WHERE deptId IN (10,30,40)
- 多条件并列
SELECT * FROM emp WHERE age>40 AND depId = 10;
SELECT * FROM emp WHERE salary>8000 OR salary<4000;
SELECT * FROM emp WHERE depId NOT IN (10, 30, 40);
- 模糊查询
SELECT * FROM emp WHERE ename LIKE '%e%'
查询排序 -- 可以使用DRDER BY 子句对查询结果进行排序
- 升序排列
SELECT * FROM emp ORDER BY salary;
- 降序排列:
SELECT * FROM emp ORDER BY salary DESC;
- 多列排序
SELECT * FROM emp ORDER BY deptId,age DESC'
分页查询 -- 不同数据库中的分页查询语法各不相同。MySQL使用LIMIT 关键字实现分页查询
- 基本语法
SELECT * FROM emp [WHERE...][ORDER BY ...] LIMIT start,count;
- 假设每页最多显示20多条记录
SELECT * FROM emp LIMIT 0,20; # 第1页
SELECT * FROM emp LIMIT 20,20; # 第2页
SELECT * FROM emp LIMIT 40,20; * 第3页
...
...
SELECT * FROm emp LIMIT (n-1)*20, 20; # 第n页
聚合分组查询
-- MySQL 提供额五个聚合函数,可以对查询结果进行特定的运算
SELECT MAX(salary) FROM emp; # 查询工资最大值
SELECT MIN(salary) FROM emp; # 查询工资最小值
SELCET SUM(salary) FROM emp; # 查询工资总和
SELECT COUNT(salary) FROM emp; # 查询工资数量
SELET AVG(salary) FROM emp; # 查询工资平均值
分组查询,指将指定列上的值相同的记录划分在一组中,在组内进行聚合运算:
SELECT MAX(salary) FROM emp GROUP BY deptId;
SELECT COUNT(salry) FROM emp GROUP BY depId;
SELECT AVG(salry) FROM emp GROUP BY deptId;
子查询 -- 是在一个查询语句中的某个或多个子句中包含其他的查询语句,是一种复合的查询语句
SELECT * FROM emp
WHERE deptId = (
SELECT did FROM dept
WHERE dname = '研发部'
);
子查询也常常出现在DML语句中
UPDATE emp
SET salary = salary * 1.1
WHERE salary < (
SELECT AVG(salary) FROM emp
)
// 以上报错解决方法 -- 因为查询同一张表
UPDATE emp
SET salary = salary * 1.1
WHERE salary < (
SELECT * FROM (SELECT AVG(salary) FROM emp) AS tmp
)
- DCL: Data Control Language,控制用户的权限
- GRANT 授权
- REVOKE 撤回
练习:
服务器执行sql 文件
source emp.sql
查询表所有
SELECT * from user;
表中插入数据--添加一列
ALTER TABLE user ADD phone INT;
改变列的名字
ALTER TABLE user CHANGE phone tel INT;