MySQL基本操作

一.SQL语言

1.SQL语言基础概述

        SQL(Structured Query Language):结构化查询语言,用于访问和处理数据库的标准的计算机语言

2.SQL特点

  • 具有综合统一性,不同数据库的支持的SQL稍有不同
  • 非过程化语言
  • 语言简洁,用户容易接受
  • 以一种语法结构提供两种使用方式

3.SQL语法特点

  1. SQL对关键字的大小写不敏感
  2. SQL语句可以以单行或者多行书写,以分号结束
  3. SQL的注释:
    1. 单行注释:--  ,--后面一定要加一个空格
    2. 单行注释:#,#后面可加可不加空格
    3. 多行注释:/* */

二.数据库系统

1.数据库

        数据库(DataBase)是一个以某种组织方式存储在磁盘上的数据的集合

2.数据库应用

        数据库应用系统是指基于数据库的应用软件

3.数据库管理系统(数据库软件)

1)关系型数据库(RDBMS)

  • Oracle数据库--------------------老大,最挣钱的数据库
  • MySQL数据库-------------------最流行中型数据库
  • SQL server数据库--------------Windows上最好的数据库
  • PostgreSQL----------------------功能最强大的开源数据库
  • SQLite-----------------------------最流行的嵌入式数据库

2)非关系型数据库(NoSQL)

  • Redis-----------------------------最好的缓存数据库
  • MongoDB-----------------------最好的文档型数据库
  • Elasticsearch------------------最好的搜索服务
  • Cassandra---------------------最好的列式数据库
  • HBase--------------------------优秀的分布式、列式数据库

4.SQL和数据库管理系统的关系

  • SQL是一种用于操作数据库的语言,SQL适用于所有关系型数据库
  • MySQL、Oracle、SQLServer是一个数据库软件,这些数据库软件支持标准SQL,也就是通过SQL可以使用这些软件,不过每一个数据库系统会在标准SQL的基础上扩展自己的SQL语法
  • 大部分的NoSQL数据库有自己的操作语言,对SQL支持的并不好

5.关系型数据数据库管理系统组成

        数据库管理系统(DBMS)主要由数据库和表组成,一个系统可以用很多数据库,每个数据库可以有很多表。

二.MySQL简介

1.MySQL介绍

  • MySQL数据库管理系统由瑞典的DataKonsultAB公司研发,该公司被Sun公司收购,现在Sun公司又被Oracle公司收购,因此MySQL目前属于Oracle旗下产品
  • MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,一般中小型网站的开发都选择MySQL作为网站数据库。

2.MySQL的特点

  1. MySQL数据库是用C和C++语言编写的,以保证源码的可移植性;
  2. 支持多个操作系统,例如:Windows、Linux、Mac OS等;
  3. 支持多线程,可以充分的利用CPU资源;
  4. 为多种编程语言提供API,包括C语言,Java,PHP,Python语言等;
  5. MySQL优化了SQL算法,有效的提高了查询速度;
  6. MySQL开放源代码且无版权制约,自主性强、使用成本低;
  7. MySQL历史悠久、社区及用户非常活跃,遇到问题,可以很快获取到帮助

3.MySQL版本

  • MySQL  Community   Server------社区版,免费,但是MySQL不提供官方技术支持
  • MySQL  Enterprise    Edition-----商业版,收费,可以试用30天,官方提供技术支持
  • MySQL Cluster-----集群版,开源免费,可将几个MySQL Server封装成一个Server
  • MySQL  Cluster CGE----高级集群版,付费
  • MySQL  Workbench(GUI  TOOL)---专为MySQL设计的ER/数据库建模工具

三.MySQL的安装和使用

1.下载安装MySQL

点击文件夹中的mysql-installer-community-8.0.30.0.msi安装

