MySQL必知必会 | 表和视图

创建表

CREATE TABLE table_name
(
col_name_1 data_type not null/auto_increment/unique/..,
...
)ENGINE=iNNOdb

一些关键词

关键词说明
NOT NULL不允许填入空值
AUTO_INCREMENT自动增量
DEFAULT指定默认值

引擎类型

为不同的任务选择正确的引擎能获得良好的功能和林灵活性

引擎说明
InnonDB事务处理引擎,不支持全文本搜索
MEMORY功能等同于MyISAM但由于数据存储在内存中,速度很快(特别适合于临时表)
MyISAM性能极高的引擎,支持全文本搜索,但不支持事务处理

引擎类型可以混用,但是外键不能跨引擎

更新表

理想状态下,当表中存储数据以后,该表就不应该再被更新

-- 添加一个列
ALTER TABLE table_name
ADD col_name type 关键字

-- 删除一个列
ALTER TABLE table_name
DROP COLUMN col_name

-- 添加表级定义
ALTER TABLE table_name
ADD CONSTRAINT key_name
FOREIGN KEY (col_name_1) REFERENCES table_name_2(col_name_2)

删除表

删除整个表而不是其内容

DROP TABLE table_name

重命名表

RENAME TABLE old_name TO new_name

使用视图

视图

  • 视图是虚拟的表
  • 我觉得试图就是封装了select语句
  • 视图的应用
    • 重用SQL语句
    • 简化复杂的SQL操作
    • 使用表的组成部分而不是整个表
    • 保护数据(可以授予用户表的特定部分访问权限
    • 更改数据格式和表示
  • 性能问题:每次使用视图时,都必须处理查询执行时所需的任意一个检索,在部署使用大量视图应用前,应该进行测试
  • 视图的规则和限制
    • 视图必须唯一命名(不能和表名重复
    • 对于视图的数量没有限制
    • 视图可以嵌套
    • order by 可以使用在视图中
    • 试图不能索引,也不能关联触发器或默认值
    • 视图和表可以一起使用

使用视图

CREATE VIEW view_name AS
SELECT语句

更新视图

  • 通常,视图是可以更新的,对视图的更新,实际上是对基本表的更新
  • 如果视图定义有以下操作,则不能对其进行更新
    • 分组
    • 联结
    • 子查询
    • 聚集函数
    • distinct
  • 一般应该将视图用于数据检索,而不用与更新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值