本文共--字 阅读约--分钟 | 浏览: -- Last Updated: 2021-07-03
语法:
INSERT [INTO] tbl_name [(col_name ,…)]
{VALUES|VALUE} ({expr|DEFAULT},...), (...),...;
举例:
-- 插入一行完整的数据
INSERT INTO mysql_test.customers
VALUES(901, '张三', 'F', '北京', '朝阳区');
-- 或者
-- 0代表 id 自动生成
-- DEFAULT 代表 该值使用默认值
-- NULL 代表 该值为空值,处理暂不确定的值
INSERT INTO mysql_test.customers
VALUES(0,'李四', DEFAULT, '武汉市', NULL);
语法:
INSERT [INTO] tbl_name
SET col_name={ expr|DEFAULT}, ...;
举例:
-- 可以单个值的指定
INSERT INTO mysql_test.customers
SET cust_name = '李四', cust_address = '武汉市', cust_sex = DEFAULT;
语法:
INSERT [INTO] tbl_name [(col_name ,…)]
SELECT …;
举例:复制 apps 表中id为1的数据,app_name, country 到表Websites的 web_name, country 列。
INSERT INTO Websites (web_name, country)
SELECT app_name, country FROM apps WHERE id=1;
语法:
DELETE FROM tbl_name
[WHERE where_condition]
[ORDER BY …]
[LIMIT row_count];
举例:
DELETE FROM mysql_test.customers
WHERE cust_name = '王五';
语法:
UPDATE tbl_name
SET
col_name1={expr1|DEFAULT}[,col_name2={expr2|DEFAULT}] …
[WHERE where_condition]
[ORDER BY …]
[LIMIT row_count]
举例:
UPDATE mysql_test.customers
SET cust_address = '武汉市'
WHERE cust_name = '张三';
UPDATE payroll
SET salary = salary * 1.005
WHERE name = '张三';
含义:
视图与表的区别:
视图的优点:
视图用于查询检索的主要应用:
语法:
CREATE VIEW view_name column_list
AS select_statement
[WITH [CASCADED|LOCAL] CHECK OPTION]
语法说明:
WITH CHECK OPTION
:指定在可更新视图上所进行的修改都需要符合 select_statement 中所指定的限制条件,这样可以确保数据修改后,仍可以通过视图看到修改后的数据。WITH CHECK OPTION
给出两个参数,CASCADED
和 LOCAL
,它们决定检查测试的范围。CASCADED
为默认值,会对所有视图进行检查;LOCAL
则使 CHECK OPTION
只对定义的视图进行检查。举例:在数据库 mysql_test 中创建视图 customers_view 要求该视图包含客户信息表 customers 中所有男客户信息,并且要求保证今后对该视图数据的修改都必须符合客户性别为男性这个条件。
-- 工作中:CREATE OR REPLACE VIEW customers_view
CREATE VIEW customers_view
AS
SELECT *
FROM customers
WHERE cust_sex = '男'
WITH CHECK OPTION;
语法:
DROP VIEW [IF EXISTS]
view_name[, view_name ] ...
[RESTRICT|CASCADE]
说明:
DROP VIEW
可以一次删除多个视图,但必须在每个视图上 拥有 DROP
权限。RESTRICT
表示删除会影响别的表时不允许删除。CASCADE
表示级联删除。语法:
ALTER VIEW view_name[(column_list)]
AS select_statement
[WITH [CASCADED|LOCAL] CHECK OPTION]
与 CREATE VIEW
类似,也可以先使用 DROP VIEW
再使用 CREATE VIEW
实现。
语法:
SHOW CREATE VIEW view_name
INSERT INTO mysql_test.customers_view
VALUES(909,'周明', 'M', '武汉市', '洪山区');
注意:这语句能执行成功,是因为在创建视图时添加了WITH CHECK OPTION
子句。
-- 将所有客户的地址更新为上海
UPDATE mysql_test.customers_view
SET cust_address = '上海市';
DELETE FROM mysql_test.customers_view
WHERE cust_name = '周明';
视图一经定义后,就可以如同插叙数据库中的真实表一样;
SELECT cust_name,cust_address
FROM mysql_test.customers_view
WHERE cust_id = 909;
INSERT
、UPDATE
或 DELETE
等更新操作,只有满足可更新条件 的视图才能更新。DELETE
语句。