1. 数据库的基本概念

1.1 什么是数据库

  1. 数据库(DataBase) 就是存储和管理数据的仓库
  2. 其本质是一个文件系统, 还是以文件的方式,将数据保存在电脑上

    1.2 为什么使用数据库

    image.png

    1.3 常见的数据库软件排行榜

    image.png

    2. MySql的安装及配置

    2.1 安装MySql

    MySql_安装文档.docx

    2.2 卸载MySql

    MySql_卸载文档.docx

    2.3 MySql环境变量配置

    Mysql_环境变量配置.docx

    2.4 MySql的启动与关闭

    2.4.1 方式一 : window服务启动 MySQL

    image.png
    image.png
    image.png

    2.4.2 方式二: DOS 命令方式启动

    image.png
    1. net start mysql57 --启动
    2. net stop mysql57 --关闭
    image.png

    2.5 命令行登录数据库

    image.png

    2.6 SqlYog的使用

    image.png

SQLyog安装教程.docx

2.7 MySql的目录结构

image.png
MySql的目录结构.jpgimage.png

  • 几个概念
    • 数据库:文件夹
    • 表:即是文件
    • 数据:文件中的记录

      2.8 数据库管理系统

      1) 什么是数据库管理系统 ?

      数据库管理系统(DataBase Management System,DBMS):指一种操作和管理维护数据库的大
      型软件。MySQL就是一个 数据库管理系统软件, 安装了Mysql的电脑,我们叫它数据库服务器.

2) 数据库管理系统的作用

用于建立、使用和维护数据库,对数据库进行统一的管理。

3)数据库管理系统、数据库 和表之间的关系

MySQL中管理着很多数据库,在实际开发环境中 一个数据库一般对应了一个的应用,数据库当中保
存着多张表,每一张表对应着不同的业务,表中保存着对应业务的数据。

数据库管理系统.jpg

2.9 数据库表

  • 数据库中以表为组织单位存储数据
  • 表类似我们Java中的类, 每个字段都有对应的数据类型

那么我们使用熟悉的Java程序来与关系型数据对比,就会发现以下关系:

  1. ----->
  2. 类中属性 ----> 表中字段
  3. 对象 ---> 数据记录

3. SQL(重点)

3.1 SQL的概念

image.png

  • SQL:操作关系型数据库的语言
  • 方言的概念

3.2 SQL通用语法

1) SQL语句可以单行 或者 多行书写,以分号 结尾 ; (Sqlyog中可以不用写分号)
2) 可以使用空格和缩进来增加语句的可读性。
3) MySql中使用SQL不区分大小写,一般关键字大写,数据库名 表名列名 小写。
4) 注释方式
image.png

  1. # show databases;
  2. -- show databases; 必须加空格
  3. /*
  4. 多行注释
  5. show;
  6. */
  7. -- 查询所有的数据库列表
  8. SHOW DATABASES;

3.3 SQL的分类

image.png
SQL的分类.jpg

3.4 DDL操作 数据库

3.4.1 创建数据库

image.png

3.4.2 查看/选择数据库

image.png

/*
    对数据库操作的分类包括:
    CRUD
    C Create 创建
    R Retrieve 查询
    U update 修改
    D delete 删除
    使用数据库
*/

/*
    创建指定名称的数据库
    latin1 编码
*/
CREATE DATABASE db1;
z
/*
    指定字符集的方式创建数据库
    utf8
*/
CREATE DATABASE db1_1 CHARACTER SET utf8;

/*
    查看数据库
*/
#切换数据库
USE db1_1;

#查询当前正在使用的数据库
SELECT DATABASE();

#查询MySql中有哪些数据库
SHOW DATABASES;

#查看一个数据库的定义信息
SHOW CREATE DATABASE db1_1;

MySql自带数据库的简单介绍.jpg

  • information_schema
    • 信息数据库保存的其他数据库的信息
  • mysql
    • MySql核心数据库,的是用户和权限
  • performance_schema
    • 保存性能相关数据,监控MySql的性能
  • sys:
    • 记录DBA所需的一些信息,更方法的让DBA快速了解数据的运行情况

3.4.3 修改数据库

image.png

3.4.3 删除数据库

image.png

-- 修改数据库的字符集
-- 语法格式: alter database 数据库名 character set utf8
ALTER DATABASE db1 CHARACTER SET utf8;

#查看一个数据库的定义信息
SHOW CREATE DATABASE db1;

-- 删除数据库
-- 语法格式: drop database 数据库名称 将数据库从MySql中永久删除
DROP DATABASE db1_1;  -- 慎用

3.5 DDL操作数据表

3.5.1 MySQL常见的数据类型

