软件测试|SQL如何创建删除表,你会了吗?

简介: 软件测试|SQL如何创建删除表,你会了吗?

前言

之前我们介绍了SQL中如何创建删除使用数据库,本篇文章我们将介绍创建删除表等操作。

创建表(CREATE TABLE)

表(Table)是以行和列形式组织的数据的集合,表被创建以后,列数是固定的,但是行数可以改变。创建表时,需要给表命名,并定义它的列以及每一列的类型。

SQL CREATE TABLE 语句用于创建新的表。

CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
   PRIMARY KEY( one or more columns )
);

CREATE TABLE 是 SQL 命令,告诉数据库你想创建一个新的表,它后面紧跟的 table_name 是表的名字。然后在括号中定义表的列,以及每一列的类型,稍后会有更加清晰明了的示例。

PRIMARY KEY 关键字用来指明表的主键。

另外,您也可以使用 CREATE TABLE 和 SELECT 语句的组合来创建现有表的一个副本。

示例

下面的例子将创建一个以 name 为主键的 player 表,该表用来存储一些世界足球运动员的信息。代码如下:

CREATE TABLE website (
    name    VARCHAR(20)      NOT NULL,
    age     INT              NOT NULL,
    position   VARCHAR(20)     NOT NULL,
    club CHAR(3)          NOT NULL   DEFAULT '',
    PRIMARY KEY (`name`)
);

执行 CREATE TABLE 命令以后,你可以根据提示信息来确实表是否创建成功,也可以使用 DESC 命令来查看表的结构,如下所示:


SQL> DESC player;
+---------+---------------------+------+-----+---------+----------------+
| Field   | Type                | Null | Key | Default | Extra          |
+---------+---------------------+------+-----+---------+----------------+
| name    | varchar(20)         | NO   | PRI | NULL    |                |
| age     | INT                 | NO   |     | NULL    |                |
|position | VARCHAR(20)         | NO   |     | NULL    |                |
| country | char(3)             | NO   |     | NULL    |                |
+---------+---------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

如上所示,我们就完成了表的创建。

删除表(DROP TABLE)

不需要使用某个数据表时,您可以将它删除。SQL DROP TABLE 语句用来删除数据表,以及与该表相关的所有数据、索引、触发器、约束和权限。

注:一旦删除了表,那么该表中所有的信息将永远丢失,慎用删除命令

DROP TABLE 语句的基本语法如下:

DROP TABLE table_name;

注:table_name 表示要删除的数据表的名字。

示例

首先验证 player 表是否存在,然后将其从数据库中删除,如下所示:

SQL> DESC player;
+---------+---------------------+------+-----+---------+----------------+
| Field   | Type                | Null | Key | Default | Extra          |
+---------+---------------------+------+-----+---------+----------------+
| name    | varchar(20)         | NO   | PRI | NULL    |                |
| age     | INT                 | NO   |     | NULL    |                |
|position | VARCHAR(20)         | NO   |     | NULL    |                |
| country | char(3)             | NO   |     | NULL    |                |
+---------+---------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

这意味着 player 表是有效的,接着我们使用如下的代码将它删除:

SQL> DROP TABLE player;
Query OK, 0 rows affected (0.01 sec)

现在,如果您再次尝试使用 DESC 命令,那么您将看到以下的错误:

SQL> DESC player;
ERROR 1146 (42S02): Table 'fcbayern.player' doesn't exist

注:fcbayern是我们使用的演示数据库的名字。

总结

本文主要介绍了SQL创建表和删除表的操作,我们在删除表的时候需要特别注意。后面我们将继续介绍SQL中向表格里插入数据等操作。

相关文章
|
7月前
|
SQL 存储 数据库
Python 的安全性和测试:什么是 SQL 注入攻击?如何防范 SQL 注入?
Python 的安全性和测试:什么是 SQL 注入攻击?如何防范 SQL 注入?
104 1
|
7月前
|
SQL 数据库
SQL 中的 NULL 值:定义、测试和处理空数据,以及 SQL UPDATE 语句的使用
NULL 值是指字段没有值的情况。如果表中的字段是可选的,那么可以插入新记录或更新记录而不向该字段添加值。此时,该字段将保存为 NULL 值。需要注意的是,NULL 值与零值或包含空格的字段不同。具有 NULL 值的字段是在记录创建期间留空的字段。
124 0
|
7月前
|
SQL Oracle 关系型数据库
|
7月前
|
SQL 安全 关系型数据库
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
593 8
|
5月前
|
SQL 安全 关系型数据库
使用SQLMap进行SQL注入测试
使用SQLMap进行SQL注入测试
|
6月前
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之如何创建Holo SQL节点
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
38 0
|
7月前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
739 0
|
7月前
|
SQL 关系型数据库 MySQL
Hive【基础知识 02-1】【Hive CLI 命令行工具使用】【准备阶段-建库、建表、导入数据、编写测试SQL脚本并上传HDFS】
【4月更文挑战第7天】Hive【基础知识 02-1】【Hive CLI 命令行工具使用】【准备阶段-建库、建表、导入数据、编写测试SQL脚本并上传HDFS】
91 0
|
SQL 网络安全 数据库
2021年中职“网络安全“江西省赛题—B-4:SQL注入测试(PL)
2021年中职“网络安全“江西省赛题—B-4:SQL注入测试(PL)
97 2
|
7月前
|
SQL 数据挖掘 关系型数据库
「SQL面试题库」 No_87 学生们参加各科测试的次数
「SQL面试题库」 No_87 学生们参加各科测试的次数