(或者进入MySQL官网进行下载:https://www.mysql.com/)

  • 这里选择no,暂时不需要升级

  • 选择自定义安装

  • 点击MySQL Server 8.0.30 -X64

  • 选择安装位置,选择完后点击Execute安装

  • 安装完成界面

  • next下一步之后没有配置的页面,再点击next进入如下配置页面,直接点击next

  • 直接下一步(Sevelopment Computer 开发计算机)

  • 密码验证

  • 设置密码

  • 直接next下一步
  • 点击Execute

  • 安装成功

  • 配置环境变量

2.测试是否安装成功

  • Win+R 输入cmd

  • 如下图显示则安装成功

3.MySQL启动

net start  mysql80

net stop  mysql80

四.MySQL常用图形管理工具

1.为什么要用图形化管理工具

        若日常开发和维护都在类似dos窗口中进行,对于编程初学者来说,上手略微有点困难,增加了学习成本,一般使用mysql图形化管理工具连接mysql,然后在图形化界面上操作mysql

2.常用工具

1)Navicat

        是一套快速、可靠的数据库管理工具,Navicat是以直觉化的图形用户界面而建的,可以兼容多种数据库,支持多种操作系统

2)SQLyog

        是一个快速而简洁的图形化管理MySQL数据库的工具,他能够在任何地点有效地管理数据库。使用SQLyog可以快速直观地通过网络来维护远端的MySQL数据库

3)MySQL Workbench

        官方提供的图形化管理工具,分为社区版和商业版,社区版完全免费,而商业版则是按年收费。支持数据库的创建、设计、迁移、备份、导出和导入等功能,并且支持Windows、Linux和mac等主流操作系统。

4)DataGrip

        是一款数据库管理客户端工具,方便连接到数据库服务器,执行sql、创建表、创建索引以及导出数据等

5)其他工具

  • phpMyAdmin
  • MySQLDumper
  • MySQL  GUI  Tools
  • MySQL ODBC  Connector        

3. Navicat安装和使用

Navicat官网下载:Navicat | Download Navicat Premium 14-day trial versions for Windows, macOS and Linux

或者文件夹中找到

F:\software install\navicat16工具\工具\navicat160_premium_cs_x64.exe

双击安装

  1. 下载完成后,双击开始安装
  2. 点击next下一步

  • 勾选我同意,点击Next

  • 选择安装路径

  • 勾选创建桌面图标

  • 点击安装

  • 安装完成

4.Navicat连接MySQL

  • 【连接】——>【MySQL】

  • 【设置连接名字】——>【MySQL服务器地址】——>【端口号】——>【用户名】——>【密码】——>【测试连接:出现连接成功的窗口点击确定,连接成功】

五.SQL

1.SQL通用语法

  1. SQL语句可以单行或多行书写,以分号结尾;
  2. SQL语句可以使用空格/缩进 来增强语句的可读性;
  3. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写;
  4. 注释:
    1. 单行注释: --注释内容  或  # 注释内容
    2. 多行注释: /* 注释内容 */

2.SQL分类

        1)DDL(Data Definition  Language):数据定义语言

用来定义数据库对象(数据库,表,字段)

  • 数据库操作
-- 查询
# 查询所有数据库
SHOW DATABASES;
# 查询当前数据库
SELECT DATABASE();

-- 创建
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

-- 删除
DROP DATABASE [IF EXISTS] 数据库名;

-- 使用
USE 数据库名;
  • 表操作
    1. 查询
      # 查询当前数据库所有表
      SHOW TABLES;
      # 查询表结构
      DESC 表名;
      # 查询指定表的建表语句
      SHOW CREATE TABLE 表名;
      
      
      # 创建表
      CREATE TABLE 表名(
      	字段1  字段1类型[COMMENT 字段1注释],
      	字段2  字段2类型[COMMENT 字段2注释],
      	字段3  字段3类型[COMMENT 字段3注释],
      	……
      	字段n  字段n类型[COMMENT 字段n注释]
      )[COMMENT 表注释];
    2. 修改
      # 添加字段
      ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释] [约束];
      
      # 修改数据类型
      ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
      
      # 修改字段名和字段类型
      ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
      
      # 删除字段
      ALTER TABLE 表名 DROP 字段名;
      
      # 修改表名
      ALTER TABLE 表名 RENAME TO 新表名;
      
    3. 删除
      # 删除表
      DROP TABLE [IF EXISTS] 表名;
      # 删除指定表,并重新创建该表
      TRUNCATE TABLE 表名;

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

  • mysql8数据类型

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

        1.数字类型:
                1)BIT

        比特值数据类型,取值范围从 1 64;默认值为:1

