任务一:MySql基础和SQL入门

1. 数据库的基本概念

1.1 什么是数据库

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

    1.2 为什么使用数据库

    数据存储方式的比较

    image.png

    通过上面的比较**,我们可以看出,使用数据库存储数据, 用户可以非常方便对数据库中的数据进行增加, **删
    除**, **修改及查询操作。

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

    2020**年数据库排行
    image.png**
    开发中常见的数据库
    image.png
    为什么选择MySQL ?
    1. 功能强大,足以应付web应用开发
    2. 开源, 免费

    2. MySQL的安装及配置

    2.1 安装MySQL

    详见 MySQL安装文档

    2.2 卸载MySQL

    详见 MySQL卸载文档

    2.3 MySQL环境变量配置

    详见 MySQL环境变量配置文档

    2.4 MySQL的启动与关闭

    2.4.1 方式一 : window服务启动 MySQL

    1) 右键此电脑 —> 管理
    image.png
    2) 选择服务—> 找到MysQL服务
    image.png
    3) 右键选择 —> 启动或停止
    image.png

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

    1) 首先以管理员身份 打开命令行窗口
    image.png
    2) 启动MySql
    net ``start ``mysql57
    3) 关闭MySql

net stop mysql57
image.png

2.5 命令行登录数据库

MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装时设置的密码即可登录。
image.png
image.png

2.6 SqlYog的使用

1) 简介

SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用 SQLyog 可以快速直观地让您从世界的任何角落通过网络来维护远端的 MySQL 数据库
image.png

2) 具体安装教程 请查看

SQLyog安装教程
image.png

2.7 MySql的目录结构

1) MySQL安装目录

MySql的默认安装目录在 C:\Program Files\MySQL\MySQL Server 5.7
image.png

2) MySQL配置文件 与 数据库及 数据表所在目录

image.png

  • my.ini 文件 是 mysql 的配置文件,一般不建议去修改
    image.png
  • data<目录> Mysql管理的数据库文件所在的目录
  • image.png
  • 几个概念

数据库: 文件夹
表: 文件
数据: 文件中的记录

2.8 数据库管理系统

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

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

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

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

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

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

2.9 数据库表

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

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

3. SQL(重点)

3.1 SQL的概念

1) 什么是SQL ?
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
2) SQL 的作用
是所有关系型数据库的统一查询规范,不同的关系型数据库都支持SQL
所有的关系型数据库都可以使用SQL
不同数据库之间的SQL 有一些区别 方言

3.2 SQL通用语法

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

3.3 SQL的分类image.png

image.png

3.4 DDL操作 数据库

3.4.1 创建数据库

image.png
image.png

3.4.2 查看/选择数据库

image.png
image.png

3.4.3 修改数据库

修改数据库字符集
image.png

3.4.4 删除数据库

image.png

针对数据库的创建,修改,查询,删除操作的案例代码

**/***
** 对数据库操作的分类**
** CRUD**
** C create 创建**
** R retrieve 查询**
** U update 修改**
** D delete 删除**
** 使用数据库**
***/**
**/***
** **``**创建数据库 方式一 指定名称的数据库**
***/**
**CREATE DATABASE db1;**
**/***
** **``**指定字符集的方式创建数据库**``**utf -8**
***/**
**CREATE DATABASE db_2 CHARACTER SET utf8;**
**/***
**查看数据库 需选中再刷新**
***/**
**#切换数据库**
**USE db_2;**
**#查询当前正在使用的数据库**
**SELECT DATABASE();**
**#查询有哪些数据库**
**SHOW DATABASES;**
**-- **``**修改数据库的字符集**
**-- 语法格式 alter database 数据库名 set utf8**
**-- **``**查询当前数据库的基本信息**
**SHOW CREATE DATABASE db1;**
**-- **``**删除数据库的操作**
**-- 语法格式 drop database 数据库名 将数据库从mysql永久删除**
**-- 慎用该操作**
**DROP DATABASE db2;**

3.5 DDL 操作 数据表

3.5.1 MySQL常见的数据类型

1)常用的数据类型:
image.png
2) 详细的数据类型(了解即可)
image.png
注意:MySQL中的 char类型与 varchar类型,都对应了 Java中的字符串类型,区别在于:
char类型是固定长度的: 根据定义的字符串长度分配足够的空间。
varchar类型是可变长度的: 只使用字符串长度所需的空间
比如:保存字符串 “abc”
image.png
适用场景:
char类型适合存储 固定长度的字符串,比如 密码 ,性别一类
varchar类型适合存储 在一定范围内,有长度变化的字符串

3.5.2 创建表

语法格式:
image.png

  • 需求1: 创建商品分类表

image.png
SQL实现
image.png
需求2: 创建测试表
image.png
SQL**实现
image.png**

  • 需求3: 快速创建一个表结构相同的表(复制表结构)

语法格式:
image.png

3.5.3 查看表

image.png

3.5.4 删除表

image.png

3.5.5 修改表

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

针对表的创建,查看,删除,修改操作的案例代码

