第六章 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! |
---------------------
-----------------------------------------------------------------------
MySQL学习笔记(六)
最新推荐文章于 2024-10-10 21:13:48 发布