create table tb_name(col_name bit(1));  // BIT 数据类型示例
                2)INT

        整数数据类型,SQL 标准有:INTEGERSMALLINTMySQL8 有:TINYINTMEDIUMINT  BIGINT 等扩展类型。

  • TINYINT 1字节存储,取值(-128127
  • SMALLINT 2字节存储,取值(-32768 32767
  • MEDIUMINT 3字节存储,取值(-83886088388607
  • INT 4字节存储,取值(-21474836482147483647
  • BIGINT 8字节存储,取值(-2`632`63-1
                3)DECIMAL

       DECIMAL 数据类型 NUMERIC 数据类型都用于存储精确的数字值。最大位数为 65,当精度很重要时使用这些类型,例如货币。在 MySQL 中,NUMERIC DECIMAL 是一样的,因此 DECIMAL 同样适用于 NUMERIC

try8 decimal(5,2)  //DECIMAL 示例,存储范围:-999.99 到 999.99
                4)FLOAT

        FLOAT 数据类型 DOUBLE 数据类型都用于存储近似数字值。MySQL 对单精度值使用四个字节,对双精度值使用八个字节。从 0 23 的精度产生一个 4 字节的单精度列。从 24 53 的精度会产生一个 8 字节的双精度列。

float(5,2)  //示例取值范围:-999.99 至 999.99,最大:(255,30)
double(5,2)  //示例取值范围:-999.99 至 999.99,最大:(255,30)
        2.字符串类型

       MySQL8 字符串数据类型有:CHARVARCHARBINARYVARBINARYBLOBTEXTENUM  SET

                1)CHAR

         CHAR 数据类型是一个固定长度的字符串,在存储时总是用空格向右填充到指定的长度,它是 CHARACTER 的简写, 取值范围为:0~255 。定义CHAR(0) 时仅占用一位并且只能取值 NULL ''(空字符串)的列

                2)VARCHAR

        VARCHAR 数据类型表示为可变长度的字符串,取值范围: 0 65535

                3)BINARY

        BINARY 数据类型类似于 CHAR,但存储的是二进制字节字符串

                4)VARBINARY

        VARBINARY数据类型类似于VARCHAR,但存储二进制字节字符串

                5)BLOB

        BLOB 数据类型表示二进制字符串,有四种,TINYBLOBBLOBMEDIUMBLOB   LONGBLOB,其长度不同。

  • TINYBLOB255字节
  • BLOB65K
  • MEDIUMBLOB16M
  • LONGBLOB4G
                6)TEXT

        TEXT 数据类型表示字符串,有四种,TINYTEXTTEXTMEDIUMTEXT LONGTEXT,其长度不同。

  • TINYTEXT255字节
  • TEXT65K
  • MEDIUMTEXT16M
  • LONGTEXT4G
                7)ENUM

        ENUM 数据类型表示枚举。用于存储一个字符串对象, 值在内部表示为整数,最多可以有 65535 个不同的元素

create table tb_name (col_name enum ('a', 'b', 'c'));  //ENUM 数据类型示例
insert into tb_name (col_name) values ('a'),('b'),('c');
select col_name from tb_name where col_name = 'a';
                8)SET

        SET 数据类型表示字符串对象,可以有零个或多个值,值在内部表示为整数,最多可以有 64 个不同的成员。

create table tb_name (col_name set('a', 'b', 'c'));  //SET 数据类型示例
insert into tb_name (col_name) values ('a');
insert into tb_name (col_name) values ('a,b,c');
        3.日期时间数据类型

        表示日期和时间的数据类型有:DATETIMEDATETIMETIMESTAMP  YEAR。对于日期和时间数据类型,零值很特殊,您可以使用如下值存储它们,或者使用更容易编写的 0 值来执行操作。

  • DATE 0000-00-00
  • TIME 00:00:00
  • DATETIME 0000-00-00 00:00:00
  • TIMESTAMP 0000-00-00 00:00:00
  • YEAR 0000
                1)DATE

        DATE 数据类型表示日期但是没有时间部分的值,它允许使用字符串或数字,支持的格式为: 'YYYY-MM-DD',取值范围:'1000-01-01' '9999-12-31'

