MYSQL

mysql

mysql的安裝

  1. 優(yōu)勢(shì): 企業(yè)常用(專人維護(hù)), 社區(qū)常用(方便查錯(cuò))
    1. web server中最流行的關(guān)系型數(shù)據(jù)庫(kù)
    2. 官網(wǎng)免費(fèi)下載, https://dev.mysql.com/downloads/mysql/
    3. 輕量級(jí), 易學(xué)易用
  2. 安裝: 下載安裝, 注意記得root用戶名, 數(shù)據(jù)庫(kù)密碼

mysql workbench 的安裝

  1. mysql workbench

    1. 操作mysql客戶端, 可視化操作
    2. 下載官網(wǎng): https://dev.mysql.com/downloads/workbench/
  2. workbench的連接


    workbench-init.png
  1. workbench的語(yǔ)句查詢


    sql語(yǔ)句的執(zhí)行.png

SQL的增刪改查

建庫(kù)

  1. sql語(yǔ)句建庫(kù): CREATE SCHEMA myblog ;

  2. workbench建庫(kù)(上下都可)


    create-sql.png

建表

  1. 基本表結(jié)構(gòu)


    表結(jié)構(gòu).png
  1. 成功建表(sql語(yǔ)法可建, 但是比較麻煩)


    成功建表.png
  1. 表結(jié)構(gòu)的刪除和編輯


    edit-table.png

表操作

  1. SQL語(yǔ)法執(zhí)行:

    新增表數(shù)據(jù).png
  1. 表數(shù)據(jù)的增刪改查

    1. 增(id的自增不會(huì)考慮你刪除的, 就只是一直增)

          -- 給某個(gè)表新增數(shù)據(jù)
          insert into users(username, `password`, realname) value('zhangshan', '123', '張三');
      

    2. 一般不會(huì)真的刪除, 只是多加字段state, 1代表存在, 0代表不存在

          -- 清除所有的表
          delete from users;
          -- 清除某條數(shù)據(jù)
          delete from users where username='zhangshan';
      

    3. 軟刪除, 只是更新?tīng)顟B(tài)

          -- 把所有數(shù)據(jù)realname都改成',lisi'
          update users set realname='lisi';
          -- 更新某條數(shù)據(jù)(可能會(huì)報(bào)錯(cuò), 解決在5)
          update users set realname='lisi' where username='lisi';
      
    4.     -- 展示數(shù)據(jù)庫(kù)的所有表
          show tables;
          -- 查詢表中所有列, 慎用*
          select * from users;
          -- 查詢列中某些列
          select id, username from users;
          -- 查詢某條數(shù)據(jù)(交集)
          select * from users where username='zhangshan' and `password`='123';
          -- 查詢并集
          select * from users where username='zhangshan' or `password`='123';
          -- 模糊查詢
          select * from users where username like '%zhang%'
          -- 模糊查詢,并排序(默認(rèn)正序從小到大)
          select * from users where `password` like '%1%' order by id;
          -- 模糊查詢,并排序(倒序)
          select * from users where `password` like '%1%' order by id desc;
          -- 不等于<>
          select * from users where state <> '0';
      
    5. 其他sql語(yǔ)句

          -- 執(zhí)行一次, 更換換模式, 否則刪除和修改會(huì)報(bào)錯(cuò)
          SET SQL_SAFE_UPDATES=0;
          -- 查詢mysql版本, 當(dāng)前版本 >= 5時(shí), VARCHAR(10)時(shí), 不論中文英文都是10個(gè)字符
          select version();
          -- 1=1 的用法是在搜索時(shí), 保證哪怕沒(méi)有其他搜索詞, where也不會(huì)報(bào)錯(cuò)
          select * from blogs where 1=1
      

Nodejs操作MySql

  1. 封裝成工具包, 調(diào)用api可直接操作數(shù)據(jù)庫(kù)

  2. 安裝插件: npm i mysql -S

  3. 報(bào)錯(cuò)

        // 執(zhí)行mysql語(yǔ)句時(shí), 原因是沒(méi)有配置數(shù)據(jù)庫(kù)初始密碼
        {
            sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
            sqlState: '08004',
        }
    
        use '你的數(shù)據(jù)庫(kù)';
        -- 解決方案
        ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的Mysql密碼';
        SELECT plugin FROM mysql.user WHERE User = 'root';
        FLUSH PRIVILEGES;
    

Demo

```js
    // 引包
    const mysql = require('mysql');
    // 數(shù)據(jù)庫(kù)的連接信息, 通常單獨(dú)抽出配置
    const MYSQL_CONF = {
        host: 'localhost',
        user: 'root',
        password: '數(shù)據(jù)庫(kù)密碼',
        port: '3306',
        database: 'myblog'
    }
    // 創(chuàng)建mysql 對(duì)象
    const con = mysql.createConnection(MYSQL_CONF)

    // 開(kāi)始連接
    con.connect();
    // 執(zhí)行sql語(yǔ)句
    // 返回json字符串
    // const sql = "select * from users;";
    // const sql = "select id, username from users;";
    // 返回對(duì)象, 看受影響的行數(shù), changedRows: 1
    // const sql = "update users set realname='李四2' where id='3'";
    // 返回對(duì)象, 看插入的id, insertId: 4,
    const sql = "insert into users (username, password, realname) value('wangwu', '123', '王五');"
    con.query(sql, (err, result) => {
    if (err) {
        console.error(err);
        return
    }
    console.log(result);
    })
    // 關(guān)閉連接
    con.end();
```
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • MySQL語(yǔ)句大全(超詳細(xì)) 1、說(shuō)明:創(chuàng)建數(shù)據(jù)庫(kù) CREATE DATABASE database-name 2...
    Ncompass閱讀 333評(píng)論 0 1
  • 1. 了解SQL 1.1 數(shù)據(jù)庫(kù)基礎(chǔ) ? 學(xué)習(xí)到目前這個(gè)階段,我們就需要以某種方式與數(shù)據(jù)庫(kù)打交道。在深入學(xué)習(xí)MyS...
    鋒享前端閱讀 1,320評(píng)論 0 1
  • 手動(dòng)不易,轉(zhuǎn)發(fā)請(qǐng)注明出處 --Trance 數(shù)據(jù)庫(kù)系統(tǒng)命令: (1).查看存儲(chǔ)過(guò)程狀態(tài):show pro...
    Trance_b54c閱讀 1,828評(píng)論 0 8
  • information_schema SQL基礎(chǔ) 1.1 什么是sql? SQL(structured query...
    崔渣渣閱讀 1,164評(píng)論 0 0
  • 第一步 將打算使用Toolbar的Activity繼承AppCompatActivity。為什么要讓Activit...
    吃葡萄皮不吐葡萄閱讀 1,264評(píng)論 0 3

友情鏈接更多精彩內(nèi)容