MySQL—— 基础语法大全

MySQL—— 基础

    • 一、MySQL概述
      • 1.1 、数据库相关概念
      • 1.2 、MySQL 客户端连接
      • 1.3 、数据模型
    • 二、SQL
      • 2.1、SQL通用语法
      • 2.2、SQL分类
      • 2.3、DDL
      • 2.4、DML
      • 2.5、DQL
      • 2.6、DCL
    • 三、函数
    • 四、约束
    • 五、多表查询
    • 六、事务

一、MySQL概述

1.1 、数据库相关概念

数据库、数据库管理系统、SQL:
MySQL—— 基础语法大全_第1张图片
目前主流的关系型数据库管理系统的市场占有率排名如下:

MySQL—— 基础语法大全_第2张图片

  • Oracle:大型的收费数据库,Oracle公司产品,价格昂贵。
  • MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。
    目前Oracle推出了收费版本的 MySQL,也提供了免费的社区版本。
  • SQL Server:Microsoft 公司推出的收费的中型数据库,C#、.net等语言常用。
  • PostgreSQL:开源免费的中小型数据库。
  • DB2:IBM公司的大型收费数据库产品。
  • SQLLite:嵌入式的微型数据库。Android内置的数据库采用的就是该数据库。
  • MariaDB:开源免费的中小型数据库。是MySQL数据库的另外一个分支、另外一个衍生产品,与MySQL数据库有很好的兼容性。

而不论我们使用的是上面的哪一个关系型数据库,最终在操作时,都是使用 SQL 语言来进行统一操作,因为 SQL 语言,是操作关系型数据库的 统一标准。所以即使我们现在学习的是MySQL,假如我们以后到了公司,使用的是别的关系型数据库,如:OracleDB2SQLServer,也完全不用担心,因为操作的方式都是一致的。

MySQL下载,请参考其他教程!

⭐️ MySQL启动和停止

net start mysql80
net stop mysql80

MySQL—— 基础语法大全_第3张图片

1.2 、MySQL 客户端连接

  • 方式一:使用 MySQL 提供的客户端命令行工具

MySQL—— 基础语法大全_第4张图片

  • 方式二:使用系统自带的命令行工具执行指令
mysql [-h 127.0.0.1] [-P 3306] -u root -p

参数:

  • -h : MySQL服务所在的主机 IP
  • -P : MySQL服务端口号,默认3306
  • -u : MySQL数据库用户名
  • -p : MySQL数据厍用户名对应的密码

[] 内为可选参数,如果需要连接 远程的 MySQL,需要加上这两个参数来指定远程主机IP、端口,如果连接本地的MySQL,则无需指定这两个参数。

MySQL—— 基础语法大全_第5张图片

注意: 使用这种方式进行连接时,需要安装完毕后配置PATH环境变量

1.3 、数据模型

⭐️ 1)、关系型数据库(RDBMS

  • 概念:建立在关系模型基础上,由多张相互连接的 二维表 组成的数据库。
  • 而所谓 二维表,指的是由行和列组成的表,如下图(就类似于Excel表格数据,有表头、有列、有行,还可以通过一列关联另外一个表格中的某一列数据)。
  • 我们之前提到的 MySQLOracleDB2SQLServer 这些都是属于关系型数据库,里面都是基于二维表存储数据的。
  • 简单说,基于二维表存储数据的数据库就成为 关系型数据库,不是基于二维表存储数据的数据库,就是 非关系型数据库

MySQL—— 基础语法大全_第6张图片
特点:

  • A. 使用表存储数据,格式统一,便于维护。
  • B. 使用 SQL语言操作,标准统一,使用方便。

⭐️ 2)、数据模型

  • MySQL是关系型数据库,是基于 二维表 进行数据存储的,具体的结构图下:

MySQL—— 基础语法大全_第7张图片

  • 我们可以通过MySQL客户端连接 数据库管理系统 DBMS,然后通过DBMS操作数据库。
  • 可以使用SQL语句,通过 数据库管理系统 操作数据库,以及操作数据库中的表结构及数据。
  • 一个数据库服务器中可以创建多个数据库,一个数据库中也可以包含多张表,而一张表中又可以包
    含多行记录。

