MySQL--操作简记(create创建操纵表、insert插入、update更新、delete删除数据)

时间:2022-09-15 22:59:26

啊啊啊啊啊啊啊,最近看了MySQL必知必会,感觉操作上还可以吧,就是关键字也太多多多多多了~~~为了自己查找,复习起来方便,所以把这些操作简单总结一下(→_→)

创建和操纵表

1.创建表

  • 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,
quantity int NOT NULL DEFAULT 1,
PRIMARY KEY(cust_id)
) ENGINE = InnoDB;

【1】表名紧跟在CREATE TABLE后;
【2】所有列都在()中,各列用逗号隔开;每列的定义以列名开始,数据类型,是否允许NULL值;
【3】AUTO_INCREAMENT告诉MySQL,本列每当增加一行时自动增量;每个表只允许一个AUTO_INCREAMENT列;
【4】如果在插入时没有给出值,此时使用默认值,由DEFAULT关键字指定;
【5】PRIMARY KEY关键字指定主键,如果是多个列组成的主键则用(a,b,c)格式;
【6】ENGINE = 指定了引擎类型

2.更新表

  • ALTER TABLE
ALTER TABLE vendors
ADD vend_phone CHAR(20);

给vendors表增加一个名为vend_phone的列,必须给出其数据类型。

ALTER TABLE vendors
DROP COLUMN vend_phone;

给vendors表删除一个名为vend_phone的列。

ALTER TABLE orderitems
FOREIGN KEY (order_num) REFERENCES orders(order_num)

定义外键:参照表orders中的主键order_num,将表orderitems中order_num这一列设为外键。

3.删除表

  • DROP TABLE
DROP TABLE customers;

删除了customers表。删除表没有确认也没有撤销。

4.重命名表

  • RENAME TABLE
RENAME TABLE customers TO customer1;

对多个表重命名

RENAME TABLE customers TO customer1;
vendors TO vendor1;
products TO product1;

插入数据

1.插入完整的行

  • INSERT
INSERT INTO customers
VALUES(
NULL,
'PEP E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'USA'
NULL,
NULL
);

VALUES字句中为要插入的值,如果某一列没有值应该使用NULL;各个列必须以它们在表定义中出现的顺序填充

INSERT INTO customers(
cust_name,
cust_address,
cust_city,
cust_state,
cust_country,


VALUES(
'PEP E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'USA'
);

还可以明确给出列名,VALUES中的值与之对应即可,即使顺序不同,也可正确插入。

2.插入多个行

按照以下格式

INSERT INTO ...
...

VALUES(
...
);
INSERT INTO ...
...

VALUES(
...
);

或者

INSERT INTO ...
...

VALUES(
...
),
VALUES(
...
);

3.插入检索出的数据

将SELECT检索出的结果利用INSERT插入

INSERT INTO customers(
...

SELECT ...
FROM custnew;

将custnew中检索出的值插入到customers中,要保证customers中主键值不会重复,否则操作将失败。

更新和删除数据

1.更新数据

  • UPDATE
UPDATE customers
SET cust_email = 'elmer@fudd.com'
WHERE cusr_id = 1005;

将表customers表中id为1005的用户的email进行更新

UPDATE ...
SET ...= '...'
...= '...'
WHERE ...

更新多个列

为了删除某个列的值,可以将它设置为NULL(允许设置NULL值时)

2.删除数据

  • DELETE
DELETE FROM customers
WHERE cust_id = 1006;

从customers表中删除id=1006的那一行。DELETE从表中删除行,但是不删除表本身。

如果删除表中所有行可以用TRUNCATE TABLE语句,它速度更快,它实际上是删除了原来的表,再重新创建一个表。