更新数据
UPDATE customers
SET cust_email = '[email protected]'
WHERE cust_id = 10005;
更新的表的名字为customers,SET命令用来将新值赋给被更新的列
UPDATE customers
SET cust_email = '[email protected]',
cust_name = 'The Fudds'
WHERE cust_id = 10005;
在更新多个列时,每个列值对之间用逗号分隔
删除数据
DELETE FROM customers
WHERE cust_id = 10006;
DELETE FROM要求指定从中删除数据的表名,WHERE子句过滤要删除的行,例子中,只删除客户10006那一行
创建和操纵表
表的创建
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(50) NULL,
cust_zip char(50) NULL,
cust_country char(50) NULL,
cust_contact char(50) NULL,
cust_email char(50) NULL,
PRIMARY KEY (cust_id)
)ENGINE=InnoDB;
新表的名字,在关键字CREATE TABLE之后给出,表列的名字和定义,用逗号分隔
使用NULL值
上述代码中的NULL与NOT NULL:NULL值就是允许在插入行时不给出该列的值,不允许NULL值的列不接受该列没有值的行,NULL为默认设置。
主键
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,
PRIMARY KEY (order_num,order_item)
) ENGINE=InnoDB;
如果主键是单个列,则它的值必须唯一,如果使用多个列,则这些列的组合值必须唯一
使用AUTO_INCREMENT
AUTO_INCREMENT告诉MySQL,本列每当增加一行时自动增量。这样给每个行分配一个唯一的cust_id,从而可以用作主键
指定默认值
CREATE TABLE orderitems
(
order_num int NOT NULL,
order_item int NOT NULL,
prod_id char(10) NOT NULL,
quantity int NOT NULL DEFAULT 1,
item_price decimal(8,2) NOT NULL,
PRIMARY KEY (order_num,order_item)
) ENGINE=InnoDB;
以上代码中的default关键字表示未指定数量时,默认为1
引擎类型
以上代码中都以ENGINE=InnoDB结束,这表示选择MySQL的内部引擎,可以省略这一语句,则会使用默认引擎,以下是几个需要知道的引擎:
InnoDB
MEMORY
MyISAM
更新表
ALTER TABLE vendors
ADD vend_phone CHAR(20);
这条语句给vendors表增加一个名为vend_phone的列,必须明确其数据类型
ALTER TABLE的一种常见的用途是定义外键:
ALTER TABLE orderitems
ADD CONSTRAINT fk_orderitems_orders
FOREIGN KEY (order_num) REFERENCES orders (order_num);
增加外键fk_orderitems_orders,当主表中的order_num值发生变化,从表中的order_num值也发生变化
删除表
DROP TABLE customers2;
删除customers2表
重命名表
RENAME TABLE customers2 TO customers;
将表名customers2重命名为customers
标签:cust,必知,MySQL,50,char,必会,TABLE,NULL,order From: https://blog.csdn.net/m0_58555364/article/details/143802390