MySQL 《必知必会》 源码 三

八 : 插入删除更改记录

 --------------------------数据插入-------------------------

## 1. 不指定列名
INSERT INTO customers 
VALUES (NULL, 'pep', '100qwe', 'ca');

## 2. 指定列名: 
INSERT INTO customers(cust_address, cust_city, cust_state, cust_zip) 
VALUES (NULL, 'pep', '100qwe', 'ca');

--------------------------数据更新----------------------------

UPDATE customers 
SET cust_name = 'the fuds', cust_email = 'email@163.com 
WHERE cust_id = 1005;

--------------------------删除数据------------------------------

## 一定不要忘记WHERE语句!!!, 不然会删除整个表的数据
DELETE FROM customers 
WHERE cust_id = 10006;

## 更新删除的指导原则: 
1. 除非特殊情况, 不然不要使用没有 WHERE 的 UPDATE 和 DELETE
2. 保证每个表都有主键, 方便唯一区分记录
3. UPDATE 和 DELETE 的 WHERE前, 先使用SELECT检验即将操作的记录是正确的

九: 对于表的操作

##  创建表

CREATE TABLE customers
(
列名1    数据类型(长度)    (NOT) NULL    AUTO_INCREMENT , 
列名2    数据类型(长度)    (NOT) NULL    DEFAULT 1 , 
列名3    数据类型(长度)    (NOT) NULL     , 
列名4    数据类型(长度)    (NOT) NULL     , 
.....
PRIMARY KEY (某一列) 
) ENGINE = InnoDB;

## 1. (NOT) NULL: 定义此列是否可以为空
## 2. AUTO_INCREMENT: 定义此列是否自增
## 3. PRIMARY KEY (某一列): 定义主键
## 4. DEFAULT 1: 定义默认值
## 5. ENGINE = InnoDB: 定义引擎类型
    - InnoDB: 可靠地事务处理引擎
    - MEMORY: 功能等同于MyISAM, 但是使用内存存储, 所以速度很快, 适用于临时表
    - MyISAM: 性能极高的引擎, 支持全文本搜索, 不支持事务处理
---------------------------------------------------------------------
## 更新表: 常用于添加外键
ALTER TABLE orderitems 
ADD CONSTRAINT fk_orderitems_orders
FOREIGN KEY (order_num) REFERENCES orders (order_num)

---------------------------------------------------------------------
## 删除表
DROP TABLE customers2;

## 重命名表
RENAME TABLE customers2 TO customers3;
----------------------------------------------------------------------

十: 视图和存储过程


--------------------------------视图-----------------------------------

## 介绍 : 比如使用SELECT查询出一些数据, 然后为这个查询定义一个别名, 这样就可以用这个别名代指这个查询, 也叫做视图
## 视图算一个虚拟表, 方便进行查询
## 常见应用场景: 
    - 重用SQL语句
    - 简化复杂的SQL操作
    - 使用表的组成部分而非整表
    - 保护数据: 指定特定可访问的数据
    - 更改数据显示格式

## 注意: 视图本质是一个SQL查询, 那么可能会造成性能影响, 应注意使用
    - 视图名唯一, 视图目录没有限制
    - 创建视图需要的权限需要保证
    - 视图中可以有ORDER BY, 但是会被外面的ORDER BY覆盖

## 如何使用视图: 
    - 创建视图 : CREATE VIEW
    - 查看创建视图的语句: SHOW CREATE VIEW viewname; 
    - 删除视图: DROP VIEW viewname;

-------------------------存储过程-------------------------------------
## 介绍: 就是一条或多条SQL语句的集合, 可视为批文件

## 为什么要使用: 简单, 安全, 高性能
    - 简化复杂的操作, 
    - 保证数据完整性, 防止错误
    - 简化对变动的管理
    - 提高性能: 存储过程比单独sql快

## 如何使用: 
## 1. 执行存储过程: 
 CALL productpricing
 (
 @pricelow    #这个是变量名
 @pricehigh
 @priceave
 )

## 2. 创建存储过程
CREATE PROCEDURE 存储名字
(
IN 变量名 变量类型,  # IN表示传入数据
OUT 变量名 变量类型  # OUT表示输出对象
)
BEGIN
    SQL语句
END;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值