码迷,mamicode.com
首页 > 数据库 > 详细

《MySQL必知必会》[04] 表的操作和视图的使用

时间:2017-12-04 17:35:49      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:mys   语句   order   har   rename   phone   creat   try   alt   


1、表的操作

现在创建表的工作大部分还是使用数据库管理工具来完成的,虽然其本质也是使用的SQL,但是方便许多。现在就来简单谈谈使用SQL语句操作表。

1.1 创建表

 创建表的基本语句是(如果仅想在一个表不存在时创建它,则在表名后给出关键字 IF NOT EXISTS 即可):
  1. CREATE TABLE R (
  2. A1<数据类型>,
  3. A1<数据类型>,
  4. ...
  5. An<数据类型>
  6. );

e.g.
  1. CREATE TABLE vendors
  2. (
  3. vend_id int NOT NULL AUTO_INCREMENT,
  4. vend_name char(50) NOT NULL,
  5. vend_state char(5) NULL,
  6. vend_country char(50) NULL DEFAULT ‘China‘,
  7. PRIMARY KEY (vend_id)
  8. ) ENGINE=InnoDB;

创建表的语句中,各列的定义之间用逗号隔开,表名之后,跟列的数据类型,和更详细的定义,如 NOT NULL 要求列值不得为空,UNIQUE表列值唯一不得重复。

  • 每个列或者是NULL列,或者是NOT NULL列,这是在创建表时就要定义的,如果不指定,则默认是允许NULL值;
  • 如果以多个列组成主键,则应以逗号隔开,如 PRIMARY KEY (order_num, order_item)
  • AUTO_INCREMENT 即本列每当增加一行时自动增量,每个表只允许一个AUTO_INCREMENT列,且必须被索引
  • last_insert_id()函数可以获取最后一个AUTO_INCREMENT值
  • DEFAULT 用于定义未指定值时使用的默认值
  • ENGINE=InnoDB 表指定具体管理和处理数据的内部引擎,可以省略,则使用默认引擎
    • InnoDB:可靠的事务处理引擎,但不支持全文本搜索
    • MyISAM:性能极高的一个引擎,支持全文本搜索,但是不支持事务处理
    • MEMORY:功能等同于MyISAM,但数据存储在内存而非磁盘,速度很快(特别适合于临时表)

1.2 更新表

更新表的基本语句是:
  1. ALTER TABLE R 具体的更改操作;

e.g.
  1. //添加列
  2. ALTER TABLE vendors
  3. ADD vend_phone CHAR(20);
  4. //删除列
  5. ALTER TABLE vendors
  6. DROP COLUMN vend_phone;
  7. //添加外键
  8. ALTER TABLE orderitems
  9. ADD CONSTRAINT fk_orderitems_orders
  10. FOREIGN KEY (order_num) REFERENCES orders (order_num);

1.3 删除表

删除表的基本语句是:
  1. DROP TABLE R;

1.4 重命名表

重命名表的基本语句是:
  1. RENAME TABLE R1 TO R2;



2、视图的使用

视图并不是真实存在的表,它是虚拟的表,只包含使用是动态检索数据的查询。视图通常是按不同的应用领域或不同的用户群体进行定义,从而使用户从数据库中澎湃的数据中超超脱出来,只关心自己所需要的数据。

创建视图的基本语句是:
  1. CREATE VIEW <视图名> AS <子查询>;

利用视图,可以编写一些基础的SQL,根据需要配合SELECT语句,以隐藏复杂的SQL,起到简化的目的。

注意:
  • 视图实际上并不包含数据,而是每次使用时再去执行查询,所以逻辑过于复杂的视图,同样会性能下降
  • 视图可以嵌套,即可以从其他视图中查询数据构造新的视图
  • 视图可以和表一起使用,如连结表和试图的SELECT语句
  • 视图不能索引


《MySQL必知必会》[04] 表的操作和视图的使用

标签:mys   语句   order   har   rename   phone   creat   try   alt   

原文地址:http://www.cnblogs.com/deng-cc/p/7977883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!