JyLie

vuePress-theme-reco JyLie    2017 - 2023
JyLie

Choose mode

  • dark
  • auto
  • light
主页
分类
  • API
  • HTML
  • css
  • vue
  • Linux
  • Docker
  • Webpack
  • WebGL
  • PixiJS
  • Github
  • BOM
  • XML
  • bug
  • ie
  • uniapp
  • IE
  • mysql
  • font
  • bom
  • canvas
  • video
  • html
  • JavaScript
  • js
  • 运算符
  • RegExp
  • 编码
  • MiniApp
  • nginx
  • Tool
  • node.js
  • cat
  • nodejs
  • protocol
  • URL
  • FLOW
  • DNS
  • Protocol
  • python
  • 安全
  • linux
  • shell
  • IDE
  • Packer
  • ViteJS
  • git
  • vendor
  • WebApp
  • WebView
  • Window API
  • webview
  • 规范
标签
时光轴
GitHub
author-avatar

JyLie

74

Article

79

Tag

主页
分类
  • API
  • HTML
  • css
  • vue
  • Linux
  • Docker
  • Webpack
  • WebGL
  • PixiJS
  • Github
  • BOM
  • XML
  • bug
  • ie
  • uniapp
  • IE
  • mysql
  • font
  • bom
  • canvas
  • video
  • html
  • JavaScript
  • js
  • 运算符
  • RegExp
  • 编码
  • MiniApp
  • nginx
  • Tool
  • node.js
  • cat
  • nodejs
  • protocol
  • URL
  • FLOW
  • DNS
  • Protocol
  • python
  • 安全
  • linux
  • shell
  • IDE
  • Packer
  • ViteJS
  • git
  • vendor
  • WebApp
  • WebView
  • Window API
  • webview
  • 规范
