JavaScript学习Day28笔记

Day28笔记

一、数据库

数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。

二、数据库管理系统

指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统可视化访问数据库中表内的数据。

三、数据库表

数据库中以为单位存储数据。数据库表与JavaScript的类相似,对应的关系可以看成为:

  • 类 => 表
  • 类中属性 => 表中字段
  • 实例对象 => 每条记录

根据表字段所规定的数据类型,我们可以向其中填入一条条的数据,而表中的每条数据类似类的实例对象。表中的一行一行的信息我们称之为记录

四、SQL语句

SQL分类

  • 数据定义语言DDL(Data Definition Language):用来定义数据库对象,关键字:create,alter,drop等。
  • 数据操作语言DML(Data Manipulation Language):用来定义数据库中表的记录进行更新,关键字:insert,delete,updata等。
  • 数据控制语言DCL(Data Control Language):用来定义数据库的访问权限和安全级别,及创建用户。
  • 数据查询语言DQL(Data Query Language):用来查询数据库中表的记录,关键字:select,from,where等。

SQL语法

  • SQL语句可以单行或多行书写,以分号结尾。
  • 可使用空格和缩进来增强语句的可读性。
  • MySQL数据库的SQL语句不区分大小写,建议使用大写。
  • 同样可以使用/**/的方式完成注释。
  • 主键:一张表只能有一个主键(字段),用来约束该字段里的数据,不能重复,这种称之为主键,主键清尽量使用整数而不是字符串类型

SQL常用数据类型

类型名称说明
int仅容纳整数。
decimal(m,d)压缩严格的定点数, m表示数字总位数,d表示保留到小数点后d位,不足部分就添0,如果不设置m、d,默认保存精度是整型。
year年份 YYYY
time时间 HH:MM:SS
date日期 YYYY-MM-DD
datetime日期时间 YYYY-MM-DD HH:MM:SS
char(size)容纳固定长度的字符串(可容纳字母、数字以及特殊字符)size表示规定字符串的长度。
varchar(size)容纳可变长度的字符串(可容纳字母、数字以及特殊字符)size表示规定字符串的长度。

:char长度固定,chat存取速度比varchat快很多,方便程序的存储与查找。但是因为其长度固定,所以会占据多余的空间。

数据库database操作

// 创建数据库,默认编码utf8
CREATE DATABASE 数据库名;
// 创建数据库并指定数据的编码,也可用来修改数据库的编码
CREATE DATABASE 数据库名 CHARACTER SET gbk;
// 查看服务器中所有的数据库
SHOW DATABASES;
// 查看某个数据库的信息
SHOW CREATE DATABASE 数据库名;
// 删除数据库
DROP DATABASE 数据库名;
// 切换数据库
USE 数据库名;
// 查看正在使用的数据库
SELECT DATABASE();

数据库操作表

// 创建分类表
CREATE TABLE 表名 (
	字段名 类型(长度),
    字段名 类型(长度)
)
// 查看数据库中所有的表
SHOW TABLES;
// 删除表
DROP TABLE 表名;
// 修改表名
RENAME TABLE 旧表名 TO 新表名;
// 添加新字段
ALTER TABLE 表名 ADD 字段名 类型(长度);
// 修改字段名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度);
// 删除字段
ALTER TABLE 表名 DROP 字段名;
// 插入记录
INSERT INTO 表名 (字段1,字段2) VALUES (数据1,数据2);
// 修改数据
UPDATE 表名 SET 字段名  = 新数据 WHERE 主键 = 主键值;
// 删除记录
DELETE FROM 表名 WHERE 主键 = 主键值;

数据库SELECT查询

// 查询
SELECT 字段名,字段名 FROM 表名;
// 去重查询
SELECT DISTINCT 字段名 FROM 表名;
// 排序  DESC(降序)ASC(升序)
SELECT 字段1,字段2 FROM 表名 ORDER BY 字段 DESC/ASC;

数据库WHERE条件查询

逻辑运算符

  • AND => &&
  • OR => ||
  • NOT => !

比较运算符

  • > => 大于
  • < => 小于
  • >= => 大于等于
  • <= => 小于等于
  • != => 非等于
  • <> => 不等于

BETWEEN操作符

// 介于两个值之间的数据,可以是数值、文本或者日期。
WHERE 字段名 BETWEEN 数据1 AND 数据2;

LIKE操作符

// 指定搜索
WHERE 字段名 LIKE '%数据%';
// %  =>  定义通配符,数据中缺少的字母,类似正则表达式。

IN操作符

// 规定搜索
WHERE 字段名 IN (数据1,数据2);

五、NODE模块化编程

  • NODE是模块化开发。
  • 每一个JS文件都是一个独立的模块
  • 都有自己独立的作用域
  • 通过导入导出的方式把多个JS文件合并在一起。

导入

require('JS文件路径')
// 导入的数据类型为对象。

导出

module.exports = {
    属性名:属性值,
    方法名:function () { }
}
// 导出的数据类型为对象。

FS内置模块

// 直接导入就可以使用FS模块。
const fs = require('fs')
// 用FS模块异步读取文件,因为是异步读取,所有要在回调函数里获取结果。
fs.readFile('文件路径','utf8',function(err,data) {
    // err 表示读取的时候出现的错误。
    // data 表示读取到的内容,如果读取错误,那么data没有内容。
})

// 同步读取
const res = fs.readFileSync('文件路径','utf8')
// 同步读取的时候,如果出错会直接在控制台报错,并中断程序执行。
// 如果没有错误,res 就会得到文件中的内容。

// 异步写入文件
fs.writeFile('文件路径','写入的内容',function() {
    console.log('写入完成')
})

// 同步写入文件
fs.writeFileSync('文件路径','写入的内容')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值