• 数据库MySQL


    1. 数据库的相关概念

    • 什么是数据库

      • 存储数据的仓库

      • 使用数据库管理数据的好处

        • 方便存储、查询、修改、删除
      • 关系型数据库

         - MySQL
         - Sql Server
         - Orcale
         - SQLite
        
    • 数据表

      • 二维的表,类似于Excel表
      • 由行和列组成,列:字段,行:记录
      • 字段的类型
        • int 整数、double 浮点数、varchar(255) 字符串、text 文本、datetime 日期、float 浮点数
    • MySQL的服务器

    • MySQL的客户端

      • 使用navicat创建数据库
      • 使用navicat创建表,添加数据

      • 使用SQL语句操作数据

        • 插入数据 INSERT INTO users (uname,upwd,uqq) values('zs','123',"12345")

        • 修改数据 UPDATE users SET uname='zsxxx' WHERE uid=1

        • 删除数据 DELETE FROM users WHERE uid = 1

        • 查询数据 SELECT * FROM users

          SELECT * FROM users WHERE uname='zs' AND uname='000000'

          SELECT * FROM users WHERE uname='zs' OR uname='ls'

          SELECT * FROM users WHERE uname in ('zs','ls')

          SELECT * FROM users WHERE uname like '%s%'

          SELECT * FROM users WHERE uage > 18 ORDER by desc

          SELECT * FROM users ORDER BY DESC

          SELECT * FROM users LIMIT 3 //取前3条数据

          SELECT * FROM users ORDER BY DESC LIMIT 3

        • 分页 //跳过3条,取2条 SELECT * FROM users ORDER BY DESC LIMIT 3,2

          SELECT COUNT(*) FROM users

    2. Node.js中操作MySQL

    • 使用mysql操作

      • 安装 npm install mysql
      • 使用

          //设置数据库参数
          var connection = mysql.createConnection({
              host     : 'localhost',
              user     : 'root',
              password : '',
              database : 'musicsys'
          });
          //创建连接
          connection.connect();
        
          //增加一条数据
          let data = {uname: "hahaha", upwd: "xxxx", uqq: "11111", uage: 18, create: Date.now()};
          connection.query("insert into users set ?", data, (err, result) => {
              console.log(result);
          });
        
          //查询数据
          connection.query("select * from users", (err, rows, fields) => {
              console.log(rows);
          });
        
          //关闭连接
          connection.end();
        
    • 查询数据表users的所有数据
    //步骤一: 在服务器启动的时候连接数据库
    app.use(orm.express("mysql://root:@localhost:3306/musicSys",{
        define: (db, models, next) => {
            models.users = db.define("users",{
                uid:{type:"serial", key:true},
                uname: String,
                upwd: String,
                uqq: String,
                uage: Number
            });
            next();
        }
    }));
    
    
    //步骤二:当请求到达后查询数据库
    app.get("/", (req, res)=>{
        let where = {};
        req.models.users.find(where, (err, data)=>{
            //data是对象
            res.send(data);
        });
    });
    
    • 条件查询
      1. 查询所有数据
      2. 查询id=3的用户 方式1
      3. 查询id=3的用户 方式2
      4. 条件查询 uname=zs && uage=100
      5. 条件查询 uid=4 || uage=5
      6. 模糊查询 uanme like '%f%'
      7. 大于 uage > 18
      8. 排序 A -- asc升序 Z -- desc 降序
      9. 取最前面的两条数据 limit
      10. 分页的基础 limit 4, 2
      11. 分页
      12. 获取总共有多少条数据,第一个参数是条件
      13. 获取对应的数据表 的数据
        //1 查询所有数据
        //req.models.user.find({}, (err, users) => {
        //    res.send(users);
        //});
    
        //获取url参数
        //let id = req.query.id;
    
    
        //2 查询id=3的用户  方式1
        //req.models.user.get(id, (err, user) => {
        //    //console.log(err);
        //    res.send(user);
        //});
    
    
        //3 查询id=3的用户  方式2   find 返回的是数组
        //req.models.user.find({uid: id}, (err, users) => {
        //    console.log(id);
        //    console.log(err);
        //    res.send(users);
        //});
    
        //4 条件查询  uname=zs && uage=100
        //let where = { uname : "zs", uage : 100 };
        //req.models.user.find(where, (err, users) => {
        //    res.send(users);
        //});
    
        //5 条件查询  uid=4 || uage=5
        //let where = {uid: [4, 5]};
        //req.models.user.find(where, (err, users) => {
        //    res.send(users);
        //});
    
        //6 模糊查询  uanme like '%f%'
        //let where = {uname: orm.like('%f%') };
        //req.models.user.find(where, (err, users) => {
        //    res.send(users);
        //});
    
    
        //7 大于  uage > 18
        //let where = {uage: orm.gt(18)};
        //req.models.user.find(where, (err, users) => {
        //    res.send(users);
        //});
    
    
        //8 排序  A  -- asc升序   Z -- desc 降序
        //req.models.user.find({}, ["uid", "Z"], (err, users) => {
        //    res.send(users);
        //});
    
    
        //9 取最前面的两条数据 limit
        //req.models.user.find({}, {limit: 2}, ["uid", "Z"], (err, users) => {
        //    res.send(users);
        //});
    
    
        //10 分页的基础 limit 4, 2   offset: 2 跳过2条   limit: 2 取几条
        //req.models.user.find({}, {offset: 4, limit: 2}, ["uid", "Z"], (err, users) => {
        //    res.send(users);
        //});
    
    
        //11 分页  pageIndex = 0; 页码   pageCount = 2  页容量
        //
        //let pageIndex = 1; //页码
        //let pageCount = 2; //页容量
        //req.models.user.find({}, {offset: (pageIndex - 1) * pageCount, limit: pageCount}, ["uid", "Z"], (err, users) => {
        //    res.send(users);
        //});
    
    
        //12 获取总共有多少条数据,第一个参数是条件
        //req.models.user.count({}, (err, count) => {
        //    res.send({count: count});
        //});
    
        //13 获取对应的数据表 的数据
        //req.models.user.exists({}, (err, exists) => {
        //    res.send({exists: exists});
        //});
    
    • 增删改
    //增加一条数据
        //req.models.users.create({
        //    uname:"xxx",
        //    upwd:"0000",
        //    uqq:"9999",
        //    uage:30
        //},(err,user)=>{
        //    console.log("创建成功");
        //    console.log("user");
        //
        //    res.end(JSON.stringify(user));
        //});
    
    
    
        //修改一条数据
        //根据主键获取一条数据
        //req.models.users.get(3,(err,user)=>{
        //    user.upwd = "woxxxxx";
        //    //保存
        //    user.save();
        //})
    
    
        //修改数据2
        //req.models.users.find({uname:"zs"},(err,users)=>{
        //    //users是数组
        //    users[0].uage = 100;
        //    users[0].save();
        //})
    
    
        //删除
        //req.models.users.get(5,(err,user)=>{
        //    user.remove((err)=>{
        //        //item当前删除的数据
        //        res.end("删除成功");
        //    })
        //})
    
    • 执行sql语句
    app.get("/", (req, res)=>{
        req.db.driver.execQuery("select * from users",(err, data)=>{
            res.end(JSON.stringify(data));
        });
    })
  • 相关阅读:
    python命令行工具模块-click
    python项目代码打包成Docker镜像
    背包九讲
    秒杀项目的3个奇数问题:并发队列的选择,请求接口的合理设计,高并发下的数据安全
    java类加载过程
    索引失效
    java面试
    进程间通信
    HashMap在Jdk1.7和1.8中的实现
    十大排序算法
  • 原文地址:https://www.cnblogs.com/bici/p/6044217.html
Copyright © 2020-2023  润新知