• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MySQL语句整理及汇总介绍

    SQL(Structured Query Language)语句,即结构化查询语言,是操作和检索关系数据库的标准语言。SQL语句一般分为以下几种:

    1. DCL(Database Control Language,数据控制语言)语句:主要由GRANT和REVOKE两个关键字完成
    2. DDL(Database Definition Language,数据定义语言)语句:主要由CREATE、ALTER、DROP和TRUNCATE四个关键字完成
    3. DML(Database Manipulation Language,数据操作语言)语句:主要由INSERT、UPDATE和DELETE三个关键字完成
    4. 查询语句:主要由SELECT语句完成
    5. 事务控制语句:主要由COMMIT、ROLLBACK和SAVEPOINT三个关键字完成

    注:SQL语句不区分大小写,所以create和CREATE是相同的

    一.DCL语句

    DCL语句就是对用户进行授权和授权收回的操作,可以对不同的用户的权限进行控制,增加数据库安全性,进行数据库的维护。一般都是数据库管理员使用超级用户root进行操作。

    MySQL的权限命令是grant,权限撤销的命令时revoke;

    1.grant授权格式:

    grant 权限列表 on 库.表 to 用户名@'ip' identified by "密码";

    2.revoke回收权限格式:

    revoke 权限列表 on 库.表 from 用户名@'ip';

    二.DDL语句

    数据库对象:

    表(table)、数据字典、约束(constraint)、视图(view)、索引(index)、函数(function)、存储过程(procedure)、触发器(trigger)

    CREATE、ALTER、DELETE关键字分别是创建、修改和删除数据库对象的,此处使用我们使用最多的对表的操作来举例

    1.CREATE:

    CREATE TABLE [模式名.] 表名(
    该表中的列定义
    );

    e.g.

    CREATE TABLE test(
    StuId VARCHAR(8) PRIMARY KEY,
    StuName VARCHAR(30) NOT NULL,
    StuAge SMALLINT NOT NULL,
    StuBirth DATETIME
    );

    注:查看表结构:DESCRIBE 表名;

    2.ALTER:

    1)添加列:

    ALTER TABLE 表名
    ADD column columnName1 datatype [default expr] [FIRST|AFTER colName];
    columnName1:新添加的列名;
    datatype:数据类型;
    default expr:完整性约束;
    FIRST|AFTER colName:插入位置,默认是插入在最后一列,FIRST是在第一列,AFTER colName是在指定列后插入

    e.g.

    ALTER TABLE test
    ADD column StuMajor VARCHAR(20) NOT NULL AFTER StuName;

    2)修改列

    ALTER TABLE 表名 CHANGE oldName newName datatype; 

    e.g.

    ALTER TABLE test CHANGE StuBirth Birthday year;

    3)删除列

    ALTER TABLE 表名 DROP column columnName;

    e.g.

    ALTER TABLE test DROP column StuMajor;

    4)修改表名

    ALTER TABEL 表名 RENAME TO 新表名;

    e.g.

    ALTER TABLE test RENAME TO student;

    3.DROP

    删除表
    DROP TABLE 表名;

    e.g.

    DROP TABLE student;

    4.TRUNCATE

    删除表内所有数据但保留表的结构,叫做“截断”
    TRUNCATE TABLE 表名;

    e.g.

    TRUNCATE TABLE student;

    三.DML语句

    1.INSERT

    标准SQL语句只允许一次插入一条数据,但MySQL对其进行扩展使其可以一次插入多条数据

    插入一条数据:

    INSERT INTO 表名 VALUES(value1, value2, ...);

    插入多条数据:

    INSERT INTO 表名 VALUES(value1,value2,...),(value1,value2,...),(value1,value2,...);

    e.g.

    INSERT INTO student VALUES(‘001','Lisa',20,1997),(‘002','Rose',21,1996);

    2.UPDATE

    UPDATE 表名 SET COLUMN1 = VALUE1[, COLUMN2 = VALUE2]...
    [WHERE CONDITION];

    e.g.将所有年龄大于20岁的学生的年龄+1

    UPDATE student SET StuAge = StuAge+1 WHERE StuAge>20;

    3.DELETE

    DELETE FROM 表名 [WHERE CONDITION];

    e.g.将所有1997年出生的学生信息删除

    DELETE FROM student WHERE Birthday = 1997;

    四.查询语句

    1.单表查询:

    SELECT COLUMN1, COLUMN2...
    FROM 数据源
    [WHERE CONDITION]
    [GROUP BY columnName]
    [ORDER BY columnName DESC|ASC]

    e.g.将计算机科学专业的学生选出来并按照学号降序排列,只显示学生姓名

    SELECT StuName FROM student 
    WHERE StuMajor = 'CS'
    ORDER BY StuId DESC;

    2.多表查询:

    1)简单的外连接方式

    SELECT VALUE1[,VALUE2]...
    FROM tableName1,tableName2
    WHERE tableName1.column1 = tableName2.column2[AND ...];
    WHERE 后跟的是连接条件和查询条件

    2)自连接:有时需要自己和自己进行连接,叫做自连接

    e.g.

    有如下的表temp

    CREATE TABLE emp(
    id INT AUTO_INCRETMENT PRIMARY KEY,
    name VARCAHR(255),
    mangerId INT,
    FOREIGN KEY(managerId) references temp(id)
    );

    其中有四条记录

    id                     name                 managerId
    1                       aaa                        null
    2                       bbb                         1
    3                       ccc                          1
    4                       ddd                         1

    对该表进行查询操作:

    SELECT employee.id, employee.name 员工名, manager.name 经理名
    FROM emp employee, emp manager
    WHERE employee.managerId = manager.id;

    该查询语句使用自连接显示员工和经理的关系,其中:

    更多的多表连接可以参考:
    https://www.jb51.net/article/154006.htm

    五.事务处理

    1.事务是由一步或几步数据库操作序列组成的逻辑执行单元。

    这系列操作要么全部执行,要么全部放弃执行。程序和事务是完全两种不同的概念。一般而言,一段程序中可能包含多个事务。在MySQL中,有多种引擎,最常用的两个引擎:InnoDB和MyISAM,其中InnoDB是支持事务的,而MyISAM是不支持的,可以在config配置文件中对其进行修改。

    2.事务的四个特性:

    这四个特性也叫ACID性

    3.数据库的事务由一组DML语句、一条DDL语句和一条DCL语句组成

    4.事务的提交:

    MySQL默认关闭事务(自动提交),在默认情况下,用户输入一条DML语句也会提交该操作,为了开启事务可以通过以下语句对自动提交进行设置

    SET AUTOCOMMIT = {0|1}       0是关闭自动提交(开启事务),1是开启自动提交(关闭事务)

    5.事务的回滚(rollback)

    事务包含的任意一个数据库操作执行失败后执行回滚事务,将该事务中进行的操作全部失效。两种方式:

    6.例子:

    若只是临时开启一个事务可以通过:start transaction或begin开启临时事务,在其之后的DML语句都不会立即执行,直到出现事务的提交或回滚才结束事务。

    e.g.1

    BEGIN;
    INSERT INTO student VALUES(NULL,'001','aaa');
    INSERT INTO student VALUES(NULL,'002','bbb');
    INSERT INTO student VALUES(NULL,'003','ccc');
    SELECT * FROM student;                ①
    ROLLBACK;
    SELECT * FROM student;                ②

    ①语句查询的结果中包含插入的数据,但如果此时在别的命令行窗口中执行该语句,也不会看到以上的三条数据,体现了事务的隔离性,这三条数据其实并没有写入物理数据库;

    在执行了回滚操作后,在②的查询语句的结果中看不到begin之后的那三条数据

    e.g.2

    INSERT INTO student VALUES(NULL,'001','aaa');
    INSERT INTO student VALUES(NULL,'002','bbb');
    SAVEPOINT p;
    INSERT INTO student VALUES(NULL,'003','ccc');
    SELECT * FROM student;                ①
    ROLLBACK TO p;
    SELECT * FROM student;                ②

    MySQL还提供关键字SAVEPOINT设置中间点,可以设置回滚的位置,①处的查询语句结果中包含三条插入数据的结果,但②处的查询结果中不包含中间点p之后插入的数据。需要注意的是,回到中间点的回滚不会结束事务。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    您可能感兴趣的文章:
    • Mysql常用sql语句汇总
    • MySql常用操作SQL语句汇总
    • 超详细的SQL语句语法汇总
    • SQL语句(T-SQL汇总) 用T-SQL画出这些图形
    • MySQL DML语句整理汇总
    • Mysql 原生语句中save or update 的写法汇总
    • 基于SQL中的数据查询语句汇总
    • MySQL最常见的操作语句小结
    • SQl 语句(常见)
    • 数据库常用的sql语句汇总
    上一篇:Mysql两表联合查询的四种情况总结
    下一篇:B-Tree的性质介绍
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    MySQL语句整理及汇总介绍 MySQL,语句,整理,及,汇总,