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 [条件]
    • 注意事项 如果不添加判断条件,则会修改本表中的所有数据.

 

posted @ 2020-05-15 15:51  小辣椒樱桃  阅读(113)  评论(0编辑  收藏  举报