二、SQL

全称 Structured Query Language结构化查询语言。操作关系型数据库的编程语言,定义了
一套操作关系型数据库统一标准 。

2.1、SQL通用语法

在学习具体的SQL语句之前,先来了解一下SQL语言的同于语法。

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

2.2、SQL分类

SQL语句,根据其功能,主要分为四类:DDLDMLDQLDCL

MySQL—— 基础语法大全_第8张图片

2.3、DDL

⭐️ DDL — 数据库操作

1)、查询所有数据库

show databases ;

MySQL—— 基础语法大全_第9张图片
2)、查询当前数据库

select database() ;

3)、创建数据库

create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序规则 ] ;
  • [] 内的是可选项。
  • 字符集例如:utf8mb4;不建议使用 utf8, 其长度为3个字节,而 utf8mb4 长度是4个字节。
  • 在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。(可以通过 if not exists 参数来解决这个问题,数据库不存在, 则创建该数据库,如果存在,则不创建。)

举个栗子:

create database if not exists rmzh default charset utf8mb4 ;

MySQL—— 基础语法大全_第10张图片
4)、删除数据库

drop database [ if exists ] 数据库名 ;

MySQL—— 基础语法大全_第11张图片

  • 如果删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。

5)、切换数据库

use 数据库名 ;
  • 我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。
    比如,切换到 rmzh 数据,执行如下SQL:
use rmzh ;

数据库操作 快速食用:

# 1)、查询所有数据库
show databases ;
# 2)、查询当前数据库
select database() ;
# 3)、创建数据库
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序规则 ] ;
# 4)、删除数据库
drop database [ if exists ] 数据库名 ;
# 5)、切换数据库
use 数据库名 ;

⭐️ DDL — 表操作

1)、表操作-查询创建

  1. 查询当前数据库所有表
show tables;
  1. 查看指定表结构
desc 表名 ;

通过这条指令,我们可以查看到指定表的字段,字段的类型、是否可以为 NULL,是否存在默认值等信息。

  1. 查询指定表的建表语句
show create table 表名 ;

通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等。

  1. 创建表结构
CREATE TABLE 表名(
	字段1 字段1类型 [COMMENT 字段1注释 ],
	字段2 字段2类型 [COMMENT 字段2注释 ],
	字段3 字段3类型 [COMMENT 字段3注释 ],
	......
	字段n 字段n类型 [COMMENT 字段n注释 ]
) [ COMMENT 表注释 ] ;

注意: [...]内为可选参数,最后一个字段后面没有逗号。

2)、表操作-数据类型

  • 在上述的建表语句中,我们在指定字段的数据类型时,用到了 intvarchar,那么在MySQL中除了以上的数据类型,还有哪些常见的数据类型呢? 接下来,我们就来详细介绍一下MySQL的数据类型。
  • MySQL中的数据类型有很多,主要分为三类:数值类型字符串类型日期时间类型
  1. 数值类型
    MySQL—— 基础语法大全_第12张图片
    MySQL—— 基础语法大全_第13张图片

  2. 字符串类型
    MySQL—— 基础语法大全_第14张图片

charvarchar 都可以描述字符串:

  • char 是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。
  • varchar变长字符串,指定的长度为最大占用长度 。

相对来说,char的性能会更高些。

  1. 日期时间类型
    MySQL—— 基础语法大全_第15张图片
    3)、表操作-修改
  2. 添加字段
ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 1 注释 ] [ 约束 ];
  1. 修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
  1. 修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 1 注释 ]
  1. 删除字段
ALTER TABLE 表名 DROP 字段名;
  1. 修改表名
ALTER TABLE 表名 RENAME TO 新表名;

4)、表操作-删除

  1. 删除表
DROP TABLE [ IF EXISTS ] 表名;

可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不
加该参数项,删除一张不存在的表,执行将会报错)。

  1. 删除指定表, 并重新创建表
TRUNCATE TABLE 表名;

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

2.4、DML

2.5、DQL

2.6、DCL

三、函数

四、约束

五、多表查询

六、事务

你可能感兴趣的:(数据库,mysql,数据库)