标签
时光轴
GitHub
  • mysql实践手册

    • 索引概述
      • 安装:
        • 客户端操作
          • 连接
          • 修改密码
          • 退出
        • 创建库:
          • 按照编码创建数据库
            • utf-8
            • gbk
          • CURD
            • 查看数据库:
            • 打开数据库
            • 查看表
            • 查看表结构
            • 插入语句 INTERT(VALUES、SET)

        mysql实践手册

        vuePress-theme-reco JyLie    2017 - 2023

        mysql实践手册


        JyLie 2021-07-01 mysql

        持续更新...

        # 事前陈述

        -----关系数据库管理系统(MySQL Oracle SQL DB2)

        所有关系数据管理系统都使用结构化查询语言(SQL--Structured Query Language)

        数据库:像是一个相关文件的集合(通俗理解)

        行----单独实体的数据--------------------记录 列----与该记录相关的数据------属性------字段

        # 索引概述

        # 安装:

        • 下载 - http://dev.mysql.com/downloads/mysql/
        • 安装 - windows:
          • http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html
        • linux:
          • yum install mysql-server
        • mac:
          • 一直点下一步

        # 客户端操作

        # 连接

        • mysql 管理人默认为 root,没有设置密码则直接登录
          • mysql -h [hostname] -u root -p 不用输入密码按回车自动进入
          • mysq -h [hostname] -u [usename] -p password [new_database_password]

        如果初始化没设置密码,现在想设置 mysql 密码:mysqladmin -u root password [new_database_password]

        # 修改密码

        • 方法 1: 用 SET PASSWORD 命令
        首先登录 MySQL。
        格式:mysql> set password for 用户名@localhost = password(‘新密码’);
        例子:mysql> set password for root@localhost = password(‘123’);
        
        1
        2
        3
        • 方法 2:用 mysqladmin
        格式:mysqladmin -u [username] -p [old_database_password] password [new_database_password]
        例子:mysqladmin -uroot -proot password 123456
        
        1
        2
        • 方法 3:用 UPDATE 直接编辑 user 表
        首先登录 MySQL。
        mysql> use mysql;
        mysql> update user set password=password([new_database_password]) where user='root' and host='localhost';
        mysql> flush privileges;
        
        1
        2
        3
        4

        根据修改密码的方法,在忘记 root 密码的时候可以以下操作:

        以 windows 为例:
        
        关闭正在运行的 MySQL 服务。
        
        打开 DOS 窗口,转到 mysql\bin 目录。
        
        输入 mysqld --skip-grant-tables 回车。–skip-grant-tables 的意思是启动 MySQL 服务的时候跳过权限表认证。
        
        再开一个 DOS 窗口(因为刚才那个 DOS 窗口已经不能动了),转到 mysql\bin 目录。
        
        输入 mysql 回车,如果成功,将出现 MySQL 提示符 >
        
        连接权限数据库: use mysql;
        
        改密码:update user set password=password([new_database_password]) where user=[username];(别忘了最后加分号)
        
        刷新权限(必须步骤):flush privileges; 
        
        退出 quit。
        
        注销系统,再进入,使用用户名 root 和刚才设置的新密码 [new_database_password] 登录。
        
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21

        # 退出

        QUIT 或 EXIT 或按 Ctrl+D

        # 创建库:

        CREATE DATABASE [database_name];
        
        1

        # 按照编码创建数据库

        # utf-8

        CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

        # gbk

        CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

        登录 mysql 之后创建新用户 root1 SET PASSWORD=PASSWORD('root'); GRANT ALL ON firstdb.* to root1@localhost INDENTIFED BY 'root';

        # CURD

        # 查看数据库:

        SHOW DATABASES;
        
        1

        # 打开数据库

        USE [database_name];
        
        1

        注:每次使用数据库必须打开相应数据库

        # 查看表

        SHOW TABLES;
        
        1

        # 查看表结构

        DESCRIBE [table_name];
        
        1

        # 插入语句 INTERT(VALUES、SET)

        INSERT INTO sales_rep(employee_number,surname,first_name,commission)VALUES(1,'Mik','Sol',12);
        
        INSERT INTO sales_rep VALUES(1,'Mik','Sol',12);
        
        INSERT INTO sales_rep (employee_number,surname,first_name,commission) VALUES(1,'Mik','Sol',12),(12,'Mik2','Sol2',11),(13,'Mik3','Sol3',13);
        
        INSERT sales_rep SET user='Stephen',password='123456'
        
        1
        2
        3
        4
        5
        6
        7

        大量插入数据(LOAD DATA): LOAD DATA INFILE 'sales_rep.sql' INTO TABLE 'sales_rep'; ---->文本中每条记录占一行

        数据处理语言的四个标准语句(DML 语句:增删改查)

        检索信息:(注意优先等级,OR \AND 适当用到括号):``` SELECT * FROM sales_rep WHERE surname='Rive' AND first_name='Sol' OR commission>10;

        SELECT * FROM sales_rep WHERE surname='Rive' AND (first_name='Sol' OR commission>10);

        模糊查询:模式匹配(LIKE 和%)```
        SELECT \* FROM sales_rep WHERE surname LIKE 'Ser%';
        
        SELECT \* FROM sales_rep WHRER surname LIKE '%e\$';
        
        1
        2
        3
        4

        分类(ORDER BY)

        SELECT \* FROM sales_rep ORDER BY commission DESC,surname ASC, first_name ASC;
        
        
        1
        2

        限制结果的数量(LIMIT 后面两个数(LIMIT 【偏移量】 【 行数】))

        
        SELECT first_name,surname,commission FROM sales_rep ORDER BY DESC LIMIT 1,1;
        
        
        1
        2
        3

        mysql 常用函数:

        • MAX(字段)------返回字段最大值 SELECT MAX(commission) FROM sales_rep;
        • AVG(字段)------返回字段平均数 SELECT AVG(commission) FROM sales_rep;
        • MIN(字段)------返回字段最小值 SELECT MIN(commission) FROM sales_rep;
        • SUM(字段)------返回字段 总和 SELECT SUM(commission) FROM sales_rep;

        允许在查询中执行计算----select 1+1--------结果为 2,也可以这样使用

        SELECT surname,first_name,commission+1 FROM sales_rep;
        
        1

        删除记录

        DELETE FROM sales_rep WHERE employee_numbber='5';
        
        
        1
        2

        更新记录

        UPDATA sales_rep SET commission=12 WHRER employee_numbber=1;
        
        1

        数据结构的处理语句(DDL【Data Definition Languages】:CREATE\DROP\ALTER\) 创建(CREATE) 创建表CREATE TABLE commission(id INT); 创建数据库CREATE DATABASE abortlived;

        删除(DROP) 删除表``` DROP TABLE commission;

        删除数据库```
        DROP DATABASE abortlived;
        
        1
        2

        改变表结构(字段---AlTER) 添加列(关键字--ADD)

        ALTER TABLE sales_rep ADD data_joined DATE; ----DATA 是一个列类型,格式(YYYY-MM-DD)
        
        ALTER TABLE sales_rep ADD year_born YEAR; -----YEAR
        
        
        1
        2
        3
        4

        1、修改字段名和字段的定义(关键字--CHANGE)

        ALTER TABLE sales_rep CHANGE year_born birthday DATA NOT NULL;
        
        
        1
        2

        2、修改字段的定义(关键字--MODIFY)

        AlTER TABLE `jy_blog_articles` MODIFY `views` bigint(20) NOT NULL DEFAULT 0 COMMENT '文章浏览量',MODIFY `stat` int(2) NOT NULL DEFAULT 1 COMMENT '文章状态。0:删除;1:发布状态;2:审核状态';
        
        
        1
        2

        为表重新命名``` ALTER TABLE user1 RENAME user2; RENAME TABLE user1 TO user2;

        
        ```
        
        ```
        
        ```
        
        ```
        
        1
        2
        3
        4
        5
        6
        7
        8