image.png
image.png
注意:MySQL中的 char类型与 varchar类型,都对应了 Java中的字符串类型,区别在于:

  • char类型是固定长度的: 根据定义的字符串长度分配足够的空间。
  • varchar类型是可变长度的: 只使用字符串长度所需的空间

比如:保存字符串 “abc”

x char(10) 占用10个字节
y varchar(10) 占用3个字节

适用场景:

  • char类型适合存储 固定长度的字符串,比如 密码 ,性别一类
  • varchar类型适合存储 在一定范围内,有长度变化的字符串

char与varchar类型.jpg

3.5.2 创建表

# 语法格式
CREATE TABLE 表名(
字段名称1 字段类型(长度),
字段名称2 字段类型 注意 最后一列不要加逗号
);

image.png
image.png
image.png

/*
    创建表的语法格式:
    create table 表名(
    字段名称1 字段类型(长度),
    字段名称2 字段类型(长度),
    字段名称3 字段类型(长度) 最后一个字段无需加逗号 
    MySql中常见的数据类型
    int:整型
    double:浮点型
    varchar:字符串类型
    date:日期类型 yyyy-MM-dd
    datetime 日期时间类型 yy-MM-dd HH:mm:ss
    char类型 在MySql中也表示字符串
*/

-- 创建商品分类表
/*
        表名 category
        cid int 分类id
        cname varchar 分类名称
*/

-- 选择要使用的数据库
USE db1;

-- 创建分类表
CREATE TABLE category(
    cid INT,
    cname VARCHAR(20)
);

-- 创建测试表
/*
    表名:Test1
    tid int
    tdate date
*/
CREATE TABLE test1(
    tid INT,
    tdate DATE
);

-- 快速创建一个表结构相同的表(复制表结构)
-- 语法:create table 新表名称 like 旧表名称
CREATE TABLE test2 LIKE test1;

-- 查看表机构
DESCRIBE test2;
DESCRIBE test1;

-- 查看表
-- 查看当前数据库中所有的数据表名
SHOW TABLES;
SHOW CREATE TABLE category;

-- 查看表结构
DESC category;

3.5.3 查看表

image.png

3.5.4 删除表

image.png

/*
    表的删除操作
        语法格式
        drop table 表名;从数据库中永久的删除一张表
        drop table if exsits 表名; 判断表名是否存在,存在则删除。
*/
-- 删除test1表
DROP TABLE test1;

-- 使用先判断再删除的方式
DROP TABLE IF EXISTS test2;

3.5.5 修改表

image.png
image.png
image.png
image.png
image.png
image.png
image.png

/*
    修改表的名称
    修改表的字符集
    修改表中某一列(数据类型 名称 长度)
    向表中添加某一列
    向表中删除某一列
*/

-- 修改表的名称 
-- 语法格式:rename table OldTable to NewTable;
RENAME TABLE category TO category1;

-- 修改表的字符集为gbk 
-- 语法格式:alter table TableName character set 字符集
ALTER TABLE category1 CHARACTER SET gbk;

-- 向表中添加一列
-- 语法格式: alter table 表名 add 字段名称 字段类型(长度)
-- 添加分类描述列:
ALTER TABLE category1 ADD cdesc VARCHAR(20);

-- 修改表中列的类型或者长度
-- 语法格式: alter table 表名 modify 字段名 字段类型(长度)
ALTER TABLE category1 MODIFY cdesc VARCHAR(15);   -- 修改字段长度
ALTER TABLE category1 MODIFY cdesc CHAR(20);    -- 修改字段类型

-- 修改列名称
-- 语法格式: alter table 表名 change 旧列名 新列名 类型(长度)
-- 修改cdesc字段名称改为 description varchar(30)
ALTER TABLE category1 CHANGE cdesc description VARCHAR(30);

-- 删除列
-- 语法格式: alter table 表名 drop 列名
-- 删除description这个列
ALTER TABLE category1 DROP description;

3.6 DML 操作表中数据

SQL中的DML 用于对表中的数据进行增删改操作

3.6.1 插入数据

语法格式:

insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...);

image.png
image.png
注意: 1) 值与字段必须要对应,个数相同&数据类型相同
2)值的数据大小,必须在字段指定的长度范围内
3)varchar char date类型的值必须使用单引号,或者双引号 包裹。
4)如果要插入空值,可以忽略不写,或者插入null
5) 如果插入指定字段的值,必须要上写列名
image.png

3.6.2 更改数据

image.png

3.6.3 删除数据

image.png
image.png

-- 删除所有数据的方式
-- 1. delete from 表; 不推荐, 对表中的数据逐条删除效率低
-- 2. truncate table 推荐采用此种方式.表; 删除整张表,再新建一张空表

3.7 DQL查询表中数据

3.7.1 准备数据

image.png

3.7.2 简单查询

image.png
image.png

3.7.3 条件查询

image.png
image.png
image.png
image.png
image.png
image.png