《SQL必知必会》| 第17课 创建和操纵表 学习笔记
发布日期:2021-07-25 15:44:18 浏览次数:13 分类:技术文章

本文共 1358 字,大约阅读时间需要 4 分钟。

第17课 创建和操纵表

这一课讲授创建、更改和删除表的基本知识。

17.1 创建表

两种创建表的方式:

  • 多数DBMS都具有交互式创建和管理数据库表的工具。
  • 表也可以直接用SQL语句操纵。

使用交互式工具时实际上就是使用SQL语句。这些语句不是用户编写的,界面工具会自动生成并执行相应的SQL语句。

17.1.1 表创建基础

利用CREATE TABLE创建表,必须给出下列信息:

  • 新表的名字,在关键字CREATE TABLE之后给出;
  • 表列的名字和定义,用逗号分割;
  • 有的DBMS还要求指定表的位置;

对于MySQLvarchar必须替换为text

对于DB2,必须从最后一列中去掉NULL

17.1.2 使用NULL值
  • NULL值就是没有值或缺值。
  • 不允许NULL值的列不接受没有列值的行,即在插入或更新行时,该列必须有值。
  • 每个表列要么是NULL列,要么是NOT NULL列,这种状态在创建时由表的定义规定。
  • NULL为默认设置,如果不指定NOT NULL,就认为指定的是NULL。
提示:主键和NULL值

主键是其值唯一标识表中每一行的列。

  • 只有不允许NULL值的列可作为主键
  • 允许NULL值的列不能作为唯一标识别。
17.1.3 指定默认值

SQL允许指定默认值,在插入行时如果不给出值,DBMS将自动采用默认值。默认值在CREATE TABLE语句的列定义中用关键字DEFAULT指定。

  • 默认值经常用于日期或时间戳列。
提示:多使用DEFAULT而不是NULL值

17.2 更新表

使用ALTER TABLE时需要考虑的事情:

  • 理想情况下,不要在表中包含数据时对其进行更新。
    应该在表的设计过程中充分考虑未来可能的需求,避免今后对表的结构做大改动。
  • 所有的DBMS都允许给现有的表增加列,不过对所增加列的数据类型(以及NULLDEFAULT的使用)有所限制。
  • 许多DBMS不允许删除或更改表中的列。
  • 多数DBMS允许重新命名表中的列。
  • 许多DBMS限制对已经填有数据的列进行更改,对未填有数据的列几乎没有限制。

使用ALTER TABLE更改表结构,必须给出下面的信息:

  • ALTER TABLE之后给出要更改的表名(该表必须存在,否则将出错);
  • 列出要做哪些更改。

复杂的表结构更改一般需要手动删除过程,它涉及以下步骤:

(1)用新的列布局创建一个新表;
(2)使用INSERT SELECT语句(关于这条语句的详细介绍,请参阅第15课)从旧表复制数据到新表。有必要的话,可以使用转换函数和计算字段;
(3)检验包含所需数据的新表;
(4)重命名旧表(如果确定,可以删除它);
(5)用旧表原来的名字重命名新表;
(6)根据需要,重新创建触发器、存储过程、索引和外键。

17.3 删除表

删除表(删除整个表而不是其内容)非常简单,使用DROP TABLE语句即可。

删除表没有确认,也不能撤销,执行这条语句将永久删除该表。

17.4 重命名表

DB2MariaDBMySQLOraclePostgreSQL用户使用RENAME语句,SQL Server用户使用sp_rename存储过程,SQLite用户使用ALTER TABLE语句。

所有重命名操作的基本语法都要求指定旧表名和新表名。

转载地址:https://blog.csdn.net/qq_34170700/article/details/104315342 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:学习笔记 | Ch18 使用视图 view
下一篇:学习笔记 | 并查集

发表评论

最新留言

很好
[***.229.124.182]2024年04月05日 08时14分36秒