SQL

操作数据库


SQL标准写法
  1. 关键字大写
  2. 库名、表名、字段名需要加上反单引号
1. 新增
INSERT INTO users (username,create_time) VALUES ('admin',now())
2. 删除
DELETE FROM 表 WHERE 条件
3. 修改
UPDATE 表 SET 字段='值',字段='值'... WHERE 条件
// 替换某个部分
UPDATE rights SET role_id= REPLACE(role_id, ',${roleId},', ',') where id = ${rightId}
4. 查询
SELECT * FROM 表 WHERE 条件

SQL子句


1. 条件 - WHERE
WHERE age>18 AND score<60
WHERE cash>100 OR score>10000
2. 排序 - ORDER
ORDER BY age ASC/DESC 
    ASC    升序(从小到大)
    DESC   降序(从大到小)

// 多条件排序
ORDER BY price ASC, sales DESC
3. 聚类 - GROUP
SELECT class,COUNT(class) FROM student_table GROUP BY class;
// 与 GROUP 配合的函数 COUNT  MIN  MAX  AVG
4. 限制 - LIMIT
LIMIT 10 // 只给前10条
LIMIT 5, 10 // 从第5条开始,给10条
子句的书写顺序

WHERE - GROUP - ORDER - LIMIT

案例


1. 换行效果

用正则表达式给数据库提取出的每行数据前后加p标签,可以使数据在页面显示时有换行效果。

var str2 = str.replace(/^/gm, '

').replace(/$/gm, '

')

使用<%= %>渲染str2时,ejs为了防止注入攻击,将标签给转义输出了,要把<%= %>换成<%- %>,杠的意思就告诉ejs不要转义输出。

2. 树形结构
微信截图_20200217210505.png
var obj = {children:[]}
function getTree(data, parent_id, obj){
    data.forEach(item => {
        if(item.parent_id === parent_id){
            if(item.level !== '3'){
                item.children = []
            }
            obj.children.push(item)
            getTree(data, item.id, item)
        }
    })
}

你可能感兴趣的:(SQL)