**/***
**创建表的语法格式**
**create table 表名(**
** 字段名称 字段类型(长度),**
** 字段名称2 字段类型**
** 字段名称3 字段类型 最后一个字段不要加逗号**
**);**
**mysql 中常见的数据类型**
** int 整型**
** double 浮点型**
** varchar 字符串型**
** **
** date 日期类型 只显示年月日,不显示时分秒 yyyy-MM-dd**
** datetime日期类型 年月日时分秒 yyyy- MM-dd HH:mm:ss**
***/**
**--**``** varchar 和char的区别**
** -- varchar类型的特点是可变长的,存储字符串时,只是用所需的空间**
** -- char 类型 时固定的长度 是定了数据的长度,使用空间随着创建而占用**
** /***
** **``**保存字符串a,b,c**
** x char(10);长度为10,占用10个字符空间**
** 适用于长度固定,不变的数据。例如:银行卡号,密码,**
** **
** y varchar(10);只占用字符所需的3个空间,**
** 适用于长度不固定的,例如 人名,国家名称,事物名称 **``** **
** */**
** **
** **``**-- 创建商品分类表**
** /***
** 表明 category**
** cid int 分类id**
** cname carchar 分类的名称**
** */**
** -- 创建数据库**
** CREATE DATABASE db1 CHARACTER SET utf8;**
** -- 选择要使用的数据库**
** USE db1;**
** **``**-- 创建分类表**
** **
** CREATE TABLE category(**
** cid INT,**
** cname VARCHAR(20)**
** );**
**/***
** **``** 创建测试表**
***/**
** -- 选择要使用的数据库**
** USE db1;**
** -- 创建分类表**
** CREATE TABLE test(**
** tid INT,**
** tdate DATE**
** **
** );**
** **
** **
** /***
** **``**快速创建一个表结构相同的表**
** **
** 语法结构 cereate table 新表名称 like 旧表名称 **``** **
** */**
** **
** **``** -- 创建一个鱼test表结构相同的表**
** CREATE TABLE test1 LIKE test;**
** **
** -- 查看表结构**
** DESC test1;**
** **
** -- 查看表**
** -- 查看当前所有的数据表名**
** SHOW TABLES;**
** **
** **``**-- 查看创建表的sql语句**
** SHOW CREATE TABLE category;**
** **
** /***
** **
**表的删除操作**
** 语法格式 **
** drop table 表名;从数据库永久删除一张表**
** drop table if exists 表名 判断表是否存在,存在就删除,不存在就不执行**
** **
** */**
** **
** **``**-- 删除test1表**
** DROP TABLE test1;**
** **
** **``**-- 使用判断删除表**
** DROP TABLE IF EXISTS test1; #不存在的表,删除时会发生警告。**
** **
** /***
** 修改表的名称**
** 修改表的字符集**
** 修改表中的某一列(数据类型 名称 长度)**
** 向表中添加一列**
** 删除表中的某一列**
** **
** **
** */**
** **
** **``**-- 修改表的名称 语法格式;rename table 旧表名 to 新表名**
** **
** RENAME TABLE category TO category1;**
** **
** **``**-- 修改表的字符集为 gbk **
** **``**-- 语法格式 alter table 表名 charcater set 字符集**
** ALTER TABLE category1 CHARACTER SET gbk;**
** **
** **``**-- 向表中添加一个字段 关键字 :add**
** -- 语法格式 alter table 表名 add 字段名称 字段类型(长度)**
** **
** ALTER TABLE category1 ADD cdesc VARCHAR (20);**
** **
** **``** -- 修改表中的列的类型或者长度 关键字 modify**
** -- 语法格式 alter table 表名 modify 字段名称 字段类型;**
** -- 修改cdesc 字段的长度为50**
** ALTER TABLE category1 MODIFY cdesc VARCHAR(50); **
**-- 修改字段长度**``** **
** ALTER TABLE category1 MODIFY cdesc CHAR (20); **
** -- 修改字段类型**``** **
** -- 修改列的名称 关键子 change**
** -- y语法格式: alter table 表名 change 旧列名 新列名 类型(长度)**
** -- 修改cdesc字段名称改为description varchar(30)**
** **
** ALTER TABLE category1 CHANGE cescription description VARCHAR(30);**
** **
** **``** -- 删除列 关键子drop**
** -- 语法格式 alter table 表名 drop 列名**
** ALTER TABLE category1 DROP description; **
** **

3.6 DML 操作表中数据

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

3.6.1 插入数据

语法格式:
insert into ``表名 (字段名``1``,字段名``2...``) ``values``(``字段值``1``,字段值``2...);
1)代码准备,创建一个学生表:
**表名:**``**student **
**表中字段: **
**学员**``**ID, sid **``**int **
**姓名, **``**sname **``**varchar**``**(**``**20**``**) **
**年龄, **``**age **``**int **
**性别, **``**sex **``**char**``**(**``**1**``**) **
**地址, **``**address **``**varchar**``**(**``**40**``**) **
**# **``**创建学生表 **
**CREATE TABLE **``**student( **
**sid **``**INT**``**, **
**sname **``**VARCHAR**``**(**``**20**``**), **
**age **``**INT**``**, **
**sex **``**CHAR**``**(**``**1**``**), **
**address **``**VARCHAR**``**(**``**40**``**) **
**);**