Node.js 核心模块 和 sql常用语句 整理

1,405 阅读5分钟

  • 状态描述
    • 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;