前置条件
- 廖雪峰 sql 教程
- alasql github
- 新建一个项目
$ npm i alasql
一、基本语法
根据示例 https://github.com/agershun/alasql 学习基本语法
1.建表( CREATE TABLE)
alasql(`
CREATE TABLE users (age number, name string, money number);
`);
2. 插入数据(INSERT INTO {table})
alasql(`
INSERT INTO users VALUES (25,'张三', 100);
`):
然后确认一下数据是否真的写入了
const mysql = alasql('
SELECT *FROM users;
');
console.log(mysql); // [ { age: 25, name: '张三', money: 100 } ]
于是写个遍历,插入更多数据,以供后面操作。
...
for(let i = 0; i< 100; i++) {
const sql = `INSERT INTO users VALUES (${
i}, '张${
i}', ${
i})`;
alasql(sql);
}
const mysql = alasql('
SELECT * FROM users;
');
console.log(mysql);
// 输出:
[ {
age: 25, name: '张三', money: 100 },
{
age: 0, name: '张0', money: 0 },
{
age: 1, name: '张1', money: 1 },
{
age: 2, name: '张2', money: 2 },
{
age: 3, name: '张3', money: 3 },
{
age: 4, name: '张4', money: 4 },
// ...
{
age: 99, name: '张99', money: 99 },
3. SELECT 语句
望文生义, SELECT 就是选中,命中。选中的对象是啥呢?其实就是表的 “列” column。
举例:
// 选中 users 表中所有的列
SELECT * FROM users;
// 只选中 name 这一列
SELECT name FROM users;
// 选中 name, age 两列
SELECT name,age FROM users;
如果希望返回的结果集可以自定义列名(column) ,这种操作称之为 “投影”, 可以使用语法 :
SELECT 列1 别名1, 列2 别名2 FROM users;
举个 ?:
// 原 column 名为 name
...
[name]
张三
李四
王麻子
...
SELECT name '姓名' FROM users;
// 输出
...
[姓名]
张三
李四
王麻子
...
4. WHERE 语句
现在,从表中筛选出 age > 90 的:
...
const mysql = alasql(`SELECT * FROM users WHERE age>90;`);
console.log(mysql);
// 输出:
[ {
age: 91, name: '张91', money: 91 },
{
age: 92, name: '张92', money: 92 },
{
age: 93, name: '张93', money: 93 },
{
age: 94, name: '张94', money: 94 },
{
age: 95, name: '张95', money: 95 },
{
age: 96, name: '张96', money: 96 },
{
age: 97, name: '张97', money: 97 },
{
age: 98, name: '张98', money: 98 },
{
age: 99, name: '张99', money: 99 } ]
5. 联合条件
联合条件,即多条件叠加。是为了提高命中数据的准确度,达到准确查找想要数据的目的。
AND
...
const mysql = alasql(`SELECT * FROM users WHERE age=60 AND money=60;`);
console.log(mysql);
// 输出:
[ {
age: 60, name: '张60', money: 60 } ]
OR
...
const mysql = alasql(`SELECT * FROM users WHERE age=60 OR money=61;`);
console.log(mysql);
// 输出:
[
{
age: 60, name: '张60', money: 60 },
{
age: 61, name: '张61', money