zoukankan      html  css  js  c++  java
  • MySQL基础


    MySQL基础

    1_数据库的基本概念

    • 用于存储和管理数据的仓库。

    • 数据库的特点:

      1. 持久化存储数据的。其实数据库就是一个文件系统

      2. 方便存储和管理数据

      3. 使用了统一的方式操作数据库 -- SQL

    2_常见的数据库软件介绍

    • 常见的数据库

      关系型数据库

      • MySql

      • SqlServer

      • Oracle

      • DB2

      • SqlLite

        • 非关系型数据库

        • NO SQL

      • MongoDB

      • redis

      • hbase

      • hive

      • oceanbase

    3_MySQL服务启动和关闭

    • 启动/关闭命令

      • 使用管理员身份打开cmd

      • 启动mysql的服务命令

         net start 服务名称

        例如:net start mysql

      • 关闭mysql服务

         net stop 服务名称

        例如:net stop mysql

    4_MySQL登录和退出

    • 登录命令

      • 密码名文

        mysql -u用户名 -p密码
      • 密码密文

        mysql -u用户名 -p
      • 指定主机

        mysql -hip地址 -u用户名 -p
      • 全写方式

        mysql --host=ip地址 --user=用户名 --password=密码
    • 退出命令(两个命令)

      mysql> exit;
       mysql> quit;

    5_MySQL目录结构

    • 查看配置文件 my.ini

    • 安装目录

      例如:basedir="D:/develop/MySQL/"

    • 数据目录

      例如:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"

    • 数据库管理系统和数据库

      • 数据库管理系统软件管理多个数据库

      • 数据库中会包含多张表

      • 表中存储具体的数据

    • 一个数据库管理软件--管理多个数据库---一个数据库会有多张表---一张表会有多条记录----一条记录会有多个列

    进入SQL

    6_SQL基本概念

    • 什么是SQL?

      • Structured Query Language:结构化查询语言

      • 其实就是定义了操作所有关系型数据库的规则。

        • 但是,每一种数据库操作的方式存在不一样的地方,称为“方言”。

    7_SQL通用语法

    • 通用语法

      • SQL语句可以以单行或者多行进行书写,以分号(;)进行结尾.

      • 可以使用空格和缩进来提高SQL语句的可读性.

      • MYSQL数据库的SQL语句不分区大小写,但是关键字推荐使用大写来书写.

      • 3种注释

        • #查询当前系统中的所有数据库(单行注释)

        • -- 查询当前系统中的所有数据库(单行注释)(-- 后面必须空格)

        • /*查询当前系统中的所有数据库(多行注释)*/

    • 示例代码

      SHOW DATABASES; #查询数据库
       SHOW DATABASES; -- 查询数据库
       SHOW DATABASES; /*查询数据库*/

    8_SQL分类

    • DDL(Data Definition Language)数据定义语言 用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等

    • DML(Data Manipulation Language)数据操作语言 用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等

    • DQL(Data Query Language)数据查询语言 用来查询数据库中表的记录(数据)。关键字:select, where 等

    • DCL(Data Control Language)数据控制语言(了解) 用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等

    9_DDL操作数据库-创建&查询

    • CRUD的概念
      • C -> CREATE:创建

      • R -> RETRIEVE:查询

      • U -> UPDATE:修改

      • D -> DELETE:删除

    • 查询数据库

      • 查询所有数据库名称

         mysql> SHOW DATABASES;
      • 查询某个数据库的字符集:查询某个数据库的创建语句

         mysql> SHOW CREATE DATABASE 数据库名称;
    • 创建数据库

      • 创建数据库

         mysql> CREATE DATABASE 数据库名称;
      • 创建数据库,判断不存在,再创建

        mysql> CREATE DATABASE IF NOT EXISTS 数据库名称;
      • 创建数据库,并指定字符集

        mysql> CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET 字符集名;

    10_DDL操作数据库-修改&删除&使用

    • 修改数据库

      • 修改数据库的字符集

        mysql> ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
    • 删除数据库(危险操作)

      • 删除数据库

        mysql> DROP DATABASE 数据库名称;
      • 判断数据库存在,存在再删除

        mysql> DROP DATABASE IF EXISTS 数据库名称;
    • 使用数据库

      • 查询当前正在使用的数据库名称

        mysql> SELECT DATABASE();
      • 使用数据库

        mysql> USE 数据库名称;

    11_DDL操作表_查询

    • 查询某个数据库中所有的表名称

      mysql> SHOW TABLES;
    • 查询表结构

       mysql> DESC 表名;

    12_DDL操作表_创建

    • 创建表

       mysql> CREATE TABLE 表名(
        列名称 数据类型,
        列名称 数据类型,
        列名称 数据类型
        );

      注意:最后一列不需要逗号

    • MySql数据类型

      类型MySql说明
      整数类型 int  
      小数类型 double double(总长度,小数位长度)
      日期类型 date 表示日期(只包含年月日) yyyy-MM-DD
      日期时间类型 datetime 表示日期(包含年月日时分秒) yyyy-MM-dd HH:mm:ss
      时间戳 timestamp 时间戳类型(包含年月日时分秒) yyyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或者赋值为null,则默认使用当前的系统时间来自动赋值.
      字符串类型 varchar varchar(20) 存储最大字符数为20
    • 创建表示例

      • 创建数据表student

        int的id,varchar类型的name(最长20位),int类型的age,double类型的分数(最长4位,小数点后保留1位)

        date类型的birthday,timestamp类型的insert_time.

         mysql> USE 数据库;
         CREATE TABLE student (
          id INT, -- 编号
          name VARCHAR(32),
          age INT,
          score DOUBLE(4,1),
          birthday DATE,
          insert_time TIMESTAMP
         );

    13_DDL操作表_删除

    • 复制表

       mysql> CREATE TABLE 新表名 LIKE 被复制的表名;
    • 删除表

       mysql> DROP TABLE 表名
    • 判断表存在,存在则删除

       mysql> DROP TABLE IF EXISTS 表名;

    14_DDL操作表_修改

    • 修改表名称

      mysql> ALTER TABLE 原表名 RENAME TO 新表名;
    • 修改表字符集

      mysql> SHOW CREATE TABLE 表名; -- 查看表的字符集
       mysql> ALTER TABLE 表名 CHARACTER SET 字符集名称;
    • 修改表的列

      • 添加列

        mysql> ALTER TABLE 表名 ADD 列名 数据类型;
      • 修改列

        • 修改列的名称和数据类型

          mysql> ALTER TABLE 表名 CHANGE 修改前的列名 修改后的列名 修改后的数据类型;
        • 修改列的数据类型

          mysql> ALTER TABLE 表名 MODIFY 列名 修改后的数据类型;
      • 删除列

        mysql> ALTER TABLE 表名 DROP 列名; 

    15_DML_添加数据

    • DML:增删改表中的数据

    • 表中添加数据

      • 语法

         INSERT INTO 表名(列名1,列名2,列名3,...列名n) values (值1,值2,值3...值n);
      • 注意

        1. 列名和值要一一对应。

        2. 如果表名后,不定义列名,则默认给所有列添加值(简化书写)

           INSERT INTO 表名 values(值1,值2,...值n);
        3. 除了数字类型,其他类型需要使用引号(单双都可以)引起来

    16_DML_删除数据

    • 条件删除表中数据

      • 语法

         DELETE FROM 表名 WHERE [条件];
      • 注意

        • 如果不加条件,则删除表中所有记录。

           DELETE FROM 表名;
    • 删除表中所有数据

      • 语法

         TRUNCATE TABLE 表名;

        如果真的要将表中的数据全部删除,使用DELETE效率比较低,使用TRUNCATE语句会将表删除然后再创建一张空表,效率更高.

    17_DML_修改数据

    • 修改表中数据

      • 语法

         UPDATE 表名 SET 列名1 = 值1,列名2 = 值2,列名n = 值n WHERE [条件]
      • 注意事项 如果不添加判断条件,则会修改本表中的所有数据.

  • 相关阅读:
    第二次,营造完整的人生(上)
    御风者(二)——狼王
    我的个人博客
    FTP 协议解析
    关于 Wireshark3 中 GeoIP 的问题
    CentOS8 NextCloud 私有云存储搭建
    Windows10 临时将线程绑定至指定CPU的方法
    CentOS8 yum/dnf 配置国内源(临时)
    Cknife流量分析
    samba + OPENldap 搭建文件共享服务器
  • 原文地址:https://www.cnblogs.com/aaaazzzz/p/12895400.html
Copyright © 2011-2022 走看看