《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
还要求指定表的位置;
对于MySQL
,varchar
必须替换为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
都允许给现有的表增加列,不过对所增加列的数据类型(以及NULL
和DEFAULT
的使用)有所限制。 - 许多
DBMS
不允许删除或更改表中的列。 - 多数
DBMS
允许重新命名表中的列。 - 许多
DBMS
限制对已经填有数据的列进行更改,对未填有数据的列几乎没有限制。
使用ALTER TABLE
更改表结构,必须给出下面的信息:
- 在
ALTER TABLE
之后给出要更改的表名(该表必须存在,否则将出错); - 列出要做哪些更改。
复杂的表结构更改一般需要手动删除过程,它涉及以下步骤:
(1)用新的列布局创建一个新表; (2)使用INSERT SELECT
语句(关于这条语句的详细介绍,请参阅第15课)从旧表复制数据到新表。有必要的话,可以使用转换函数和计算字段; (3)检验包含所需数据的新表; (4)重命名旧表(如果确定,可以删除它); (5)用旧表原来的名字重命名新表; (6)根据需要,重新创建触发器、存储过程、索引和外键。 17.3 删除表
删除表(删除整个表而不是其内容)非常简单,使用DROP TABLE
语句即可。
17.4 重命名表
DB2
、MariaDB
、MySQL
、Oracle
和PostgreSQL
用户使用RENAME
语句,SQL Server
用户使用sp_rename
存储过程,SQLite
用户使用ALTER TABLE
语句。
转载地址:https://blog.csdn.net/qq_34170700/article/details/104315342 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月05日 08时14分36秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Format显示为-0.000
2019-04-25
matlab-采样位数与信号强度关系
2019-04-25
matlab-复数与实数相互转换
2019-04-25
脑电产品-时间常数与截止频率相互换算
2019-04-25
matlab-滤波系数生成频响曲线
2019-04-25
安装tensorflow各种报错
2019-04-25
蓝桥python——九数组分数【2015 第五题】
2019-04-25
蓝桥python——六角填数【2014 第七题】
2019-04-25
蓝桥python——奇怪的分式【2014 第六题】
2019-04-25
蓝桥python——马虎的算式【2013 第二题】
2019-04-25
蓝桥python——三羊献瑞【2015 第三题】
2019-04-25
蓝桥python—— 剪邮票【2016 第七题】
2019-04-25
蓝桥python——凑算式【2016 第三题】
2019-04-25
蓝桥python—— 方格填数【2016 第六题】
2019-04-25
蓝桥python—— 换零钞
2019-04-25
3770人是怎么从1500家公司选出海尔智家的?
2019-04-25
那些被苏宁奖励的人、重用的人
2019-04-25
“野味消费”演变趋势洞察
2019-04-25
自救与救他,一家餐饮企业的生死240小时
2019-04-25
“空头”突袭瑞幸 浑水再次折戟?
2019-04-25