数据库语句——入门

1 篇文章 0 订阅
1 篇文章 0 订阅

数据库

mysql数据库

创建表
- 数据类型
    + 整数类型 int
    + 浮点类型 double
    + 日期类型 date/timestamp 
    + 字符串类型 char varchar
        * 可变varchar(n)  必须要给字符最大长度n 使用:用户名,密码,身份证号码。 n= 40 40 个字节,20个字符 
        * 不可变是char 不需要给字符长度,使用;商品描述、歌词...
        * 空间换时间 
        * text 长度不限 
- 首先足够用,其次尽量小
    create table 表名(
        id int,
        name varchar(20)
    );
- 查看创建表的语句
    + show create table 表名
- 查看表的明细
    + desc 表名
删除表
- drop table 表名
插入数据
- 第一种:全表字段插入
    + `insert into 表名 values (val1,val2...)`
    + 插入的字段类型和*顺序必须*与表的字段*类型*与顺序保持一致,个数是针对全表字段的插入
- 指定表字段的插入
    + `insert into 表名 (字段1,字段2...) values (val1,val2...)`
    + 插入的数据的顺序要与声明的字段名的顺序一致
    + 类型也要一致,个数也要一致

总结

sql 语句 结尾必须要有 分号

  • 启动:到安装的bin文件下 或者用可视化工具
  • 1: 登录:
    • mysql -u root -p
    • 密码
    • mysql 连接 -u用户名root -p
    • mysql -hlocalhost -uroot -p
    • mysql yanqi -uroot -p
  • 2: 查看有哪些数据库
    • show databases;
  • 3: 切换数据库
    • use 数据库名;
  • 4: show tables;
    • 没有表: 必须创建表 create table ceshi(id int,name varchar(20));
  • 5: 查看表字段明细
    • desc 表名;
    • desc user;
  • 6: 插入数据
    • insert into 表名 (字段1,..) values (值1...)
    • 插入的是数据,表中字段;以及字段的类型;是在创建表示决定的
  • 7 更新操作
    • UPDATE 表名 SET 字段1 = 表达式,[,字段2 = 表达式] [WHERE express布尔值]
    • update student set tmp = 20+1,sex = sex where 1=1;
  • 8 删除操作
    • DELETE FROM 表名 [,WHERE exr布尔值]
    • delete from student where name = '马蓉';
  • 9 truncate和delete的区别
    • truncate table 表名
      delete会一条一条的删 自增id保留
      truncate先摧毁整张表,再创建一张和原来的表结构一模一样的表
      truncate在效率上比delete高
      truncate只能删除整表的数据,也就是格式化。
      truncate会把自增id截断恢复为1

查询语句

  • DISTINCT 去重,尽量不要根据* 来去重
    • select distinct name,age from student;
    • select * name,age fromo student
  • 查询语句可以指定多个字段查询,也可以使用* 查询
    • 在企业中,使用SQL查询* 是会拉低查询效率的 ,建议少用* 查询
条件查询
  • select * from student where math > 66.6 or math < 66.6;
  • 语法:select * from 表 查询条件
> < <= >= = <>    大于、小于、大于(小于等于)、不等于
between...and 显示在某一区间的值
in(set) 显示在in列表中的值,例:in(100,200)
like ‘张pattern’ 模糊查询%
is null 判断是否为空
and 多个条件同时成立
or  多个条件任一成立
not 不成立,例:where not(salary>100)
模糊查询
- 包含关`select * from student where name like '%关%';` 
- 以关开头`select * from student where name like '关%';` 
- 以关结尾`select * from student where name like '%关';` 
  • 判断为空
    • select * from student where sex is not null;
聚合函数
  • 统计数量
    • count(星号)
  • 求和
    • sum(math+english+chinese)
  • 平均值
    • avg(math+english+chinese)
  • 找最值
    • max(列)/min(列)/max(math+english+chinese)
排序(order by)
  • select * from student where 1= 1 order by chinese desc,math desc,english desc;
分组(group by)
  • 如果聚合函数只有一行,需要对于不同的集合做聚合运算就加上分组
    • select zu,count(*) from student group by zu;
分页(limit)
    - `select * from student limit 10,5;`
    - limit offset(起始位置) count(显示多少个)
    - limit 使用的时候,offset从0开始
    - 豆瓣: offset (当前页-1)* 页显示数
        + count : 页显示数
默认端口(数据库汇总)
  • oracle:1521
  • sqlserver :1433
  • mysql :3306
  • mongodb :27017
  • DB2 : 50000

mysql中间使用

使用步骤
  • 1:导入mysql 中间件 const mysql = require(‘mysql’);
  • 2: 创建连接池 const pool =mysql.createPool()
  • 3: 取出链接 pool.getConnection()
  • 4:操作数据 pool.query()
  • 5:释放链接 release()
  • 6:操作数据库完毕(err/success) 做什么(交给外部处理函数)

mysql中间件操作mysql 数据库方法封装


const pool  = mysql.createPool({
  connectionLimit : 10,// 一次性
  host            : 'localhost',
  user            : 'root',
  port            : '3306',
  password        : '123456',
  database        : 'yanqi'
});
 
var db = {};

db.p = function (sql,parm,callback) {
    // getConnection() 从连接池中获取链接 
    // 回参一:抛出错误
    // 回参二:获取到的链接
    pool.getConnection(function(error,connection){
        if(error){
            callback(error);// 错误异常处理
            return // 获取链接池失败 以下不执行了
        }
     // query()  往数据库发送请求的
     // 参一:sql语句
     // 参二:回调函数:处理数据库的响应
     // 回参一:抛出错误异常(错误优先原则)
     // 回参二:数据库响应的正确结果  
         connection.query(sql,parm,function(error,results){
             console.log(`${sql}===>${parm}`);
             //  --> 释放链接
             connection.release();
            //  ----> 将操作数据库结果发送给外界让外处理
             callback(error,results);// callback 是对查询结果的处理
         })
    })
}
getConnection()
query()

作用:通过连接池去操作去操作数据库

参一: sql 语句 换句话,如果想对数据是增删改查操作,就写对应的sql 语句

参二: 回调函数:sql 语句执行的结果

——> 回参一: 返回的是错误信息

——> 回参二:sql 执行成功 输出的结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值