啊啊啊啊啊啊啊,最近看了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语句,它速度更快,它实际上是删除了原来的表,再重新创建一个表。