欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql数据库(一) 数据库基础及sql语句

程序员文章站 2022-05-09 19:10:20
...

一、MySQL基础及SQL入门

数据库的基本概念

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

数据库作用

  • 数据存储方式的比较

    存储方式 优点 缺点
    内存 速度快 不能够永久保存,数据是临时状态的
    文件 数据是可以永久保存的 使用IO流操作文件, 不方便
    数据库 数据可以永久保存
    方便存储和管理数据
    使用统一的方式操作数据库 (SQL)
    占用资源,有些数据库需要付费(比如Oracle数据库)
  • 通过上面的比较,我们可以看出,使用数据库存储数据, 用户可以非常方便对数据库中的数据进行增加, 删除, 修改及查询操作

开发中常见的数据库

数据库名 介绍
MySql数据库 开源免费的数据库 因为免费开源、运作简单的特点,常作为中小型的项目的数据库首选。 MySQL1996年开始运作,目前已经被Oracle公司收购了. MySQL6.x开始收费
Oracle数据库 收费的大型数据库,Oracle公司的核心产品。 安全性高
DB2 IBM公司的数据库产品,收费的超大型数据库。 常在银行系统中使用
SQL Server MicroSoft 微软公司收费的中型的数据库。 C#、.net等语言常使用。 但该数据库只能运行在windows机器上,扩展性、稳定性、安全性、性能都表现平平

MySQL的安装及配置

第一步 安装包

  • 双击安装包文件 进行安装

Mysql数据库(一) 数据库基础及sql语句

第二步 Mysql协议

  • 同意Mysql协议 , 选择 Server Only安装Mysql服务器即可

    Mysql数据库(一) 数据库基础及sql语句

Mysql数据库(一) 数据库基础及sql语句

第三步 安装前检查

  • 提示需要安装一个软件 visual studio ,我们选择安装一下
    Mysql数据库(一) 数据库基础及sql语句

  • 选中同意, Install 安装
    Mysql数据库(一) 数据库基础及sql语句

Mysql数据库(一) 数据库基础及sql语句

第四步 安装

  • Execut执行安装
    Mysql数据库(一) 数据库基础及sql语句

  • 安装完成 下一步
    Mysql数据库(一) 数据库基础及sql语句

第五步 产品配置

  • 下一步,开始配置

  • Mysql数据库(一) 数据库基础及sql语句

  • 选择单机版配置

  • Mysql数据库(一) 数据库基础及sql语句

  • 不用改动, 选择下一步即可

  • Mysql数据库(一) 数据库基础及sql语句

  • 为root用户 添加密码 确认密码

  • Mysql数据库(一) 数据库基础及sql语句

  • 将Mysql添加到服务, 不需要更改,下一步即可

  • Mysql数据库(一) 数据库基础及sql语句

  • Execute, 进行更改配置

  • Mysql数据库(一) 数据库基础及sql语句

  • 安装完成 Finish

  • Mysql数据库(一) 数据库基础及sql语句

  • Next

  • Mysql数据库(一) 数据库基础及sql语句

  • Finish

  • Mysql数据库(一) 数据库基础及sql语句

MySQL的卸载

第一步 定位数据库的数据文件位置

  • Mysql数据库(一) 数据库基础及sql语句

​ 注意: 如果找不到,可以使用搜索工具 对 my.ini文件进行搜索

  • 我们打开my.ini 文件,找到这样一段话 datadir=C:/ProgramData/MySQL/MySQL Server 5.7/Data
  • 这个定义的是mysql的数据库及数据表文件,我们将这段配置复制下来
  • Mysql数据库(一) 数据库基础及sql语句

第二步 控制面板 卸载Mysql

  • 在【控制面板】中找到【程序】–>【卸载程序】,找到MySQL Server 5.5程序,然后点击右键,卸载,如图所示:

  • Mysql数据库(一) 数据库基础及sql语句

  • Mysql数据库(一) 数据库基础及sql语句

  • Mysql数据库(一) 数据库基础及sql语句

  • Mysql数据库(一) 数据库基础及sql语句

