MySQL学习笔记(六)

第六章 MySQL的数据定义语言 DDL  
   课程目录
  
   MySQL数据库
   MySQL表
   MySQL视图
   MySQL索引
   MySQL存储过程/函数
  
1、数据库
   1)语法
  
   建库
   create database [if not exists] 数据库名
   create database 以给定名字创建一个数据库
  
   在mysql中,数据库以包含数据库表对应文件的目录实现的。
   因为数据库在初始创建时没有表,所以create database语句只在mysql
   数据目录下创建一个目录
  
   删除库
   drop database [if exists] 数据库名
   drop database 移除数据库的所有表并删除数据库
   drop database返回数据库目录下删除的文件数目。通常,它是表的数目的三倍,
   因为每张表对应一个'.myd'文件、一个'.myi'文件和一个'.frm'文件。

2、表
   1)建表
     use 库名;
     create table 表名( 列1 类型[选项],..);
     键一个表就建立了三个文件  
     tbl_name.frm    表格式(定义)文件
     tbl_name.myd    数据文件
     tbl_name.myi    索引文件
    
   2)删除表
     drop table 表名;
    
   3)修改表名称 t1->t2
     alter table t1 rename t2;
    
   4)修改表结构
  
     为了改变列a,从integer改为tinyint not null,
     并且改变列b,从char(10)改为char(20),同时重命名,从b改为c。
     alter table t2 modify a tinyint not null,change b c char(20);
    
     增加一个新的timestamp列,名为d
     alter table t2 add d timestamp;
    
     增加一个新的auto_increment整数列,命名为c:
     alter table t2 add c int auto_increment,add index(c);
     注意,我们索引了c,因为auto_increment列必须被索引
    
     删除列c:
     alter table t2 drop column c;
    
3、视图

   1)创建视图
   create view test as select * from t;
  
   2)修改视图
   alter view test sleect * from tt;
  
   3)删除视图
   drop view test;
  
4、索引

   1)添加/删除匿名索引
   在列d上增加一个索引,列b是唯一索引,并且使列a为主键:
   alter table t2 add index(d),add unique index(b),add primary key(a);
  
   alter table t2 drop index d,drop index b,drop primary key;
  
   添加/删除索引
   create index idx_t2 on t2(d);
   drop index idx_t2 on t2;
  
5、存储过程和函数

   1) 存储过程
  
   mysql->delimiter //
  
   mysql->create procedure simpleproc(out param1 int)
        ->begin
        -> select count(*) ino param1 from t;
        ->end
        ->//
       
   mysql->delimiter ;
  
   mysql->call simoleproc(@a);
   mysql->select @a;
   ---------
   |@a     |
   ---------
   |3      |
   ---------
  
   2) 存储函数
   字符串拼接函数hello()
   mysql->delimiter //
  
   mysql->create function hello(s char(20) returns char(50))
        ->return concat('hello,',s,'!');
        ->//
       
   mysql->delimiter ;
  
   mysql->select hello('world');
   ---------------------
   |hello('world')     |
   ---------------------
   |hello,world!       |
   ---------------------  

-----------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值