SQL语法基础之DROP语句

                                     作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.查看DROP帮助信息

mysql> ? DROP
Many help items for your request exist.
To make a more specific request, please type 'help <item>',
where <item> is one of the following
topics:
ALTER TABLE
DEALLOCATE PREPARE
DROP DATABASE
DROP EVENT
DROP FUNCTION
DROP FUNCTION UDF
DROP INDEX
DROP PROCEDURE
DROP RESOURCE GROUP
DROP ROLE
DROP SERVER
DROP SPATIAL REFERENCE SYSTEM
DROP TABLE
DROP TABLESPACE
DROP TRIGGER
DROP USER
DROP VIEW mysql>
mysql>

二.DROP  DATABASE

  DROP DATABASE语句用来删除数据库操作,即删除了数据库也删除数据库里的所有表。

1>.查看DROP DATABASE的帮助信息

mysql> ? DROP DATABASE
Name: 'DROP DATABASE'
Description:
Syntax:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name DROP DATABASE drops all tables in the database and deletes the
database. Be very careful with this statement! To use DROP DATABASE,
you need the DROP privilege on the database. DROP SCHEMA is a synonym
for DROP DATABASE. *Important*: When a database is dropped, privileges granted specifically for the
database are not automatically dropped. They must be dropped manually.
See [HELP GRANT]. IF EXISTS is used to prevent an error from occurring if the database
does not exist. URL: http://dev.mysql.com/doc/refman/8.0/en/drop-database.html mysql>

mysql> ? DROP DATABASE

2>.删除数据库的操作将删除改数据库所在文件夹乳腺癌格式的文件,以及db.opt文件

mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| A1 |
| A2 |
| A3 |
| course |
| day03 |
| devops |
| information_schema |
| mysql |
| performance_schema |
| sys |
| yinzhengjie |
+--------------------+
11 rows in set (0.00 sec) mysql>
mysql> DROP DATABASE A1;              #删除一个已经存在的库,由于我知道该库肯定存在,因此这里我就没有使用判断语句!
Query OK, 1 row affected (0.00 sec) mysql>
mysql> DROP DATABASE IF EXISTS A2;        #删除一个库如果你不确定该库是否存在时,你可以使用判断语句,既然改库不存在你也不怕报错啦~
Query OK, 1 row affected (0.01 sec) mysql>
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| A3 |
| course |
| day03 |
| devops |
| information_schema |
| mysql |
| performance_schema |
| sys |
| yinzhengjie |
+--------------------+
9 rows in set (0.00 sec) mysql>

三.DROP INDEX语句

  DROP INDEX 语句是用来删除索引操作的

1>.查看DROP INDEX语句的帮助信息

mysql> ? DROP INDEX
Name: 'DROP INDEX'
Description:
Syntax:
DROP INDEX index_name ON tbl_name
[algorithm_option | lock_option] ... algorithm_option:
ALGORITHM [=] {DEFAULT|INPLACE|COPY} lock_option:
LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE} DROP INDEX drops the index named index_name from the table tbl_name.
This statement is mapped to an ALTER TABLE statement to drop the index.
See [HELP ALTER TABLE]. To drop a primary key, the index name is always PRIMARY, which must be
specified as a quoted identifier because PRIMARY is a reserved word: DROP INDEX `PRIMARY` ON t; URL: http://dev.mysql.com/doc/refman/8.0/en/drop-index.html mysql>

mysql> ? DROP INDEX

2>.案例展示

mysql> SHOW CREATE TABLE teacher;
+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| teacher | CREATE TABLE `teacher` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) DEFAULT NULL,
`course_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `index_teacher_id_unique` (`id`),
UNIQUE KEY `index_teacher_id_comment` (`id`) COMMENT '这就是创建一个唯一索引而已!',
KEY `teacher_course` (`course_id`),
KEY `index_teacher_id` (`id`),
KEY `index_teacher_id_and_name` (`id`,`name`),
CONSTRAINT `teacher_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 |
+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec) mysql>
mysql> DROP INDEX index_teacher_id_and_name ON teacher;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql>
mysql> SHOW CREATE TABLE teacher;
+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| teacher | CREATE TABLE `teacher` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) DEFAULT NULL,
`course_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `index_teacher_id_unique` (`id`),
UNIQUE KEY `index_teacher_id_comment` (`id`) COMMENT '这就是创建一个唯一索引而已!',
KEY `teacher_course` (`course_id`),
KEY `index_teacher_id` (`id`),
CONSTRAINT `teacher_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 |
+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec) mysql>

四.DROP TABLE语句

  DROP TABLE 语句用来删除一个或多个表操作,当然也可以删除临时表。

1>.查看帮助信息

