摘要:一些重要的SQL命令

SELECT - 从数据库中提取数据

UPDATE - 更新数据库中的数据

DELETE - 从数据库中删除数据

INSERT INTO - 向数据库中插入新数据

CREATE DATABAS - 创建新数据库

ALTER DATABASE - 修改数据库

CREATE TABLE - 创建新表

ALTER TABLE - 变更(改变)数据库表

DROP TABLE - 删除表

CREATE INDEX - 创建索引(搜索键)

DROP INDEX - 删除索引

SELECT - 从数据库中提取数据

SELECT 语句用于从数据库中选取数据。

语法SELECT column_name,column_name

FROM table_name;

SQL SELECT DISTINCT 语句

在表中,一个列可能会包含多个重复值,有时希望仅仅列出不同(distinct)的值。

DISTINCT 关键词用于返回唯一不同的值。

语法SELECT DISTINCT column_name,column_name

FROM table_name;

SQL WHERE 子句

语法SELECT column_name,column_name

FROM table_name

WHERE column_name operator value;

SELECT * FROM Websites WHERE id=1;

SQL AND & OR 运算符

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

AND 运算符实例

下面的 SQL 语句从 "Websites" 表中选取国家为 "CN" 且alexa排名大于 "50" 的所有网站

SELECT * FROM Websites WHERE country='CN' AND alexa > 50;

OR 运算符实例

下面的 SQL 语句从 "Websites" 表中选取国家为 "USA" 或者 "CN" 的所有客户:

SELECT * FROM Websites WHERE country='USA' OR country='CN';

结合 AND & OR

您也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式)。

下面的 SQL 语句从 "Websites" 表中选取 alexa 排名大于 "15" 且国家为 "CN" 或 "USA" 的所有网站:

SELECT * FROM Websites
WHERE alexa > 15
AND (country='CN' OR country='USA');

SQL ORDER BY 关键字

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。

ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,可以使用 DESC 关键字。

语法

SELECT column_name,column_name

FROM table_name

ORDER BY column_name,column_name ASC|DESC;

ORDER BY 实例

SELECT * FROM Websites
ORDER BY age;

ORDER BY DESC 实例

下面的 SQL 语句从 "Websites" 表中选取所有网站,并按照 "age" 列降序排序:

SELECT * FROM Websites
ORDER BY age DESC;

按价格(price)升序排列,如果价格相同,按销量(sales)降序排列

ORDER BY price ASC,sales DESC

ORDER BY 多列

下面的 SQL 语句从 "Websites" 表中选取所有网站,并按照 "country" 和 "alexa" 列排序:

SELECT * FROM Websites
ORDER BY country,alexa;

SQL INSERT INTO

INSERT INTO 语句可以有两种编写形式。

第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

语法INSERT INTO table_name

VALUES (value1,value2,value3,...);

第二种形式需要指定列名及被插入的值:

语法INSERT INTO table_name (column1,column2,column3,...)

VALUES (value1,value2,value3,...);

在指定的列插入数据

下面的 SQL 语句将插入一个新行,但是只在 "name"、"url" 和 "country" 列插入数据(id 字段会自动更新):

INSERT INTO Websites (name, url, country)
VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND');

SQL UPDATE 语句

语法UPDATE table_name

SET column1=value1,column2=value2,...

WHERE some_column=some_value;

请注意 SQL UPDATE 语句中的 WHERE 子句!

WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!

UPDATE Websites
SET alexa='5000', country='USA'
WHERE name='菜鸟教程';

SQL DELETE 语句

DELETE 语句用于删除表中的行。

语法DELETE FROM table_name

WHERE some_column=some_value;

请注意 SQL DELETE 语句中的 WHERE 子句!

WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!

DELETE FROM Websites
WHERE name='百度' AND country='CN';

删除所有数据

您可以在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:

DELETE FROM table_name;

或

DELETE * FROM table_name;

GROUP 聚类-合并相同的

统计每个班的人数

SELECT * FROM student_table GROUP BY class;

// GROUP BY class,以class为合并依据,单独用只是个去重的作用

SELECT class FROM student_table GROUP BY class;

//只是单独列出有哪些班级

SELECT class,COUNT(class) FROM student_table GROUP BY class;

//每个班级的平均分

SELECT class,AVG(score) FROM student_table GROUP BY class;

SELECT class,AVG(score),MAX(score),MIN(SCORE),AVG(age) FROM student_table GROUP BY class;

SUM(price) //总和

LIMIT限制输出

SELECT * form 表名 WHERE 条件 limit 5,10; //检索6-15条数据

SELECT * form 表名 WHERE 条件 limit 5,-1; //检索6到最后一条数据

SELECT * form 表名 WHERE 条件 limit 5; //检索前5条数据

如分页:

LIMIT 10; //前10条

