zoukankan      html  css  js  c++  java
  • 2.1 MySQL基础使用

    本文是课上资料的总结非原创没有转载地址

    目录

    • 引言
      • 为什么需要数据库?
      • 数据库和应用程序的关系
    • MySQL基础使用
      • 一、数据库简介
        • 1.1 简介
        • 1.2 常见数据库管理系统
        • 1.3 MySQL卸载
        • 1.4 MySQL5.5安装
        • 1.5 MySQL5.7安装
      • 二、SQL语言
        • 2.1 概述
        • 2.2 SQL语句分类
        • 2.3 DDL操作数据库
          • 2.3.1 创建数据库
          • 2.3.2 查看
          • 2.3.3 修改
          • 2.3.4 删除
          • 2.3.5 其他语句
        • 2.4 DDL操作表
          • 2.4.1 创建表 CREATE TABLE
          • 2.4.2 删除表 DROP TABLE
          • 2.4.3 当前数据库中的所有表 SHOW TABLE
          • 2.4.4 查看表的字段信息 DESC
          • 2.4.5 增加列 ALTER ... ADD
          • 2.4.6 修改列(字段)属性 ALTER ... MODIFY
          • 2.4.7 删除列(字段)ALTER ... DROP
          • 2.4.8 更改表名 RENAME ... TO
          • 2.4.9 查看表的创建细节 SHOW CREATE
          • 2.4.10 修改表的字符集 ALTER ... CHARACTER SET
          • 2.4.11 修改列名(字段名) ALTER ... CHANGE
        • 2.5 DML操作(重要)
          • 2.5.1 插入操作:INSERT
          • 2.5.2 修改操作:UPDATE
          • 2.5.3 删除操作:DELETE
          • ==2.5.4 DELETE和TRUNCATE区别==
        • 2.6 客户端工具
      • 三、DQL数据查询(重点)
        • 3.1 简单查询
        • 3.2 条件查询
          • ==面试题:==
        • 3.3 模糊查询
        • 3.4 字段控制查询
          • 3.4.1 去除重复记录 DISTINCT
          • 查看数据之和 +、CONCAT
          • 给列名添加别名 [AS]
        • 3.5 排序 ORDER BY
        • 3.6 聚合函数
          • 3.6.1 COUNT
          • 3.6.2 SUM和AVG
          • 3.6.3 MAX和MIN
        • 3.7 分组查询 GROUP BY ... HAVING
          • 3.7.1 分组查询 GROUP BY
          • 3.7.2 HAVING子句 GROUP BY ... HAVING
          • ==3.7.3 HAVING 和 WHERE 的区别==
        • 3.8 LIMIT限制
          • 3.8.1 分页查询
    • 总结
    • 作业题
    • 面试题

    引言

    为什么需要数据库?

    Java中保存数据需要使用集合或数组,但使用集合或数组程序关闭后,所有的数据全部丢失,如何才能持久化保存数据呢?

    1. 文件:存储少量数据,没有严格的格式;
    2. 网盘:需要网络,存储少量数据,没有严格的格式;
    3. 数据库:存储大量数据,按照一定格式存储。

    数据库和应用程序的关系

    数据库是存放数据的仓库,应用程序主要给用户一个可视的界面以及相关的功能,二者相辅相成。

    MySQL基础使用

    一、数据库简介

    1.1 简介

    • 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。简单理解数据的仓库。
    • 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,堆数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据中的数据。
    • 数据库是通过数据库管理系统创建和操作的。

    1.2 常见数据库管理系统

    • 关系型数据库管理系统(RDBMS,Relational Database Management System)
      1. Oracle:Oracle数据库被认为是业界目前比较成功的关系型数据库管理系统。Oracle数据库可以运行UNIX、Windows等主流操作系统平台,完全支持所有的工业标准,并获得最高级别的ISO标准安全性认证。
      2. MySQL:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。MySQL是最好RDBMS(Relational Database Management System,关系数据库管理系统)应用软件。
      3. DB2:DB2是IBM公司的产品,DB2数据库系统采用多进程多线索体系结构,其功能足以满足大中公司的需要,并可灵活的服务于中小型电子商务解决方案。
      4. Microsoft SQL Server:SQL Server 是 Microssft公司退出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高的优点。
      5. SQLite:应用在手机端的数据库。
      6. 国产数据库,阿里目前自研数据库分为两个支线,OceanBasePOLARDB
    • 非关系型数据库管理系统(NoSQL)
      Redis、MongoDB等

    1.3 MySQL卸载

    1. 关闭MySQL服务
      方式1:win+R -> service.msc -> 关闭MySQL相关服务
      方式2:命令停止
      cmd管理员启动 -> net stop 服务名(默认mysql57)
    2. 控制面板卸载(相关MySQL均卸载)
    3. 删除C盘残留文件(Program Files、Program Files(x86)、ProgramData)
    4. 检查服务是否删除成功(第一步可查看)
    5. 如果未删除服务,手动删除
      使用管理员身份进入cmd命令行,执行:sc delete 服务名

    1.4 MySQL5.5安装

    • 安装和配置步骤
      5.5-1
      5.5-25.5-3
      5.5-4
      5.5-5
      5.5-6
      5.5-7
      5.5-8
      5.5-9
      5.5-10
      5.5-11
      5.5-12
      5.5-13
      5.5-14
      5.5-15
      5.5-16
      5.5-17
      5.5-18
      5.5-19
      5.5-20
      5.5-21
      5.5-22
    • 启动MySQL服务
      1. win+R -> service.msc -> 启动MySQL相关服务
      2. 命令停止
        cmd管理员启动 -> net start 服务名(默认mysql57)
    • 验证是否安装成功
      win+R -> cmd -> mysql -uroot -p -> 回车后输入密码
    • 卸载MySQL
      1. 停止服务,使用net stop 服务名命令停止服务。
      2. 在控制面版–>“程序和功能”中,找到“MySQL”程序,点击卸载。
      3. 删除安装目录,一般默认在C:Program FilesMySQL。
      4. 删除数据库文件 存放目录,一般默认在C:ProgramDataMySQL

    注意:
    (1)在运行窗口中,输入services.msc,打开服务窗口查看是否还有“MySQL”服务。
    (2)如果卸载后,发现MySQL服务没有删除,手动删除:以管理员身份打开命令行,输入sc delete 服务名

    • MySQL安装目录
      bin文件夹:改文件夹下存放着可执行文件
      include文件夹:该文件夹下存放着头文件
      lib文件夹:该文件夹下存放着库文件
      share文件夹:该文件夹下存放着字符集、语言等信息。
    • MySQL配置文件
      在MySQL安装目录中找到my.ini文件,并打开查看几个常用配置参数
    常用的参数名 描述
    default-character-set 客户端默认字符集
    character-set-server 服务器端默认字符集
    port 客户端和服务器端的端口号
    default-storage-engine MySQL默认存储引擎 INNODB

    1.5 MySQL5.7安装

    • 卸载
      (1)停止服务 net stop mysql57 (2)安装和卸载程序 卸载mysql项目 (3)删除残留文件 C:ProgramData

    注意
    如果MySQL57服务没有删除成功,请手动删除:使用管理原身份进入命令行sc delete 服务名

    • 安装
      同意协议
      同意协议
      仅仅服务器模式
      仅仅服务器模式
      请选择安装的位置,如果修改请记住位置,点击下一步
      请选择安装的位置,如果修改请记住位置,点击下一步
      点击Execute执行
      点击Execute执行
      显示执行进度,请等待执行完毕。
      显示执行进度,请等待执行完毕。
      执行完毕,点击下一步。
      执行完毕,点击下一步。
      安装完成后,开始准备配置
      安装完成后,开始准备配置
      进行第一步配置,除了需要设置密码外,后面的步骤基本上都是下一步下一步
      进行第一步配置,除了需要设置密码外,后面的步骤基本上都是下一步下一步
      设置 root 密码
      设置 root 密码
      设置 root 密码
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      最后一步。把mysql安装目录添加到环境变量,方便使用命令。
      在这里插入图片描述
      在这里插入图片描述
    • 验证是否安装成功
      打开:Command Line Client输入root的账号和密码能进入,安装成功。
      修改密码:`set password for ‘root’@‘localhost’=password(‘新密码’);```
    • 安装目录介绍
      bin:二进制文件
      dosc:存放文档
      include:头文件
      lib:链接库
      share:语言文件
      C:ProgramDataMySQLMySQL Server 5.7 存放数据库的目录和配置
    • my.ini设置编码
      设置数据库默认编码:default-character-set=utf8mb4
      设置服务器编码:character-setserver=utf8mb4
    • 服务的停止和服务
      (1)使用windows的服务界面停止和启动MySQL57
      (2)管理员命令行停止
    # 停止服务
    net stop MySQL57
    # 启动服务
    net start MySQL57
    
    • 把MySQL的bin目录添加环境变量
      C:Program FilesMySQLMySQL Server 5.7in添加到path中
      打开命令提示符:(1)输入mysql -uroot -p 回车(2)输入密码

    二、SQL语言

    2.1 概述

    • SQL:Structure Query Language(结构化查询语言),用来访问和处理数据库的标准计算机语言。后来被国际化标准组织(ISO)采纳为关系型数据库语言的国际标准。
    • SQL作用:SQL是一种标准化的语言,它允许你在数据库上执行操作,如创建数据库、表等等,查询内容,更新内容,并删除条目等操作;CRUD(Create、Read、Update、Delete)操作。
    • 大部分数据库厂商都支持ISO的SQL标准,但是数据库厂商在标准的基础上做了自己的扩展,称为方言

    2.2 SQL语句分类

    • DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等。
    • DML(Data Manipulation Language):数据库操作语言,用来定义数据库记录(数据)。
    • DQL(Data Query Language):数据查询语言,用来查询记录(数据)。
    • DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。

    MySQL语法这主意事项
    MySQL每条结尾以“;”结尾。
    MySQL语句不区分大小写。
    MySQL字符串使用单引号双引号
    MySQL注释:(1)单行注释:#开头或者--空格开头(2)多行注释/*多行注释*/

    2.3 DDL操作数据库

    • 显示当前MySQL中的数据库
    # 显示当前MySQL中的数据库
    SHOW DATABASES;
    

    系统默认数据库:

    数据库名 描述
    information_schema information_schema数据库是MySQL自带的,他提供了访问数据库元数据 1的方式。
    mysql 这是个MySQL的核心数据库,主要负责存储数据库的用户、权限设置、关键字等MySQL自己需要使用的控制和管理信息,不可删除。
    performance_schema 收集数据库服务器性能参数,性能优化的数据库。
    test(5.5版本) 这个是安装时候创建的一个测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。
    sys(5.7版本) sys系统数据库,保存系统的元数据信息,数据来源information——schema库。
    这个库可以方便DBA发现数据库的很多信息,解决性能瓶颈都提供了巨大帮助。

    2.3.1 创建数据库

    CREATE DATABASE语句用于创建新的数据库:

    • 语法
    CREATE DATABASE [IF NOT EXISTS] db_name;
    
    • 练习:
    # 创建mydb1数据库
    CREATE DATABASE mydb1;
    # 创建GBK字符集的mydb2数据库
    CREATE DATABASE IF NOT EXISTS mydb2 character SET GBK;
    # 创建字符集为GBK,校验规则是gbk_chinese_ci的mydb3数据库
    CREATE DATABASE mydb3 character SET GBK COLLATE gbk_chinese_ci;
    

    2.3.2 查看

    • 查看当前数据库服务器中的所有数据库
    SHOW DATABASES;
    
    • 查看前面创建的mydb2数据库定义信息
    SHOW CREATE DATABASE mydb2;
    

    2.3.3 修改

    • 查看服务器中的数据库,并把mydb2的字符集修改为utf8;
    ALTER DATABASE mydb2 character SET utf8;
    

    2.3.4 删除

    • 语法
    DROP DATABASE [IF EXISTS] db_name;
    
    • 练习:
    # 判断mydb3数据库是否存在存在就直接删除
    DROP DATABASE IF EXISTS mydb3;
    

    2.3.5 其他语句

    • 查看当前使用的数据库
    SELECT DATABASES();	# 没有选择数据 null    
    
    • 切换数据库
    USE mydb2;
    
    • 退出MySQL
    quit;
    # OR
    exit;
    # OR
    q
    

    2.4 DDL操作表

    2.4.1 创建表 CREATE TABLE

    • CREATE TABLE语句用于创建新表。
    • 语法
    CREATE TABLE [IF NOT EXISTS] db_name(
    	字段1 字段类型(长度) 约束,
    	字段2 字段类型(长度) 约束,
    	...
    	字段n 字段类型(长度) 约束
    )[CHARSET=utf8];
    
    • 实例:
    CREATE TABLE IF NOT EXISTS student(
    	id INT NOT NULL,
    	name VARCHAR(50),
    	age INT,
    	address VARCHAR(100)
    ) CHARSET=utf8;
    

    CREATE TABLE IF NOT EXISTS `student`(
    	`id` INT NOT NULL,
    	`name` VARCHAR(50),
    	`age` INT,
    	`address` VARCHAR(100)
    )CHARSET=utf8;
    

    注意:数据库名、表名、字段名可以使用反勾号“`”括住,也可以不括。如果SQL关键字或者数字开头标识符一般要括住。
    反勾号即键盘ESC下方的案结案

    • 常用数据类型
    数据类型名称 描述
    int 整型(4个字节)
    double 浮点想(8个字节),近似值
    例如double(5,2)表示最多5位,其中必须由2位小鼠,取值范围位-999.99到999.99。
    decimal 精确数值数据,最大位数可以是65
    例如decimal(5,2)能够存储具有五位数和两位小数的任何值,因此可以存储范围位-999.99至999.99。
    char 固定长度字符串类型;
    char(10)——'aaa '最多存储10个字符
    缺点:浪费空间;优点:查询速度快。
    varchar 可变长度字符串类型;
    varchar(10)——'aaa’最多存储10个字符
    缺点:查询速度慢;优点:节省空间。
    text 大文本字符串类型;有字符编码,存储比较大的文本数据。
    blob Binary Large Object二进制大对象数据;可以存储图片、音频、视频。
    date 日期类型,格式为:yyyy-MM-dd。
    time 时间类型,格式为:hh:mm:ss。
    timestamp 时间戳类型yyyy-MM-dd hh:mm:ss会自动赋值。
    datetime 日期时间类型yyyy-MM-dd hh:mm:ss。

    2.4.2 删除表 DROP TABLE

    • DROP TABLE语句用于删除现有表。
    • 语法
    DROP TABLE [IF EXISTS] table_name;
    

    2.4.3 当前数据库中的所有表 SHOW TABLE

    SHOW TABLES;
    

    2.4.4 查看表的字段信息 DESC

    • 语法
    DESC table_name;
    
    • 练习:查询student表的字段信息
    DESC student;
    

    2.4.5 增加列 ALTER … ADD

    • 语法
    ALTER TABLE table_name ADD 列名(字段名) 数据类型;
    
    • 练习:在上面学生表的基础上增加一个image列(数据类型blob)
    # 在上面学生表的基础上增加一个image列(数据类型blob)
    ALTER TABLE student ADD image blob;
    

    2.4.6 修改列(字段)属性 ALTER … MODIFY

    • 语法
    ALTER TABLE table_name MODIFY 列名(字段名) 数据类型;
    
    • 练习:修改student表中address列,使其长度为60
    # 修改student表中address列,使其长度为60
    ALTER TABLE student MODIFY address varchar(60);
    

    2.4.7 删除列(字段)ALTER … DROP

    • 语法
    ALTER TABLE table_name DROP 列名(字段名);
    
    • 练习:删除student表中image列,一次只能删除一列
    # 删除student表中image列,一次只能删除一列
    ALTER TABLE student DORP image;
    

    2.4.8 更改表名 RENAME … TO

    • 语法
    RENAME TABLE old_table_name TO new_table_name; 
    
    • 练习:把student表名改为user
    # 把student表名改为user
    RENAME TABLE student TO `user`;
    

    2.4.9 查看表的创建细节 SHOW CREATE

    • 语法
    SHOW CREATE TABLE table_name;
    
    • 练习:查看user表的创建细节
    # 查看user表的创建细节
    SHOW CREATE TBALE user;
    

    2.4.10 修改表的字符集 ALTER … CHARACTER SET

    • 语法
    ALTER TABLE table_name CHARACTER SET 字符集;
    
    • 练习:修改user表的字符集为gbk
    # 修改user表中的字符集为gbk
    ALTER TABLE user CHARACTER SET gbk;
    

    2.4.11 修改列名(字段名) ALTER … CHANGE

    • 语法
    ALTER TABLE table_name CHANGE old列名 new列名 数据类型;
    
    • 练习:将user表中name列名改为username
    # 将user表中name列名改为username
    ALTER TABLE user CHANGE name username varchar(100);
    

    2.5 DML操作(重要)

    DML是对表中的数据进行增、删、改的操作。不要与DDL混淆了。
    主要包括:INSERT、UPDATE、DELETE

    • 小知识
      在MySQL中,字符串类型和日期类型都要用单引号括起来。
      空值:null
    • 被操作表
    CREATE TABLE student(
    	id INT NOT NULL,
    	name VARCHAR(50),
    	age INT
    
                    
  • 相关阅读:
    别让暑假留下遗憾,让我们一起去黑龙潭耍水祈福吧
    黑龙潭亲子福利:参加亲子活动合影拿好礼
    黑龙潭,北京夏日养生旅游的首选之地
    黑龙潭,一个夏日亲子游的好地方
    黑龙潭,北京真龙的栖身之所?
    密云黑龙潭周末自驾游
    白天,你陪我黑龙潭戏水观瀑;夜晚,我陪你云蒙山数星看月
    北京黑龙潭旅游攻略
    亲爱的,让我们今生约定每年都去一次黑龙潭,好吗?
    成都飞客文化2014新春贺词:感恩有你,共创辉煌
  • 原文地址:https://www.cnblogs.com/dongshenjun/p/12195672.html
Copyright © 2011-2022 走看看