MySQL知识点复习小结

这篇博客是对MySQL数据库的复习总结,涵盖了数据库概念、SQL语言、安装部署、DDL、DML、DQL、DCL等核心知识点,以及事务、多表关系和查询等内容。适合初学者和进阶者巩固MySQL知识。
摘要由CSDN通过智能技术生成

前言

最近刚刚复习了关系型数据库MySQL,现进行简单总结。

知识点

1. 数据库

DataBase(简称DB),用于存储和管理数据的仓库。

1.1 数据库的特点:

可持久化存储数据(数据库其实就是一个文件系统);

可高效存储和管理数据;

支持统一的方式来操作数据库(对于关系型数据库——SQL;对于非关系型数据库——NoSQL)

1.2 常见的数据库:

关系型数据库——MySQL(由于开源免费,功能强大支持千万级别的并发访问,web应用中常用)、Oracle、DB2(常用于银行系统)、Microsoft Sql Server(C#、.net常用)、SQLite(应用手机端的嵌入式小型数据库)

非关系型数据库——Redis(key-value)、HBase(列数据库)、MongoDB(文件数据库)

2. SQL

Structured Query Language,结构化查询语言,定义了操作所有RDBMS的规则,对于每一种数据库操作实现的具体方式可能有所不同(SQL语句有差异)

2.1 SQL通用语法:

  1. SQL语句可单行书写,可多行书写,每条语句最后以‘;’分号结尾
  2. 对于变量(表名、列名、值)可使用'_'来增强可读性
  3. SQL语句中可使用空格和缩进来增加语句的可读性
  4. MySQL数据库的SQL语句不区分大小写,建议关键字使用大写
  5. MySQL数据库支持三种注释:单行注释—— # XXXX; -- XXXX; 多行注释—— /* xxxx */,其中# XXX是MySQL特有的注释方式,其他数据库支持-- xxxx;和/* xxx */两种注释(注意-- xxx注释符号和注释内容中间有空格,如果没有空格会有结果但是SQL语句执行后会报错
show databases; -- 显示所有数据库

use db1; # 使用db1数据库

/*
创建数据库db2
*/
create database db2;

2.2 SQL分类:DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)、DCL(数据控制语言)下面以MySQL数据库为例进行详细总结。

3. 安装部署MySQL

MySQL数据库是目前应用最广的关系型数据库,安装部署方法参考链接:https://blog.csdn.net/bobo553443/article/details/81383194

MySQL Shell启动方式一共有两种。

3.1 MySQL Shell

一种是直接安装MySQL Shell应用程序,然后输出 \sql、\connect root@127.0.0.1并输入root用户的密码进入root用户操作MySQL shell环境。

3.2 MySQL Server

另一种是安装MySQL Server之后使用cmd进入其安装目录的bin目录(要么cmd直接cd进入;要么文件资源管理器的文件目录中直接输入cmd进入)输入 mysql -u root -p再输入密码即可

退出Shell环境可使用exit命令/quit命令。

MySQL提供可视化操作界面,使用MySQL Workbench应用程序连接server,根据需要建立schema(数据库)和表即可

MySQL安装目录中可以看到对于数据库而言对应的是一个文件夹,数据表对应一个文件

4. DDL

Data Definition Language,数据定义语言,主要涉及数据库和数据表的CRUD操作C(create)R(retrieve)U(update)D(delete)

4.1 数据库

4.1.1 查询数据库:

1. show databases;

2. show create database db1; 查看db1数据库的字符集character 

/* 查询数据库:
    1. show databases;
    2. show create database db1; 查看db1数据库的字符集character 
*/
mysql> show databases; -- 查看当前所有的数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
6 rows in set (0.00 sec)

mysql> show create database mysql; -- 查看mysql数据库的字符集
+----------+---------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                                                 |
+----------+---------------------------------------------------------------------------------------------------------------------------------+
| mysql    | CREATE DATABASE `mysql` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+---------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

4.1.2 创建数据库:

1. create database db1;

2. create database if not exists db1; -- 如果db1存在会报错,可在创建时进行判断。 如果db1不存在则创建数据库db1;如果存在则不做任何操作

