社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

MySql数据库中SQL语句的全面总结

一只没有情感的机器猪 • 3 年前 • 269 次点击  

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。下文是对这四种语言以及事务处理语言的小总结

1.数据定义语言——DDL

  • 对于数据库或者数据库的组件的结构的操作(DATA DEFINITION LANGUAGE ):
  • 特点:不允许事务的回滚。

1.1 CREATE ——表的创建

语法
CREATE TABLE 表名(
字段名 数据类型 约束,
字段名 数据类型 约束
)

1.2 DROP——表的删除

DROP TABLE 表名

1.3 ALTER——更改表

1.4 TRUNCATE——截断表

  • 表的截断,清空表中所有的记录。

  • 语法结构:
    TRUNCATE TABLE 表名

  • TRUNCATE和DELETE区别

  1. TRUNCATE是DDL,只能删除表中所有记录,释放存储空间, 使用ROLLBACK不可以回滚。
  2. DELETE是DML,可以删除指定记录,不释放存储空间,使用 ROLLBACK可以回滚。

2.数据操作语言——DML

  • 数据操作语言 (Data Manipulation Language ,简称DML),主要用来实现对数据库表中的数据进行操作——增删改
  • 数据操作语言主要包括如下几种:
    • 增加行数据:使用INSERT语句实现
    • 修改行数据:使用UPDATE语句实现
    • 删除行数据:使用DELETE语句实现
  • 特点:可以进行事务的回滚

2.1 INSERT 往表中插入记录

  • 语法:
    INSERT INTO 表名(字段列表) VALUES(值列表)
  • 其中:
    1、字段列表,值列表两两之间用逗号隔开
    2、值列表中的值,字符串和日期的常量,需要单引号括起来。
    3、值的类型要与字段的数据类型相符
    4、INTO可以省略
    5、字段列表如果是插入整个表中的字段,可以省略,但值列表的个数与顺序要与定义的表的字段的顺序一样。
    6、字段也可以写其中的几个,与后面的值的个数对应即可。
    7、VALUES 关键字也可以使用VALUE,但一般用values

或见下图:
在这里插入图片描述
例如
在这里插入图片描述
在这里插入图片描述

批量插入多条记录

  • 使用insert语句可以一次性地向表批量插入多条记录,语法格式如下。

INSERT INTO 表名(字段名) VALUES(值列表1),(值列表2),…,(值列表n);

  • 例如:
    在这里插入图片描述

2.2 UPDATE子句修改数据库中数据

  • 修改数据主要用来按照指定条件修改表中某些行的列数据。

  • 修改数据使用UPDATE子句完成,语法结构如下:
    UPDATE 表名 SET 字段名1=值1, 字段名2=值2 WHERE子句

  • 注意

    1. where子句用于限定修改的记录。如果不加where子句,默认修改该表中所有的记录。
    2. SET子句用来限定修改哪些列。
    3. 可一次修改多条记录 在这里插入图片描述
    4. 进行修改操作时要注意完整性约束错误

2.3 DELETE 语句删除表中满足条件的行记

  • 删除数据主要用来按照指定条件从表中删除某些行。
  • 语法
    DELETE FROM 表 WHERE子句
  • 例如:

a.删除选中记录

在这里插入图片描述

b.删除全部记录

在这里插入图片描述

删除记录时的同样要注意完整性约束错误


3.数据查询语言——DQL(DQL DATA QUERY LANGUAGE)

详细的DQL说明请看这篇文章: MySQL语句——数据查询语言DQL详解

  • 基本SELECT语句语法 :
    SELECT [DISTINCT]{*|column|expression [alias],…} FROM table where子句;
  • 注意:
    1. SELECT子句表示所需检索的数据列。
    2. FROM子句 表示检索的数据来自哪个表。
  • 举例:
    在这里插入图片描述

4.数据控制语言——DCL (DATA CONTROL LANGUAGE )

  • GRANT
  • REVOKE

5.事务处理语言——TPL (TRANSACTION PROCESS LANGUAGE )

关于TPL的详解请看这篇文章: mySql事务处TPL的小总结

  • 事务处理语言:Transaction Process Language ,简称TPL, 主要用来对组成事务的DML语句的操作结果进行确认或取消。 确认也就是使DML操作生效,使用提交(COMMIT)命令实现; 取消也就是使DML操作失效,使用回滚(ROLLBACK)命令实现。

  • 事务的自动提交模式

    1. mysql中的事务是自动提交的,即每一个sql语句后默认加COMMIT语句
    2. 查看mysql的事务自动提交模式: SHOW VARIABLES LIKE 'autocommit’
    3. 修改mysql的自动提交模式
      SET AUTOCOMMIT=1 表示开启
      SET AUTOCOMMIT=0 表示关闭
  • MySQL的事务处理主要有两种方法

    1. 用begin,rollback,commit来实现:
      begin开始一个事务
      rollback事务回滚
      commit 事务提交

    2. 直接用set来改变MySQL的自动提交模式
      MySQL默认是自动提交的,也就是你提交一个sql,就直接执行!可以通过set autocommit = 0 禁止自动提交set autocommit = 1 开启自动提交来实现事务的处理。

    但要注意当用set autocommit = 0 的时候,以后所有的sql都将作为事务处理,直到用commit确认或 rollback结束,注意当结束这个事务的同时也开启了新的事务!按第一种方法只将当前的做为一个事务!

看官,如果觉得这篇文章还不错,点个赞加个关注再走呗 ^ - ^
MySql系列文章:

  1. MySql数据库基本操作(一)
  2. MySql数据库管理操作基本语句小结
  3. MySql中建表时约束条件的总结
  4. MySql中对数据类型的总结
  5. mySql事务处理TPL的小总结
  6. MySQL语句——数据查询语言DQL详解
  7. MySql数据库中SQL语句的全面总结
  8. MySql中最基本最常用的函数小结
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/73475
 
269 次点击