mysql> ?  DROP TABLE
Name: 'DROP TABLE'
Description:
Syntax:
DROP [TEMPORARY] TABLE [IF EXISTS]
tbl_name [, tbl_name] ...
[RESTRICT | CASCADE] DROP TABLE removes one or more tables. You must have the DROP privilege
for each table. Be careful with this statement! It removes the table definition and all
table data. For a partitioned table, it permanently removes the table
definition, all its partitions, and all data stored in those
partitions. It also removes partition definitions associated with the
dropped table. DROP TABLE causes an implicit commit, except when used with the
TEMPORARY keyword. See
http://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html. *Important*: When a table is dropped, privileges granted specifically for the table
are not automatically dropped. They must be dropped manually. See [HELP
GRANT]. If any tables named in the argument list do not exist, the statement
fails with an error indicating by name which nonexisting tables it was
unable to drop, and no changes are made. Use IF EXISTS to prevent an error from occurring for tables that do not
exist. Instead of an error, a NOTE is generated for each nonexistent
table; these notes can be displayed with SHOW WARNINGS. See [HELP SHOW
WARNINGS]. IF EXISTS can also be useful for dropping tables in unusual
circumstances under which there is an entry in the data dictionary but
no table managed by the storage engine. (For example, if an abnormal
server exit occurs after removal of the table from the storage engine
but before removal of the data dictionary entry.) The TEMPORARY keyword has the following effects: o The statement drops only TEMPORARY tables. o The statement does not cause an implicit commit. o No access rights are checked. A TEMPORARY table is visible only with
the session that created it, so no check is necessary. Using TEMPORARY is a good way to ensure that you do not accidentally
drop a non-TEMPORARY table. The RESTRICT and CASCADE keywords do nothing. They are permitted to
make porting easier from other database systems. DROP TABLE is not supported with all innodb_force_recovery settings.
See
http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html. URL: http://dev.mysql.com/doc/refman/8.0/en/drop-table.html mysql>

mysql> ? DROP TABLE

2>.RESTRICT/CASCADE两个关键词在5.7版本中没用

mysql> SHOW TABLES;
+--------------+
| Tables_in_A3 |
+--------------+
| B3 |
| v_B3 |
+--------------+
2 rows in set (0.00 sec) mysql>
mysql> DROP TABLE B3;                      #删除已经存在的表
Query OK, 0 rows affected (0.01 sec) mysql>
mysql> DROP TABLE IF EXISTS B3;                #删除一张表,我这里加了判断条件,意思是当这张表存在就删除,若不存在就不执行删除操作,这样可以避免报错~
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql>
mysql> SHOW TABLES;
+--------------+
| Tables_in_A3 |
+--------------+
| v_B3 |
+--------------+
1 row in set (0.00 sec) mysql>

五.DROP VIEW语句

  DROP VIEW语句用来删除一个或多个视图。

1>.查看DROP VIEW的帮助信息

mysql> ? DROP VIEW
Name: 'DROP VIEW'
Description:
Syntax:
DROP VIEW [IF EXISTS]
view_name [, view_name] ...
[RESTRICT | CASCADE] DROP VIEW removes one or more views. You must have the DROP privilege
for each view. If any views named in the argument list do not exist, the statement
fails with an error indicating by name which nonexisting views it was
unable to drop, and no changes are made. *Note*: In MySQL 5.7 and earlier, DROP VIEW returns an error if any views named
in the argument list do not exist, but also drops all views in the list
that do exist. Due to the change in behavior in MySQL 8.0, a partially
completed DROP VIEW operation on a MySQL 5.7 master fails when
replicated on a MySQL 8.0 slave. To avoid this failure scenario, use IF
EXISTS syntax in DROP VIEW statements to prevent an error from
occurring for views that do not exist. For more information, see
http://dev.mysql.com/doc/refman/8.0/en/atomic-ddl.html. The IF EXISTS clause prevents an error from occurring for views that
don't exist. When this clause is given, a NOTE is generated for each
nonexistent view. See [HELP SHOW WARNINGS]. RESTRICT and CASCADE, if given, are parsed and ignored. URL: http://dev.mysql.com/doc/refman/8.0/en/drop-view.html mysql>
mysql>

mysql> ? DROP VIEW

2>.同样,RESTRICT/CASCADE两个关键词在MySQL5.7依旧也是无效

mysql> SHOW TABLES;
+--------------+
| Tables_in_A3 |
+--------------+
| v_B3 |
+--------------+
1 row in set (0.00 sec) mysql>
mysql> DROP VIEW v_B3;
Query OK, 0 rows affected (0.00 sec) mysql>
mysql> SHOW TABLES;
Empty set (0.00 sec) mysql>
mysql> DROP VIEW IF EXISTS v_B3;
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql>
mysql> SHOW TABLES;
Empty set (0.00 sec) mysql>
mysql>

