MYSQL笔记21-25

这篇博客详细介绍了MySQL中创建和操纵表的相关操作,包括创建表、使用NULL值、主键、 AUTO_INCREMENT、默认值、引擎类型、更新和删除表、重命名表。此外,还讲解了视图的概念、使用及优势,存储过程的创建、执行和删除,以及游标的使用。最后,文章提到了触发器的作用、创建与使用方法,展示了如何通过触发器实现自动更新商品库存的功能。
摘要由CSDN通过智能技术生成

创建和操纵表

创建表

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

  • 使用具有交互式创建和管理表的工具
  • 表也可以用Mysql语句操纵
    为了用程序创建表,可使用SQL的CREATE TABLE语句,实际上我们在使用navicat等交互式工具时,实际上也是在使用MYSQL语句,界面工具会自动生成并执行相应的MySQL语句;

表创建基础

利用CREATE TABLE创建表,需要给出下列信息:

  • 新表的名字,在关键字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 关键字后面,表定义括在圆括号之后,各列之间用逗号隔开,这个表由9列组成,每列的定义以列名开始,后跟列的数据类型;表的主键由PRIMARY KEY关键字指定,列cust_id指定作为主键列,整条语句由右圆括号后面的分号结束,暂时忽略ENGINE=innoB;

使用NULL值

之前说NULL值就是没有值或缺值,允许NULL值的列也允许在插入行时不给出列的值,不允许NULL值的列不接受该列没有值的行,也就是说没有写入NULL值时,该列必须要有内容;
每个表列或者NULL列或者NOT NULL列,这种状态在创建时由表的定义规定。

CREATE TABLE orders
(
	order_num int NOT NULL AUTO_INCREMENT,
	order_date datetime NOT NULL,
	cust_id int NOT NULL,
	PRIMARY KEY (order_num)
)ENGINE=InnoDB;

这条语句创建了order_num,order_date,cust_id三个列表,每个列都定义了NOT NULL,这将会去阻止插入没有值得列,如果试图插入没有值得列,将返回错误,且插入失败

CREATE TABLE vendors
(
	vend_id int NOT NULL AUTO_INCREMENT
	vend_name char(50) NOT NULL,
	vend_address char(50) NULL,
	vend_city char(50) NULL,
	vend_state char(5) NULL,
	vend_zip char(10) NULL,
	vend_country char(50) NULL,
	PRIMARY KEY(vend_id)
)ENGINE = InnoDB;

这条语句创建了vendors表,将vend_name设置为NOT NULL,其他的列都允许NULL,这是一个混合表,当并指定NOT NULL时,NULL为默认设置,如果不指定NOT NULL,则认为指定是NULL;

主键

主键值必须是唯一,表中的每个行必须具有唯一的主键值,如果主键使用单个列,则它的值必须是唯一,如果使用多个列,则这些列的组合值必须是唯一的;

PRIMARY KEY (vend_id)

为创建由多个列组成的主键,必须以逗号分隔的列表给出各列名:

CREATE TABLE orderitems
(
	order_num int NOT NULL,
	order_item int NOT NULL,
	prod_id char(10) NOT NULL,
	quantity int NOT 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值