MySQL(三)
MySQL(三)
插入数据
插入单行
-- 采用这种方式向表中添加数据,必须 按表中各字段的顺序 为每一个字段提供一个值,如果没有可以赋值null
INSERT INTO 表名
VALUES(value1,
value2,
·
·
·
);
由于上面这种方式严格要求赋值顺序和表中字段顺序一致,所以有了下面这种方式:
--说明赋值顺序
INSERT [LOW_PRIORITY] INTO 表名(
字段1,
字段2,
·
·
·)
VALUES(value1,
value2,
·
·
·
);
由于INSERT可能很耗时,进而会影响后面的SELECT语句,所以加上LOW_PRIORITY
降低INSERT的优先级。
插入多行
INSERT [LOW_PRIORITY] INTO 表名(
字段1,
字段2,
·
·
·)
VALUES(value1,
value2,
·
·
·
),
VALUES(value1,
value2,
·
·
·
);
单条SELECT插入多行数据比多条SELECT依次插入单行数据快。
插入检索出的数据
如下,将表2的指定列的数据添加到表1里。
不要求字段对应相同,因为INSERT要的只是SELECT查询返回的值。
INSERT INTO 表名1(
字段1,
字段2,
·
·
·)
SELECT(
字段1,
字段2,
·
·
·)
FROM 表名2;
更新数据
一般格式如下:
UPDATE 表名
SET 字段1 = 值
[,字段2 = 值
, 字段3 = 值]
WHERE 更新条件
删除数据
一般格式如下:
DELETE FROM 表名
WHERE 删除条件;
DELETE只能删除行。若要删除表中所有行,使用TRUNCATE 表名
效率更高,因为TRUNCATE是删除原表并新建一个同名表。
创建表
控制字段用于指明字段是否可以为空(NULL或NOT NULL)、增长方式(AUTO_INCREMENT)等。
在最后声明作为主键的字段,主键中不能有NULL。
CREATE TABLE IF NOT EXISTS 表名(
字段1 类型 控制字段1 控制字段2,
·
·
·
PRIMARY KEY(字段1, 字段2)
)ENGINE = InnoDB --指明引擎类型,默认MyISAM
如果主键设为自动增长后,自己INSERT一条数据指明了主键取值m,那么下次INSERT数据默认的主键取值从m+1开始。
可以通过SELECT LAST_INSERT_ID()
查看上一次的AUTO_INCREMENT值。
控制字段还可选指定默认值,通过DEFAULT 默认值
,
更新表
删除列
ALTER TABLE 表名
DROP COLUMN 列名;
添加列
ALTER TABLE 表名
ADD 列名 类型;
添加外键
ALTER TABLE 表名
ADD CONSTRAINTS 约束名
FOREIGN KEY (做外键的字段名)
PREFERENCES 表名2 (改表对应的主键列名);
删除表
DROP TABLE 表名;
重命名表
RENAME TABLE 原表名 TO 新表名;
本文来自博客园,作者:klaus08,转载请注明原文链接:https://www.cnblogs.com/klaus08/p/15105013.html