顺便聊一下MySQL 系列教程之(三) MySQL 基本概念和操作

MySQL使用方法

  • 命令行模式
MySQL Command Line Client :命令行模式下输入sql语句来实现数据库的增删改查等操作

  • 图形界面工具
类似同于excel,我们可以用点点来实现增删改查等数据库操作

SQL

  • SQL是用于访问和处理数据库的标准的计算机语言
  • 是一种专门用来与数据库通信的语言,提供一种从数据库中读写数据的简单有效的方法
  • SQL指结构化查询语言,指数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

一、SQL语言分类

数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。

1、数据查询语言DQL

基本结构是由SELECT子句,FROM子句,WHERE子句构成

2、数据操纵语言DML

数据操纵语言DML主要有三种形式:

1) 插入:INSERT

2) 更新:UPDATE

3) 删除:DELETE

3、数据定义语言DDL

数据定义语言DDL用来创建数据库中的表、视图、

索引、同义词、聚簇等

如:

CREATE TABLE / VIEW / INDEX / SYN(同义词) / CLUSTER(簇)

4、数据控制语言DCL

数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制

数据库操纵事务发生的时间及效果,对数据库实行监视等。如:

1) GRANT: 授权

数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等

2) ROLLBACK: 回滚

3) COMMIT: 提交


注意  

在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到


二、SQL语言优点

  • 几乎所有重要的DBMS都支持SQL
SQL不是某个特定数据库供应商专有的语言。所以,学习此语言使你几乎能与所有数据库打交道。

  • SQL简单易学
它的语句全都是由描述性很强的英语单词组成,而且这些单词的数目不多

  • SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活
    使用其语言元素,可以进行非常复杂和高级的数据库操作。

三、SQL语法特点

  • SQL语句可以换行,要以分号结尾
在这里插入图片描述
  • 命令不区分大小写关键字和函数建议用大写(官方推荐)
在这里插入图片描述
  • 命令打错了换行后不能修改,可以用\c取消
在这里插入图片描述

四、数据库的操作步骤

  • 连接MySQL
  • 打开数据库
  • 操作数据
  • 退出连接

1、连接

打开命令行,输入密码,进行连接,回车后出现mysql>表示连接成功
在这里插入图片描述
在这里插入图片描述

2、打开

在你最初连接到MySQL时,没有任何数据库打开供你使用。在你执行任意数据库进行数据操作前,需要选择一个数据库。为此,可使用USE关键字。

USE 数据库名;

USE python21;

在这里插入图片描述
显示出的Database changed表示数据库选择成功,可以使用当前数据库下的所有数据表中的数据
必须先使用USE打开数据库(选中指定的数据库),才能读取其中的数据

注意

  • 关键字
    作为MySQL语言组成部分的一个保留字。决不要用关键字命名一个表或列
  • 在使用USE切换并选择数据库时,要选择已存在的数据库,否则报一下错误
在这里插入图片描述

3、操作

1)数据库操作

  • 查看数据库
SHOW DATABASES;  返回可用数据库的一个列表

在这里插入图片描述
  • 创建数据库
CREATE DATABASE 库名 DEFAULT CHARSET=UTF8; (执行上大小写无差别)

在这里插入图片描述
  • 查看建库语句
SHOW CREATE DATABASE 数据库名;

在这里插入图片描述
  • 删除数据库
DROP DATABASE 库名;

在这里插入图片描述

2)数据表操作

数据库管理系统中,可以有很多数据库,每个数据库中可以包括多张数

据表

  • 创建表
```sql

    # 如果创建已存在表名会报错

    create table 表名 (

        字段1 类型 约束条件,

        字段2 类型 约束条件

    )default charset=utf8;

    例如:

    create table shop (

        id int not null primary key auto_increment,

        goods_name varchar(255),

        goods_id int not null,

        goods_prices varchar(255)

    )default charset=utf8;

    # 如果表不存在,则创建,如果存在就不执行这条命令

    create table if not exists 表名 (

        字段1 类型 约束条件,

        字段2 类型 约束条件, 

        .......)

    default charset=utf8;

```

例如:

```sql

create table if not exists shop (id int not null primary key auto_increment, goods_name varchar(255),goods_id int not null,goods_prices varchar(255))default charset=utf8;

```

  • 查看建表语句
```sql

    SHOW CREATE TABLE 表名 \G 

    SHOW CREATE TABLE 表名;

```

在这里插入图片描述
  • 查看某一数据库内的所有数据表
```sql

    SHOW TABLES

    查看数据表之前需要进入指定数据库(也就是查看当前数据库下的数据表)

```

在这里插入图片描述
  • 查看数据表中数据
```sql 

    SELECT * FROM 表名;

```

在这里插入图片描述
  1. 每一项称为字段
  2. 每一行称为一条记录
  3. 查看表结构
```sql

    DESC 表名;

```

在这里插入图片描述
  • 删除数据表
```sql

    DROP TABLE 表名;

```


3)数据操作


  • 增加数据 / 插入数据
```sql

    # 单条插入

	INSERT INTO 表名 (字段1,字段2,字段3...) values(1,值2,值3...);

	例如:insert into class(class_name,teacher,stu_num) values ('python1','雷雷',19);

	 # 批量插入

    INSERT INTO 表名 (字段1,字段2,字段3...) values (a值1,a值2,a值3)(b值1,b值2,b值3)...;

    例如:insert into class(class_name,teacher,stu_num) values ('python4','雷雷',67),('python2','萌萌',23),('python3','雷雷',23);

```

  • 查询
```sql

    SELECT * FROM 表名;

    SELECT 字段1,字段2,字段3 FROM 表名;

    SELECT * FROM 表名 WHERE 字段=某个值;

```

  • 修改
```sql

	UPDATE 表名 SET 字段=某个值 WHERE 条件;

```

  • 删除
```sql

    DELETE FROM 表名WHERE 字段=某条件;

```


4、退出

    exit;
    quit;


五、快捷键

  • \G 格式化输出,垂直显示结果(竖立显示)
  • \s 查看服务器端信息
using delimiter 分隔符

connection id 连接的连接ID或者thread ID。对于已经建立的连接的客户端,都有一个唯一的连接ID

  • \c 结束命令输入操作
  • \h 查看帮助
  • \q 退出当前命令行模式
正文完