3. create database db1 character set gbk; -- 设置数据库db1的字符集为gbk(可支持中文)

4. create databases if not exists db1 character set gbk;

/* 创建数据库:
    1. create database db1;
    2. create database if not exists db1; -- 如果db1存在会报错,可在创建时进行判断。 如果db1不存在则创建数据库db1;如果存在则不做任何操作
    3. create database db1 character set gbk; -- 设置数据库db1的字符集为gbk(可支持中文)
    4. create databases if not exists db1 character set gbk;
*/
mysql> create database db1; -- 创建数据库db1
Query OK, 1 row affected (0.38 sec)

mysql> show databases; -- 使用show查看到数据库db1创建成功
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
7 rows in set (0.00 sec)

mysql> create database db1; -- 在db1数据库已存在的情况下再次创建报错
ERROR 1007 (HY000): Can't create database 'db1'; database exists
mysql> create database if not exists db1; -- 增加判断条件,如果db1已存在不做任何操作
Query OK, 1 row affected, 1 warning (0.10 sec)


mysql> create database if not exists db2 character set gbk; -- 通用的创建数据库的标准语句
Query OK, 1 row affected (0.12 sec)

mysql> show create database db2;
+----------+------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                |
+----------+------------------------------------------------------------------------------------------------+
| db2      | CREATE DATABASE `db2` /*!40100 DEFAULT CHARACTER SET gbk */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+------------------------------------------------------------------------------------------------+
1 row in set (0.05 sec)

4.1.3 删除数据库

1. drop database db1;

2. drop database if exists db1; -- 先判断db1是否存在,若存在则删除;若不存在则不做操作

/* 删除数据库:
    1. drop database db1;
    2. drop database if exists db1; -- 先判断db1是否存在,若存在则删除;若不存在则不做操作
*/
mysql> drop database db2; -- 删除数据库db2
Query OK, 0 rows affected (0.23 sec)

mysql> show databases; -- 显示数据库db2删除成功
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
7 rows in set (0.00 sec)

mysql> show create database db2; -- 展示db2字符信息,但此时db2已被删除所以报错
ERROR 1049 (42000): Unknown database 'db2'
mysql> drop database if exists db2; -- 删除数据库前先做判断,如果存在则删除
Query OK, 0 rows affected, 1 warning (0.09 sec)

4.1.4 修改数据库

alter database db1 character set gbk; --修改数据库db1的字符集为gbk

/* 修改数据库:
    alter database db1 character set gbk; --修改数据库db1的字符集为gbk
*/
mysql> alter database db1 character set gbk; -- 修改db1字符集为gbk
Query OK, 1 row affected (0.18 sec)

mysql> show create database db1; -- 查看db1字符集,字符集修改为gbk
+----------+------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                |
+----------+------------------------------------------------------------------------------------------------+
| db1      | CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET gbk */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

4.1.5 使用数据库

1. use db1; -- 使用数据库db1

2. select database(); # 查看当前使用的是哪个数据库

/* 使用数据库:
    1. use db1; -- 使用数据库db1
    2. select database(); # 查看当前使用的是哪个数据库
*/
mysql> select database(); -- 查看当前使用的数据库
+------------+
| database() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

mysql> use db1;  -- 使用db1数据库
Database changed
mysql> select database(); -- 查看当前数据库已改变为db1
+------------+
| database() |
+------------+
| db1        |
+------------+
1 row in set (0.00 sec)

4.2 数据表

4.2.1 查询表

1. show tables; -- 查看当前数据库下所有的表

2. desc table1; -- 查看表table1的表结构(列名 列属性 列限制

/* 查询表:
    1. show tables; -- 查看当前数据库下所有的表
    2. desc table1; -- 查看表table1的表结构(列名 列属性 列限制)
    3. show create table table1; -- 查看table1的字符集
*/
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| table1        |
+---------------+
1 row in set (0.01 sec)

mysql> desc table1; -- 查看table1的表结构
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(4)      | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | varchar(1)  | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.15 sec)

4.2.2 创建表

/* 创建表:
    1.create table table1(
      列名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值