day10 -- table create /update /delete

news/2024/10/18 18:27:29/

brief

记录了 表的创建、更改和删除

表的创建

一般有两种创建表的方法:

  • 使用具有交互式创建和管理表的工具(如MySQL workbench);
  • 表也可以直接用MySQL语句操纵。

为了用程序创建表,可使用SQL的CREATE TABLE语句。
当然,最开始学习时我用了创建样例表的脚本 create.sql,这样也是一种方法


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

  • 新表的名字,在关键字CREATE TABLE之后给出;
  • 表列的名字和定义,用逗号分隔。
CREATE TABLE customers
(cust_id      int       NOT NULL AUTO_INCREMENT,cust_name    char(50)  NOT NULL ,cust_address char(50)  NULL ,cust_city    char(50)  NULL ,cust_state   char(5)   NULL ,cust_zip     char(10)  NULL ,cust_country char(50)  NULL ,cust_contact char(50)  NULL ,cust_email   char(255) NULL ,PRIMARY KEY (cust_id)
) ENGINE=InnoDB;
CREATE TABLE customers
(cust_id      int       NOT NULL AUTO_INCREMENT,cust_name    char(50)  NOT NULL ,cust_address char(50)  NULL ,cust_city    char(50)  NULL ,cust_state   char(5)   NULL ,cust_zip     char(10)  NULL ,cust_country char(50)  NULL ,cust_contact char(50)  NULL ,cust_email   char(255) NULL ,PRIMARY KEY (cust_id,cust_name)
) ENGINE=InnoDB;
CREATE TABLE orderitems
(order_num  int          NOT NULL ,order_item int          NOT NULL ,prod_id    char(10)     NOT NULL ,quantity   int          NOT NULL ,item_price decimal(8,2) NOT NULL DEFAULT 10,PRIMARY KEY (order_num, order_item)
) ENGINE=InnoDB;

关于PRIMARY KEY / AUTO_INCREMENT / DEFAULT 关键字这里没做过多记录。

注意事项:

  • 在创建新表时,指定的表名必须不存在,否则将出错
  • 如果你仅想在一个表不存在时创建它,应该在表名后给出IF NOT EXISTS
  • NULL为默认设置,如果不指定NOT NULL,则认为指定的是NULL
  • 空串是一个有效的值,它不是无值。 NULL值用关键字NULL而不是空串指定
  • 每个表只允许一个AUTO_INCREMENT列,而且它必须被索引(如果通过使它成为主键)。
  • 如果一个列被指定为AUTO_INCREMENT,则它需要使用特殊的值吗?你可以简单地在INSERT语句中指定一个值,只要它是唯一的(至今尚未使用过)即可,该值将被用来替代自动生成的值。后续的增量将开始使用该手工插入的值。
  • 让MySQL生成(通过自动增量)主键的一个缺点是你不知道这些值都是谁。可使用last_insert_id()函数获得这个值 :
SELECT last_insert_id()
  • 如果在插入行时没有给出值, MySQL允许指定此时使用的默认值。 默认值用CREATE TABLE语句的列定义中的DEFAULT关键字指定。

表的更新

为更新表定义,可使用ALTER TABLE语句

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

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

  • 所做更改的列表

  • 这条语句给vendors表增加一个名为vend_phone的列,必须明确其数据类型

ALTER TABLE vendors
ADD vend_phone CHAR(20);
  • 删除刚刚添加的列
ALTER TABLE vendors
DROP COLUMN vend_phone;
  • ALTER TABLE的一种常见用途是定义外键
ALTER TABLE orderitems
ADD CONSTRAINT fk_orderitems_orders
FOREIGN KEY (order_num) REFERENCES orders (order_num);

删除表

DROP TABLE customers;

重命名表

RENAME TABLE customers TO new_name;

http://www.ppmy.cn/news/182206.html

相关文章

M F C(七)对话框

概念 与用户进行交互的窗口,它的顶级父类为CWND,对话框上面可以有各种控件,控件也是继承自CWND 基本控件功能对应的类静态文本框显示文本,一般不能接收输入信息CStatic图像控件显示图标、方框、和图元文件CStatic编辑器编辑正文…

VRTX嵌入式操作系统商业传奇

VRTX的历史 VRTX起初是Hunter & Ready公司的产品,公司是由James(Jim) Ready 和 Colin Hunter 在 1980 创立,后来更名成Ready Systems。在历史上VRTX有这样一些重要的贡献:VRTX 在1987年成为最先实现了具有确定性内…

苹果AppStore官方应用审核标准

前言 感谢您付出宝贵的才华与时间来开发iOS应用程程序。从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的事业。我们希望帮助您加入这个成功的组织。这是我们首次发布《应用程序商店评估指导》(App Store Review Guidelines&a…

苹果App Store最新应用审核标准

苹果公司对App Store中的应用审核标准之严格是业界公认的,近日苹果又对审核指南的相关章节进行了修改和完善。 几个比较重要的变化包括:对应用名称和截图进行了限制,必须要和应用的内容和功能相关;使用Apple Pay进行定期付款的应用…

苹果应用审核指南最新

苹果在9月3日对App Store审核指南进行了重大更新,新添加了扩展、HealthKit、HomeKit以及TestFlight相关内容。9月10日新品发布会之后,苹果更新了App Store审核指南,添加Apple Pay相关内容。最近苹果再次添加了关于iOS 8新特性的部分内容。文中…

【苹果群发iMessage推送位置推】软件安装将会按照 Developer Program License Agreement

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

苹果应用商店审核指南中文翻译

前言 感谢您付出宝贵的才华与时间来开发iOS应用程程序。从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的事业。我们希望帮助您加 入这个成功的组织。这是我们首次发布《应用程序商店评估指导》(App Store Review Guidelines&a…

从青铜到王者,代码人生之路 | 凌云时刻

凌云时刻 故事 导读:如果你想听到一个技术天才的故事,那你来错地方了。但是如果你想听听一个邻家小男孩如何通过各种努力和选择走到今天的,那恭喜你,你来对了。在这里,你会听到一个小男孩少年时的梦想,你也…