第三步 手动删除 残余文件

  • 找到 第一步定位的,用来保存数据文件的目录 C:/ProgramData/MySQL/MySQL Server 5.7/Data

  • Mysql数据库(一) 数据库基础及sql语句

  • 直接删除掉Mysql文件夹

  • Mysql数据库(一) 数据库基础及sql语句

MySQL本地环境变量的配置

第一步 找到Mysql的安装位置

  • 前面步骤完成后安装好MySQL,为MySQL配置环境变量。MySQL默认安装在C:\Program Files下
  • Mysql数据库(一) 数据库基础及sql语句

第二步 选择此电脑 右键属性

Mysql数据库(一) 数据库基础及sql语句

第三步 选择 高级系统设置 环境变量

Mysql数据库(一) 数据库基础及sql语句

Mysql数据库(一) 数据库基础及sql语句

第四步 配置环境变量

  • 新建MYSQL_HOME变量,并配置: C:\Program Files\MySQL\MySQL Server 5.7

Mysql数据库(一) 数据库基础及sql语句

  • MYSQL_HOME:C:\Program Files\MySQL\MySQL Server 5.6

Mysql数据库(一) 数据库基础及sql语句

  • 编辑path系统变量,将 %MYSQL_HOME%\bin 添加到path变量后。

Mysql数据库(一) 数据库基础及sql语句

Mysql数据库(一) 数据库基础及sql语句

  • 提示:配置path环境变量,也可不新建MYSQL_HOME变量,而是直接将MySQL安装目录下的bin配置到path变量下,即:C:\Program Files\MySQL\MySQL Server 5.7\bin

MySQL的启动与关闭

方式一 : window服务启动 MySQL

  • 右键此电脑 --> 管理

  • 选择服务–> 找到MysQL服务

  • 右键选择 --> 启动或停止

方式二: DOS 命令方式启动

  • 首先以管理员身份 打开命令行窗口

  • 启动MySql

    net start mysql57
    
  • 关闭MySql

    net stop mysql57
    

命令行登录数据库

  • MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装 时设置的密码即可登录
命令 说明
mysql -u 用户名 -p 密码 使用指定用户名和密码登录当前计算机中的MySQL数据库
mysql -h 主机IP -u 用户名 -p 密码 -h指定IP 方式,进行 登录
  • 命令演示

    mysql -uroot -p123456
    mysql -h127.0.0.1 -uroot -p123456
    
  • 退出命令

    exit 或者 quit
    

MySql的目录结构

  • MySQL安装目录

    • MySql的默认安装目录在 C:\Program Files\MySQL\MySQL Server 5.7
    目录 目录内容
    bin 放置一些可执行文件
    docs 文档
    include 包含(头)文件
    lib 依赖库
    share 用于存放字符集、语言等信息
  • MySQL配置文件 与 数据库及 数据表所在目录

    Mysql数据库(一) 数据库基础及sql语句

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

数据库管理系统

基本概念

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

数据库管理系统的作用

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

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

  • MySQL中管理着很多数据库,在实际开发环境中 一个数据库一般对应了一个的应用

  • 数据库当中保存着多张表,每一张表对应着不同的业务,表中保存着对应业务的数据

    Mysql数据库(一) 数据库基础及sql语句

数据库表

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

    类 -----> 表
    类中属性 ----> 表中字段
    对象 —> 数据记录

SQL语言

基本概念

  • 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库 查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

SQL 的作用

  • 是所有关系型数据库的统一查询规范,不同的关系型数据库都支持SQL
  • 所有的关系型数据库都可以使用SQL
  • 不同数据库之间的SQL有一些区别

SQL的通用语法

  • SQL语句可以单行 或者 多行书写,以分号 结尾 ; (Sqlyog中可以不用写分号)

  • 可以使用空格和缩进来增加语句的可读性。

  • MySql中使用SQL不区分大小写,一般关键字大写,数据库名 表名列名 小写。

  • 注释方式

    注释语法 说明
    – 空格 单行注释
    /* */ 多行注释
    # MySql特有的单行注释

SQL的分类

分类 说明
数据定义语言 简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列 等
数据操作语言 简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新
数据查询语言 简称DQL(Data Query Language),用来查询数据库中表的记录
数据控制语言 简称DCL(Date Control Language),用来定义数据库的访问权限和安全级别, 及创建用户

