• 数据库
    • DataBase,是存储和管理数据的仓库
  • 数据库管理系统
    • DataBase Management System(DBMS),操纵和管理数据库的大型软件
  • SQL
    • Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系数据库统一标准

1.MySQL概述

1.1、安装、配置

【配置】

  1. 添加环境变量——与Java一致

    • 验证是否成功,cmd—mysql

image-20230810223228989.png

  1. 初始化MySQL(管理员身份运行)

    cmd:   mysqld --initialize-insecure
    

    解压后的目录下存在由data,说明初始化没有问题

  2. 注册MySQL服务

    ckd:    mysqld -install
    

image-20230810223234624.png

  1. 启动MySQL服务

    net start mysql //启动服务
    
    net stop mysql  //停止服务
    
  2. 修改默认账户密码

    mysqladmin -u root password 设置的密码
    

image-20230810223240039.png

  1. 登录MySQL

    mysql -uroot -p密码
    

image-20230810223245303.png

  1. 远程连接数据库

    mysql -u用户名 -p密码 -h连接mysql服务器的ip地址 -P端口号
    

1.2、数据模型

  • 关系型数据库(RDBMS)
    • 建立在关系模型基础上,由多张相互连接的二维表组成的数据库

image-20230810223253004.png

1.3、SQL简介

  • SQL

    • 一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准
  • 通用语法

    • SQL语句可以单行或多行书写,以分号结尾
    show databases
    
    • SQL语句可以使用空格/缩进来增强语句的可读性
    show    databases
    
    • MySQL数据的SQL语句不区分大小写
    SHOW DATABASES
    
    • 注释
      • 单行注释:-- 注释内容 或 #注释内容
      • 多行注释: / 注释内容 /
  • SQL分类

image-20230810223302733.png

2.数据库设计-DDL

2.1、数据库

  • 查询
    • 查询所有数据库:show databases
    • 查询当前数据库:select database();
  • 使用
    • 使用数据库:use 数据库名
  • 创建
    • 创建数据库:create database [if not exists] 数据库名
  • 删除
    • 删除数据库:drop database [if exists] 数据库名

【[]包括的意为,如果存在则删除,或 如果不存在我再创建】

注意:上述语法中的database,也可以替换成 schema

  • MySQL客户端工具
    • DataGrip
    • 是JetBrains旗下一款数据库管理工具,是管理和开发MySQL、Oracle、PostgreSQL理想解决方案
  • MySQL图形化管理工具

image-20230810223311703.png

image-20230810223318582.png

image-20230810223329980.png

2.2、表DDL(CURD)

  • 创建

    create table tb_user(
        id int comment "用户ID",
        username varchar(20) comment "用户名称",
        name varchar(10) comment "用户姓名",
        age int comment "年龄",
        gender char(1) comment "性别"
    ) comment "用户表";
    
  • 约束

    • 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据
    • 目的:保证数据库中数据的正确性、有效性和完整性

image-20230810223338293.png

  create table tb_user(
      id int primary key auto_increment comment "用户ID",
      username varchar(20) not null unique comment "用户名称",
      name varchar(10) not null comment "用户姓名",
      age int comment "年龄",
      gender char(1) default '男' comment "性别"
  ) comment "用户表";
  • 数据类型

    • MySQL中数据类型中有很多,主要分三类:数值类型、字符串类型、日期时间类型

image-20230810223346471.png

image-20230810223351941.png

image-20230810223357767.png

  • 案例

image-20230810223406508.png

image-20230810223412505.png

根据上图设计数据库表

image-20230810223447577.png

  • 查询库,表

    • 查询当前数据库所有表: show tables
    • 查询表结构:desc 表名
    • 查询建表语句:show create table 表名
  • 修改表

    • 添加字段
    alert table 表名 add 字段名 类型(长度) [comment]
    
    • 修改字段类型
    alert table 表名 modify 字段名 新数据类型(长度)
    
    • 修改字段名和字段类型
    alert table 表名 change 旧字段名 新字段名 新数据类型(长度)
    
    • 删除字段
    alert table 表名 drop column 字段名
    
    • 修改表名
    rename table 表名 to 新表名
    
    • 删除表
    drop table [if exists] 表名
    

在删除表时,表中的全部数据也会被删除

3.数据库操作-DML

  • DML:Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作

  • 增:insert

    • 指定字段添加数据
    insert into 表名(字段名1,字段名2...) values (值1,值2)
    
    • 全部字段添加数据
    insert into 表名 values (值1,值2...)
    
    • 批量参加数据
    insert into 表名 values (值1,值2...),(值1,值2...)
    
-- DML:插入数据 -insert
-- 1.为 emp 表的userName,name,gender 字段插入值
insert into tb_emp(userName,name,gender,create_Time,update_Time) values ('马浩楠','浩楠',1,now(),now());
-- 2.为 emp 表的所有字段插入值
insert into tb_emp values ('程明辉',null,'010220','明辉',2,'http...',1,'2001-03-02',now(),now());
-- 3.批量为 emp 表的 userName,name,gender字段插入数据
insert into tb_emp(userName,name,gender,create_Time,update_Time) values
('李泽','泽',2,now(),now()),('吴赛','塞',2,now(),now());
  • 【注意事项】

    • 插入数据时,指定的字段顺序需要与值的顺序是一一对应的

    • 字符串和日期型数据应该包含在引号中

    • 插入数据大小,应该在字段的规定范围内

  • 改 update

    update 表名 set 字段名1 = 值1... where 条件
    
-- DML:修改数据 -update
-- 1.将 emp 表 ID为1的员工,姓名name改为'张三'
update tb_emp set name='张三',update_Time = now() where id = 1;
-- 2.将 emp 表所有员工的入职日期更新为 '2010-01-01'
update tb_emp set entryDate = '2010-01-01',update_Time = now() where true;

修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的数据

  • 删 delete

    delete fromwhere 条件
    
-- DML:删除数据 -delete
-- 1.删除 emp 表中 ID为 1 的员工
delete from tb_emp where  id = 1;
-- 2.删除 emp 表中的所有员工
delete from tb_emp;
  • 【注意事项】
    • delete 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据
    • delete 语句不能删除某一个字段的值(如果要操作,可以使用update,将该字段的值设为null)

results matching ""

    No results matching ""