LIMIT 5,8; //从5开始,要8个

第1页 0,20 0-19

第2页 20,20 20-39

第3页 40,20

第n页 (n-1)*20,20

子句间的顺序

WHERE GROUP ORDER LIMIT

筛选 合并 排序 限制

在node中使用MySQL

const mysql=require('mysql');
// 链接数据库
// createConnection(那台数据库,用户名,密码,库)
var db=mysql.createConnection({host:'localhost',port:9999,user:'root',password:'root',database:'student'});
// console.log(db)
// 查询
db.query('SELECT * FROM user_table',(err,data)=>{
if(err) console.log(err);
else
console.log(data);
console.log(JSON.stringify(data));
}) //按条件查询
db.query('SELECT name,age FROM user_table')

数据库连接建议

如果每个请求都链接一次数据库也不好。

如果只连接一个也不好,如果其中一个没有查完,后面的就得等着。

建议,保持20个左右的连接:

// 连接池
const db=mysql.createPool({host:'localhost',port:9999,user:'root',password:'root',database:'student'}); //错误时加一个状态码
if(err){
res.status(500),send('database error').end();
}

常用SQL语句及在node中使用MySQL的更多相关文章

  1. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  2. Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  3. 50个常用SQL语句

    50个常用SQL语句 Student(S#,Sname,Sage,Ssex) 学生表  S#学号,主键 Course(C#,Cname,T#) 课程表          C#课程号,主键 SC(S#, ...

  4. ios数据库常用sql语句

    SQlite常用语句 由于sql语句在程序代码中以字符串的形式存在,没有代码提示,不细心很容易出错,而且不容易被查出来.sql语句字符串是单引号. 写sql语句的时候一定要细心呀.如果写不好可以找公司 ...

  5. oracle sqlplus及常用sql语句

    常用sql语句 有需求才有动力 http://blog.csdn.net/yitian20000/article/details/6256716 常用sql语句 创建表空间:create tables ...

  6. oracle常用SQL语句(汇总版)

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  7. 常用SQL语句(增删查改、合并统计、模糊搜索)

    转自:http://www.cnblogs.com/ljianhui/archive/2012/08/13/2695906.html 常用SQL语句 首行当然是最基本的增删查改啦,其中最重要的是查. ...

  8. oracle 常用sql语句

    oracle 常用sql语句 1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom d ...

  9. 剑指Offer——常用SQL语句、存储过程和函数

    剑指Offer--常用SQL语句.存储过程和函数 常用SQL语句 1.在MySQL数据库建立多对多的数据表关系 2.授权.取消授权 grant.revoke grant select, insert, ...

随机推荐

  1. NET代码运行在服务器JS运行在客户端

    using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;usi ...

  2. TCP和UDP数据包大小限制

    1.概述 首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层. 其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Da ...

  3. java代码----方法类练习中~~~未领会

    总结:今天我很失败,问了老师继承的问题还是没弄懂.因为,技术宅的能力,我好怕啊.太强了. package com.da.ima2; public class yut {// 使用substring方法 ...

  4. 基于OpenCV的火焰检测(一)——图像预处理

    博主最近在做一个基于OpenCV的火焰检测的项目,不仅可以检测图片中的火焰,还可以检测视频中的火焰,最后在视频检测的基础上推广到摄像头实时检测.在做这个项目的时候,博主参考了很多相关的文献,用了很多种 ...

  5. create-react-app脚手架中配置sass

    本文介绍如何在react中配置sass 首先将你的文件名称改成scss结尾的文件 然后安装依赖 cnpm install sass-loader node-sass --save-dev 找到node ...

  6. 如何深度优化MySQL内核

    MYSQL数据库适用场景广泛,相较于Oracle.DB2性价比更高,Web网站.日志系统.数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是I ...

  7. 最全SDWebImage-3.8版本源码阅读详解

    一.前言 SDWebImage,非常友好的网络图片加载第三方框架,在GitHub中已经获得了15000++的star,链接地址:https://github.com/rs/SDWebImage 本人分 ...

  8. Sandbox简介和路径获取

    一.简介 iOS的沙盒机制,每个应用只能访问自己应用目录下的文件.iOS应用产生的内容,如文件.缓存内容等都必须存储在自己的沙盒内.默认情况下,每个沙盒含有3个文件夹:Documents, Libra ...

  9. Samba服务学习报错总结

    1 2 3 4 5 此文献来至百度文库 http://wenku.baidu.com/link?url=hkHembjXcjoYRU9ky34a46Lzv5SAEutwa0v1_F8INQsdg_KK ...

  10. 推荐一款GIF录制工具

    LICEcap 是一款屏幕录制工具,支持导出 GIF 动画图片格式,轻量级.使用简单,录制过程中可以随意改变录屏范围 下载   http://www.cockos.com/licecap/