DDL操作数据库

创建数据

命令 说明
create database 数据库名 创建指定名称的数据库
create database 数据库名 character set 字符集 创建指定名称的数据库,并且指定字符集(一般都指定utf-8)
/* 方式1 直接指定数据库名进行创建
   默认数据库字符集为:latin1 
*/ 
CREATE DATABASE db1; 
/* 方式2 指定数据库名称,指定数据库的字符集   
   一般都指定为 utf8,与Java中的编码保持一致 
*/ 
CREATE DATABASE db1_1 CHARACTER SET utf8

查看/选择数据库

命令 说明
use 数据库名 切换数据库
select database() 查看当前正在使用的数据库
show databases 查看Mysql中 都有哪些数据库
show create database 数据库名 查看一个数据库的定义信息
-- 切换数据库 从db1 切换到 db1_1 
USE db1_1;
-- 查看当前正在使用的数据库 
SELECT DATABASE();
-- 查看Mysql中有哪些数据库 
SHOW DATABASES;
-- 查看一个数据库的定义信息 
SHOW CREATE DATABASE db1_1;

修改数据库

修改数据库字符集

命令 说明
alter database 数据库名 character set 字符集 数据库的字符集修改操作
-- 将数据库db1 的字符集 修改为 utf8 
ALTER DATABASE db1 CHARACTER SET utf8;
-- 查看当前数据库的基本信息,发现编码已更改 
SHOW CREATE DATABASE db1

删除数据库

命令 说明
drop database 数据库名 从MySql中永久的删除某个数据库
-- 删除某个数据库 
DROP DATABASE db1_1;

DDL 操作数据表

MySQL常见的数据类型

  • 常用的数据类型

  • 类型 描述
    int 整型
    double 浮点型
    varchar 字符串型
    char 字符串型(固定长度)
    date 日期类型,给是为 yyyy-MM-dd ,只有年月日,没有时分秒

注意:

  • MySQL中的 char类型与 varchar类型,都对应了 Java中的字符串类型,区别在于:

    ​ char类型是固定长度的: 根据定义的字符串长度分配足够的空间

    ​ varchar类型是可变长度的: 只使用字符串长度所需的空间

  • char类型适合存储 固定长度的字符串,比如 密码 ,性别一类

  • varchar类型适合存储 在一定范围内,有长度变化的字符串

创建表

  • 语法格式

    CREATE TABLE 表名(    
        字段名称1 字段类型(长度),    
        字段名称2 字段类型  # 注意 最后一列不要加逗号 
    )
    
  • 需求1: 创建商品分类表

    /*
     表名:category 
     表中字段:     
       分类ID :cid ,为整型    
       分类名称:cname,为字符串类型,指定长度20
    */
    
    -- 切换到数据库 
    db1 USE db1; 
    -- 创建表 
    CREATE TABLE category(    
        cid INT,    
        cname VARCHAR(20) 
    )
    
  • 需求2: 快速创建一个表结构相同的表(复制表结构)

    -- 语法格式
    create table 新表明 like 旧表名
    
    -- 创建一个表结构与 test1 相同的 test2表 
    CREATE TABLE test2 LIKE test1;
    -- 查看表结构 
    DESC test2
    

查看表

命令 说明
show tables 查看当前数据库中的所有表名
desc 表名 查看数据表的结构
-- 查看当前数据库中的所有表名 
SHOW TABLES;
-- 显示当前数据表的结构 
DESC category;
-- 查看创建表的SQL语句 
SHOW CREATE TABLE category

删除表

命令 说明
drop table 表名 删除表(从数据库中永久删除某一张表)
drop table if exists 表名 判断表是否存在, 存在的话就删除,不存在就不执行删除
-- 直接删除 test1 表 
DROP TABLE test1;
-- 先判断 再删除test2表 
DROP TABLE IF EXISTS test

