第17课创建和操纵表

第1课了解SQL                第12课联结表

第2课检索数据                第13课创建高级联结

第3课排序检索数据         第14课组合查询

第4课过滤数据                第15课插入数据

第5课高级数据过滤         第16课更新删除数据

第6课用通配符进行过滤  第17课创建和操纵表

第7课创建计算字段         第18课使用视图

第8课使用函数处理数据

第9课汇总数据

第10课分组数据

第11课使用子查询


创建表:CREATE TABLE语句

        CREATE TABLE Products ( prod_id CHAR(10) NOT NULL, vend_id CHAR(10) NOT NULL, prod_name CHAR(254) NOT NULL, prod_price DECIMAL(8,2) NOT NULL, prod_desc VARCHAR(1000) NULL );    对于 MySQL,varchar 必须替换为 text。

        在创建新的表时,指定的表名必须不存在,否则会出错。防止意外覆 盖已有的表,SQL 要求首先手工删除该表,然 后再重建它,而不是简单地用创建表语句覆盖它。

使用NULL值:允许 NULL 值的列也允许在插 入行时不给出该列的值。不允许 NULL 值的列不接受没有列值的行,换句话说,在插入或更新行时,该列必须有值。

        CREATE TABLE Vendors ( vend_id CHAR(10) NOT NULL, vend_name CHAR(50) NOT NULL, vend_address CHAR(50) , vend_city CHAR(50) , vend_state CHAR(5) , vend_zip CHAR(10) , vend_country CHAR(50) );   NULL 为默认设置,如果不指定 NOT NULL,就认为指定的是 NULL。只有不允许NULL 值的列可作为主键,允许 NULL 值的列不能作为唯一标识。

指定默认值:指定默认值后,在插入行时如果不给出值,DBMS 将自动采用默认值。

        CREATE TABLE OrderItems ( order_num INTEGER NOT NULL, order_item INTEGER NOT NULL, prod_id CHAR(10) NOT NULL, quantity INTEGER NOT NULL DEFAULT 1, item_price DECIMAL(8,2) NOT NULL );

        默认值经常用于日期或时间戳列。例如,通过指定引用系统日期的函数或变量,将系统日期用作默认日期。MySQL 用户指定 DEFAULT CURRENT_DATE()。

        

更新表结构(列):ALTER TABLE 语句

        使用 ALTER TABLE 要极为小心,应该在进行改动前做完整的备份(表结构和数据的备份)。数据库表的更改不能撤销,如果增加了不需要的列,也许无法删除它们。如果删除了不应该删除的列,可能会丢失该列中的所有数据。1,理想情况下,应该在表的设计过程中充分考虑未来可能的需求,避免今后对表的结构做大改动。2,所有的 DBMS 都允许给现有的表增加列,不过对所增加列的数据类型 (以及 NULL 和 DEFAULT 的使用)有所限制。3,许多 DBMS 不允许删除或更改表中的列。4,多数 DBMS 允许重新命名表中的列。4,许多 DBMS 限制对已经填有数据的列进行更改,对未填有数据的列几 乎没有限制。

        增加列:ALTER TABLE Vendors ADD vend_phone CHAR(20);  给 Vendors 表增加一个名为 vend_phone 的列,其数据类型 为 CHAR。

         删除列:ALTER TABLE Vendors DROP COLUMN vend_phone;   给 Vendors 表删除一个名为 vend_phone 的列。

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

删除表:DROP TABLE 语句

        DROP TABLE CustCopy;  删除 CustCopy 表,而不是其内容。删除表没有确认,也不能撤销,执行这条语句将永久删除该表。

重命名表:RENAME 语句

        RENAME TABLE old_table_name TO new_table_name;   旧表( old_table_name)必须存在,而新表( new_table_name)一定不存在。如果新表存在,该语句将失败。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挚艾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值