0%

数据库基础笔记

数据库的基本概念

DataBase:数据库,用于存储和管理数据的仓库。

数据库的特点:

  1. 持久化存储数据的。数据库就是一个文件系统。
  2. 方便存储的管理数据。
  3. 使用了统一的方式来操作数据库——SQL。

常用的数据库软件:

  1. Oracle 收费

  2. MySQL

  3. Microsoft SQL Server 收费

  4. DB2

MySQL数据库软件

安装

卸载

  1. 卸载。
  2. 删除C:/ProgramData文件夹下的MySQL文件夹。

配置

服务:没有界面的应用程序。

开启和停止的两种方法:

  1. 在命令提示符中使用services.msc命令查看服务,选择开启或者停止MySQL服务。
  2. 以管理员运行命令提示符,使用net start mysql55开启服务,或使用net stop mysql55停止MySQL服务。

MySQL登陆:mysql -uroot -p

远程登陆:mysql -h连接目标ip -uroot -p连接目标密码 mysql --host=ip --user=root --password=连接目标的密码

MySQL退出:exit quit

MySQL目录结构:

  1. MySQL安装目录
    • bin:二进制的可执行文件
    • data:日志文件,数据文件
    • include:c语言的头文件
    • lib:jar包
    • share:错误信息
  2. MYSQL数据目录:C:/ProgramData/MySQL、
    • 数据库:文件夹
    • 表:文件
    • 数据

SQL

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

定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为”方言“

SQL通用语法

  • SQL 语句可以单行或多行书写,以分号结尾。
  • 可使用空格和缩进来增强语句的可读性。
  • MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
  • 3种注释:
    • 单行注释:– 注释内容 或 #注释内容(MySQL特有)
    • 多行注释:/* 注释内容 */

SQL分类

  1. DDL(Data Definition Language)数据定义语言

    ​ 用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter 等。

  2. DML(Data Manipulation Language)数据操作语言

    ​ 用来对数据库种表的数据进行增删改。关键字:insert,delete,update 等。

  3. DQL(Data Query Language)数据查询语言

    ​ 用来查询数据库中表的记录(数据)。关键字:select,where 等。

  4. DCL(Data Control Language)数据控制语言

    ​ 授权。

DDL:操作数据库、表

  1. 操作数据库:CRUD

    • C(Create):创建
      • CREATE DATABASE 数据库名称;:创建数据库。
      • CREATE DATABASE 数据库名称 CHARACTER SET GBK;:创建指定字符集的数据库。(gbk)。
      • CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET GBK;:判断数据库是否存在后创建指定字符集的数据库。
    • R(Retrieve):查询
      • SHOW DATABASES;:查询所有数据库的名称。
      • SHOW CREATE DATABASE 数据库名称;:查看某个数据库的字符集,查询某个数据库的创建语句。
    • U(Update):修改
      • ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;:修改数据库的字符集。
    • D(Delete):删除
      • DROP DATABASE 数据库名称;
      • DROP DATABASE IF EXISTS 数据库名称;
    • 使用数据库:
      • SELECT DATABASE();:查询当前正在使用的数据库名称。
      • USE 数据库名称:使用(进入)到数据库中。
  2. 操作表

    1. C(Create):创建

      • 语法:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        CREATE TABLE 表名(
        列名1 数据类型1
        列名2 数据类型2
        age int,
        score double(5,2), -- 999.99
        name varchar(20), -- 字符串长度最大20个字符
        ...
        列名n 数据类型n
        )

        CREATE TABLE STUDENT(
        ID INT,
        NAME VARCHAR(32),
        AGE INT,
        ACORE DOUBLE(4,1),
        BIRTHDAY DATE,
        INSERT_TIME TIMESTAMP
        );
      • 数据库类型:

        • int:整数类型。
        • double:小数类型。
        • date:日期,只包含年月日,yyyy-MM-dd。
        • datetime:日期,包含年月日时分秒,yyyy-MM-dd HH:mm:ss。
        • timestamp:时间戳类型。包含年月日时分秒,yyyy-MM-dd HH:mm:ss。如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值。
        • varchar:字符串
      • CREATE TABLE 表名1 LIKE 表名2;:创建一个和表2一样的表1。

    2. R(Retrieve):查询

      • SHOW TABLES;:查询某个数据库中所有表的名称。
      • DESC 表名;:查询表结构。
    3. U(Update):修改

      • ALTER TABLE 表名 RENAME TO 新表名;:修改表名。

      • ALTER TABLE 表名 CHARACTER SET 字符集名称;:修改表的字符集。

      • ALTER TABLE 表名 ADD 列名;:添加列。

      • ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

        ALTER TABLE 表名 MODIFY 列名 新数据类型;:修改列名称/类型。

      • ALTER TABLE 表名 DROP 列名;:删除列。

    4. D(Delete):删除

      • DROP TABLE 表名;
      • DROP TABLE IF EXISTS 表名;
      • TRUNCATE TABLE 表名:删除表,然后创建一张相同的空表。

DML:增删改表中的数据

  • 添加数据:

    INSERT INTO 表名(列名1,列名2, ... ,列名n) VALUES(值1,'Mike', ... ,'1999-1-1');

    注意:

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

    2. 如果表名后,不定义列名,则默认给所有列添加值。

      INSERT INTO 表名 VALUES(值1,值2, ... ,值n);

    3. 除了数字类型,其他类型需要用引号引起来,单双都可。

  • 删除数据

    DELETE FROM 表名 [WHERE 条件];

    注意:

    1. 如果不加条件,会把表中的所有记录都删除掉。

    2. 如果要删除所有记录

      DELETE FROM 表名; – 不推荐使用。效率低。

      TRUNCATE TABLE 表名; – 推荐使用,效率更高。删除表,然后创建一张相同的空表。

  • 修改数据

    UPDATE 表名 SET 列名1=值1, 列名2=值2, ... [WHERE 条件];

    注意:

    1. 如果不加任何条件,将会把表中的所有数据都进行修改。

DQL:查询表中的记录

  • SELECT * FROM 表名:查询表中的所有记录。