修改表

  • 修改表名

    -- 语法格式
    rename table 旧表名 to 新表名
    
    -- 需求: 将category表 改为 category1
    RENAME TABLE category TO category1;
    
  • 修改表的字符集

    -- 语法格式
    alter table 表名 character set 字符集
    
    -- 需求: 将category表的字符集 修改为gbk
    alter table category character set gbk;
    
  • 向表中添加列, 关键字 ADD

    -- 语法格式
    alert table 表名 add 字段名称 字段类型
    
    -- 需求: 为分类表添加一个新的字段为 分类描述 cdesc varchar(20)
    ALTER TABLE category ADD cdesc VARCHAR(20);
    
  • 修改表中列的 数据类型或长度 , 关键字 MODIFY

    -- 语法格式
    alter table 表名 modify 字段名称 字段类型
    
    -- 需求:对分类表的描述字段进行修改,类型varchar(50) 
    ALTER TABLE category MODIFY cdesc VARCHAR(50);
    
  • 修改列名称 , 关键字 CHANGE

    -- 语法格式
    alter table 表名 change 旧列名 新列名 类型(长度); 
    
    -- 需求:  对分类表中的 desc字段进行更换, 更换为 description varchar(30)
    ALTER TABLE category CHANGE cdesc description VARCHAR(30);
    
  • 删除列 ,关键字 DROP

    -- 语法格式
    alter table 表名 drop 列名;
    
    -- 需求: 删除分类表中description这列
    ALTER TABLE category DROP description;
    

DML 操作表中数据

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

插入数据

  • 语法格式:

    insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...);
    
  • 注意:

    1. 值与字段必须要对应,个数相同&数据类型相同

    2)值的数据大小,必须在字段指定的长度范围内

    3)varchar char date类型的值必须使用单引号,或者双引号 包裹

    4)如果要插入空值,可以忽略不写,或者插入null

    1. 如果插入指定字段的值,必须要上写列名

更改数据

  • 语法格式

    update 表名 set 列名 = 值 [where 条件表达式:字段名 = 值 ]
    
  • 注意:

    [] 表示可有可无,但不建议不写[]中的条件

删除数据

  • 语法格式

    delete from 表名 [where 字段名 = 值]
    
  • 注意:

    若不写[]中的条件,则删除整张表中的数据

  • 删除整表数据的另一种方式

    truncate table 表;
    
  • delete from 表名; 不推荐. 有多少条记录 就执行多少次删除操作. 效率低

  • truncate table 表名: 推荐. 先删除整张表, 然后再重新创建一张一模一样的表. 效率高

DQL 查询表中数据

简单查询

  • 查询不会对数据库中的数据进行修改.只是一种显示数据的方式 SELEC

  • 语法格式

    select 列名 from 表名; 
    
    -- 使用 * 表示所有列
    SELECT * FROM emp;
    
    -- 查询emp表中的所有记录,仅显示id和name字段
    SELECT eid,ename FROM emp;  
    
    -- 使用 AS关键字,为列起别名  -- AS 可以省略   
    SELECT eid AS '编号', ename AS '姓名',  hire_date '入职时间' FROM emp;
    
    -- 使用distinct 关键字,去掉重复部门信息 
    SELECT DISTINCT dept_name FROM emp;
    
    -- 运算查询 (查询结果参与运算)
    SELECT ename , salary + 1000 FROM emp
    

条件查询

  • 如果查询语句中没有设置条件,就会查询所有的行信息,在实际应用中,一定要指定查询条件,对记录进行过 滤

  • 语法格式

    select 列名 from 表名 where 条件表达式
    -- 先取出表中的每条数据,满足条件的数据就返回,不满足的就过滤掉
    
    
  • 运算符

    运算符 说明
    < <= >= = <> != 大于、小于、大于(小于)等于、不等于
    BETWEEN …AND… 显示在某一区间的值 例如: 2000-10000之间: Between 2000 and 10000
    IN(集合) 集合表示多个值,使用逗号分隔,例如: name in (悟空,八戒) in中的每个数据都会作为一次条件,只要满足条件就会显示
    LIKE ‘%张%’ 模糊查询
    % 表示匹配任意多个字符串,
    _ 表示匹配 一个字符
    IS NULL 查询某一列为NULL的值, 注: 不能写 = NUL
    And && 多个条件同时成立
    Or || 多个条件任一成立
    Not 不成立,取反

    注:本内容为个人拉勾教育大数据训练营学习笔记

相关标签: JavaSE mysql