create table tb_name (col_name date);  //DATE 数据类型示例
                2)DATETIME

        DATETIME 数据类型表示日期和时间组合,格式为:'YYYY-MM-DD hh:mm:ss[.fraction] fraction 0 - 6 的可选值,默认 0 DATETIME 取值范围: '1000-01-01 00:00:00.000000'  '9999-12-31 23:59:59.999999'

                3)TIMESTAMP

        TIMESTAMP 数据类型表示日期和时间组合,取值范围:'1970-01-01 00:00:01.000000' UTC '2038-01-19 03:14:07.999999' UTC 。该时间戳与 DATETIME 不同,支持存储时区

                4)TIME

        TIME 数据类型表示一个时间。取值范围:'-838:59:59.000000'  '838:59:59.000000'。允许使用字符串或数字将值分配给列,格式为:'hh:mm:ss[.fraction]

                5)YEAR

        YEAR 数据类型表示 4 位数格式的年份。格式为:YYYY

        4.JSON数据类型

        MySQL 支持通过长 JSON 定义数据类型,可以高效访问 JSONJavaScript 对象表示法)文档中的数据。与直接存储 JSON 格式的字符串相比,该数据类型具有很多优势如:方便查询、验证错误、优化存储结构等。

create table tb_name (col_name json);  // JSON 数据类型示例
insert into tb_name values ('{"key1": "value1", "key2": "value2", "key3": "value3"}');
        5.空间数据类型

        MySQL 具有对应于 OpenGIS 类的空间数据类型。MySQL8 空间数据类型包含单个几何值:GEOMETRYPOINTLINESTRINGPOLYGON

create table tb_name (col_name GEOMETRY);  //GEOMETRY 数据类型示例
  案例:根据需求创建表(设计合理的数据类型、长度)

        设计一张员工信息表:要求如下:

  1. 编号(纯数字)
  2. 员工工号(字符串类型,长度不超过10位)
  3. 员工姓名(字符串类型,长度不超过10位)
  4. 性别(男/女,存储一个汉字)
  5. 年龄(正常输入年龄,不可能存储负数)
  6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
  7. 入职时间(取值年月日)
CREATE TABLE emp(
	id INT COMMENT '编号',
	workno VARCHAR(10) COMMENT '工号',
	name VARCHAR(10) COMMENT '姓名',
	gender CHAR(1) COMMENT '性别',
	age TINYINT UNSIGNED COMMENT '年龄',
	idcard CHAR(18) COMMENT '身份证号',
	entrydate date COMMENT '入职时间'
) COMMENT '员工表';
  1. 为emp表增加一个新的字段“昵称”为nickname,类型为varchar(20)

  2. 将emp表的nickname字段修改为username,类型为varchar(30)

  3. 将emp表的字段username删除

  4. 将emp表的表名修改为employee

# 为emp表增加一个新的字段“昵称”为nickname,类型为varchar(20)
ALTER TABLE emp ADD nickname VARCHAR(20) COMMENT '昵称';

# 将emp表的nickname字段修改为username,类型为varchar(30)
ALTER TABLE emp CHANGE nickname username varchar(30) COMMENT '用户名';

# 将emp表的字段username删除
ALTER TABLE emp DROP username;

# 将emp表的表名修改为employee
ALTER TABLE emp RENAME TO employee;

2)DML(Data  Manipulation  Language):数据操作语言

用来对数据库表中的数据进行增删改

①添加数据(INSERT)
②修改数据(UPDATE)
③删除数据(DELETE)

        3)DQL(Data  Query  Language):数据查询语言

用来查询数据库中表的记录

        4)DCL(Data  Control  Language):数据控制语言

用来创建数据库用户、控制数据库的访问权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值