SQL语法基础之DROP语句的更多相关文章

  1. SQL语法基础之ALTER语句

    SQL语法基础之ALTER语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看ALTER的帮助信息 mysql> ? ALTER Many help items fo ...

  2. SQL语法基础之DELETE语句

    SQL语法基础之DELETE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.查看DELETE的帮助信息 mysql> ? DELETE Na ...

  3. SQL语法基础之CREATE语句

    SQL语法基础之CREATE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.使用“?”来查看MySQL命令的帮助信息 mysql> ? CR ...

  4. SQL语法基础之INSEART语句

    SQL语法基础之INSEART语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.查看INSERT方法的帮助信息 mysql> ? INSERT ...

  5. SQL语法基础之UPDATE语句

    SQL语法基础之UPDATE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看UPDATE语句的帮助信息 1>.查看UPDATE的帮助信息 mysql> ? ...

  6. SQL语法基础之高级应用

    SQL语法基础之高级应用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.存储过程与函数 1>.CREATE PROCEDURE 用来创建存储过程 mysql> ? ...

  7. SQL语法基础之SELECT

    SQL语法基础之SELECT 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.SELECT查看帮助信息 1>.查看SELECT命令的帮助信息 mysql> ? SEL ...

  8. SQL——语法基础篇(上)

    用数据库的方式思考SQL是如何执行的 虽然 SQL 是声明式语言,我们可以像使用英语一样使用它,不过在 RDBMS(关系型数据库管理系统)中,SQL 的实现方式还是有差别的.今天我们就从数据库的角度来 ...

  9. oracle PL/SQL语法基础

    目录 数据类型 定义变量 PL/SQL控制结构 参考资料 Oracle10g数据类型总结 PL/SQL之基础篇 数据类型 学习总结 字符类型 char.nchar.varchar.nvarchar:有 ...

随机推荐

  1. python爬虫requests模块

    requests库的七个主要方法 1. requests.requests(method, url, **kwargs) 构造一个请求,支撑以下各方法的基础方法 method:请求方式,对应get/p ...

  2. BZOJ1823[JSOI2010]满汉全席——2-SAT+tarjan缩点

    题目描述 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而能够烹饪出经过 ...

  3. HDU1505 City Game(算竞进阶习题)

    写了1506顺便写下1505.. 还是求矩形面积,不过要预处理一下以每一个F为底的高度,然后想左右扩展到最大长度即为矩形的长.. 计算方法有点绕,令l[i]表示i的左边界,那么初始化l[i] = i. ...

  4. Katu Puzzle POJ - 3678(水2 - sat)

    题意: 有n个未知量,m对未知量之间的关系,判断是否能求出所有的未知量且满足这些关系 解析: 关系建边就好了 #include <iostream> #include <cstdio ...

  5. Concurrent usage detected

    同一个公司里,使用studio 同时进行开发,而且账号还是同一个,会出现这种问题 也有说封掉8732端口就可以解决这个问题的,但是我尝试的是不行的 一直以来用的一个笨的但是有效的办法是:启动studi ...

  6. flask报错:werkzeug.routing.BuildError: Could not build url for endpoint 'index'. Did you mean 'single' instead?

    错误代码 参考:https://blog.csdn.net/qq_27468251/article/details/81359701 改为

  7. 【BZOJ3653】谈笑风生(长链剖分)

    [BZOJ3653]谈笑风生(长链剖分) 题面 BZOJ 洛谷 权限题啊.... 题解 首先根据题目给的条件,发现\(a,b\)都要是\(c\)的父亲. 所以这三个点是树上的一条深度单增的链. 因为\ ...

  8. 【COGS2652】秘术「天文密葬法」(长链剖分,分数规划)

    [COGS2652]秘术「天文密葬法」(长链剖分,分数规划) 题面 Cogs 上面废话真多,建议直接拉到最下面看一句话题意吧: 给个树,第i个点有两个权值ai和bi,现在求一条长度为m的路径,使得Σa ...

  9. 【BZOJ2817】[ZJOI2012]波浪(动态规划)

    [BZOJ2817][ZJOI2012]波浪(动态规划) 题面 BZOJ 洛谷 题解 首先这个差值最大也就是\(n^2\)级别的. 那么这样子就可以压进状态啦. 我们把这个操作看成一个个加数的操作,按 ...

  10. mysql安转过程中出现的问题! Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exis

    net start mysql启动失败,报错信息如上,因缺少mysql这个库 所以跳过 在my.ini中添加 --skip-grant-tables 再启动mysql 然后进入mysql 倒入一个从其 ...