SQL 命令 (DDL, DML, DCL, TCL, DQL)2025年4月17日 | 阅读 11 分钟
SQL 命令的类型SQL 命令有四种类型:DDL、DML、DCL、TCL。 ![]() 1. 数据定义语言 (DDL)
以下是一些属于 DDL 的命令: ![]() a. CREATE 用于在数据库中创建新表。 语法 <在上述语句中,TABLE_NAME 是表的名称,COLUMN_NAMES 是列的名称,DATATYPES 用于定义数据类型。 示例 b. DROP: 用于删除表中的结构和存储的记录。 语法:永久从内存中删除表 CASCADE CONSTRAINT 是一个可选参数,用于引用正在被删除的表的表。如果未指定 CASCADE CONSTRAINT 并尝试删除有子表记录的表,则会发生错误。因此,通过使用 CASCADE CONSTRAINT,可以删除所有子表的外键。 示例 c. ALTER: 用于修改数据库的结构。此更改可以是修改现有属性的特征,也可以是添加新属性。 以下是可以使用 ALTER 命令进行的修改列表:
在表中添加新列 使用 ALTER TABLE 命令,我们可以向现有表中添加新列。 语法: 向表中添加新列 在上述语法中, table_name 对应于表的名称,column-definition 对应于列名和数据类型的有效规范。 例子 语法:从表中添加多个列。 ALTER TABLE table_name ADD column_name1, column_name2; 示例 在表中添加约束 您还可以向现有表添加约束。例如:如果您在创建表时忘记添加主键约束,您可以使用 ALTER TABLE 语句添加它。 语法:从表中添加约束。 示例 在向现有表添加新列/关系时,应牢记以下几点:
使用 ALTER 修改列 使用 ALTER TABLE,我们可以修改现有表中的列和约束。这些语句可以增加或减少列宽度,并将列从强制改为可选。 语法 示例 SQL 不允许减小列宽度,即使所有列值都具有有效长度。因此,必须将值设置为 NULL 才能减小列的宽度。即使 ADHAR_NUM 列中的所有值都小于 12 个字符,也无法将 ADHAR_NUM 列的宽度从 18 减小到 12,除非 name 列中的所有值都为 null。如果表中该列没有记录,则可以将该列从 NULL 修改为 NOTNULL 约束。 示例 使用 ALTER 删除列和约束 您不仅可以修改列,还可以完全删除它们(如果它们在表中不再需要)。使用 ALTER 命令中的 DROP 语句,我们还可以从表中删除约束。 语法:从表中删除列。 示例 语法:从表中删除多个列。 示例 语法:从表中删除约束。 示例 在删除列/关联时,应牢记以下几点:
示例
示例:禁用约束 示例:启用约束
示例 重命名表 SQL 提供了一种使用 ALTER TABLE 语句更改表名的方法。 语法 示例 d. TRUNCATE: 用于删除表中的所有行并释放包含该表的空间。 语法 示例 e. RENAME: 用于重命名表。 语法 在上述语法中,RENAME 是一个命令,<OLD_TABLENAME> 是表的名称,<NEW_TABLENAME> 是您更改的名称。 示例 2. 数据操作语言
以下是一些属于 DML 的命令: ![]() a. INSERT: INSERT 语句是一个 SQL 查询。它用于将数据插入到表的行中。要向表中插入新行,您必须拥有该表的 INSERT 权限。 在将数据插入表时应考虑以下几点:
语法:向表中添加行 或 在上述语法中,TABLE_NAME 是将插入数据的表名。(col1, col2, col3, col N) 是可选的,是将在其中插入值的列的名称。value1 对应于将要插入到 col1 的值,类似地,value2 对应于将要插入到 col2 的值,依此类推。 例如 语法:向表中添加多行 例如 b. UPDATE: 此命令用于更新或修改表中列的值。 语法:更新表中的记录 在上述语法中,table_name 是表的名称,column_name 是表中要修改的列的名称,value1 对应于有效的 SQL 值。“WHERE”是一个条件,它限制了更新的行,对于这些行,指定的条件为真。如果未指定条件,则 SQL 会更新表中的所有行。它包含比较和逻辑运算符等。 在执行 UPDATE 语句时应记住以下几点:
例如 c. DELETE: 用于从表中删除一行或多行。要从表中删除行,它必须在您的模式中,或者您必须拥有 DELETE 权限。 语法:从表中删除记录 在上述语法中,condition 用于 WHERE 子句以过滤要实际删除的记录。您可以从表中删除零行或多行。如果您不使用 WHERE 条件,则 DELETE 语句将删除表中的所有行。您也可以在 WHERE 子句中使用一个或多个条件。 例如 d. SELECT: 这与关系代数中的投影操作相同。它用于根据 WHERE 子句描述的条件选择属性。 语法:用于从表中检索记录 例如 3. 数据控制语言DCL 命令用于授予和撤销任何数据库用户的权限。 以下是一些属于 DCL 的命令: ![]() 语法 在上述语法中,obj_priv> 是 DML 语句,如 INSERT、DELETE、UPDATE 和 SELECT,<obj_name> 是表、视图等,username 是授权用户的姓名。 示例 b. REVOKE: 用于撤销用户的权限。 语法 在上述语法中,obj_priv> 是 DML 语句,如 INSERT、DELETE、UPDATE 和 SELECT,<obj_name> 是表、视图等,username 是要撤销权限的用户的姓名。 示例 4. 事务控制语言事务是原子的,即要么所有语句都成功,要么没有语句都成功。有许多事务控制语句可用,允许我们控制此行为。这些语句可确保数据一致性。TCL 命令只能与 INSERT、DELETE 和 UPDATE 等 DML 命令一起使用。 这些操作会自动提交到数据库,因此在创建表或删除表时无法使用它们。 以下是一些属于 TCL 的命令: ![]() a. COMMIT: COMMIT 命令用于将所有事务保存到数据库。它使您的更改永久化并结束事务。 语法:永久保存更改 示例 b. ROLLBACK: ROLLBACK 命令用于撤销尚未保存到数据库的事务。Rollback 也用于结束当前事务并开始新事务。 考虑一种情况,您已完成一系列 INSERT、UPDATE 或 DELETE 语句,但尚未显式提交它们,并且遇到了计算机故障等问题,那么 SQL 将自动回滚任何未提交的工作。 语法:撤销更改 示例 c. SAVEPOINT: 用于将事务回滚到某个点,而无需回滚整个事务。 语法 在上述语法中,SAVEPOINT_NAME 是为保存点指定的名称。 要选择性地回滚大型事务中的一组语句,请使用以下命令。 示例 SQL 命令多项选择题1. 哪个命令用于显示表中的记录?
答案:C 说明 SELECT 是一个 DML 语句,用于从表中选择数据。 2. 以下语句在表中执行什么操作? UPDATE student SET name = "meet" WHERE roll_no =101;
答案:D 说明 UPDATE 语句用于更新表的值。上述语句用于更新 student 表中 roll_no =101 的 student 姓名。 3. 以下哪个不是 SQL 中的事务控制语言?
答案:A 说明 DELETE 是一个 DML 语句,用于从表中删除数据。 4. 哪个命令用于向现有表中添加列?
答案:A 说明 ALTER TABLE 用于修改现有表。在此,ALTER TABLE 命令用于向现有表中添加列。 5. 以下语句在表中执行什么操作? INSERT INTO student (name,roll_no) VALUES( "meet",101);
答案:B 说明 INSERT 语句用于向表中插入值。我们也可以同时插入多行。 6. 删除表中的数据后,哪个命令用于维护表的结构?
答案:D 说明 TRUNCATE 语句用于从表中删除数据,但结构保持不变。 7. 哪个命令用于重命名表中的列?
答案:C 说明 这是一个 DDL 语句,用于将旧名称重命名为新名称。它也与 ALTER 一起用于更改表名。 下一主题DBMS SQL 运算符 |
我们请求您订阅我们的新闻通讯以获取最新更新。