您的位置:首页 > 数据库 > MySQL

Mysql数据库定义语言DDL(DataDefinition Language)

2017-01-11 16:59 661 查看
数据库定义语句

1.创建数据库:create database数据库名 【charset 字符编码】 【collate 排序规则】;

示例:create database db1 charset utf8;//创建数据库db1设置编码方式为utf8

(1)字符编码:设定当前数据库中存储的字符内容以什么编码来存储,每个字符编码都有一个默认的排序规则

(2)排序规则:设定其中的字符内容的“大小关系”(先后顺序),通常不写

2.修改数据库(字符编码):alterdatabase 数据库名 charset 新的编码名 collate 新的排序规则名

3.删除数据库:drop database【if exists】 数据库名;

if exists:安全运行的考虑,如果数据库不存在,也不会报错

4.其他:

  进入(使用)某个数据库:use数据库名;

显示所有数据库:showdatabases;//显示数据库

显示某数据库的创建语句:showcreate database 数据库名;

表定义语句

1.创建表

(1)基本语法形式:createtable 【if not exists】表名(字段列表 【,索引或约束列表】)【表选项列表】;

(2)字段设定形式;字段名(自定义) 类型(数据类型) 【字段属性1 字段属性2 ……】

     说明:字段属性可以有多个,相互之间用空格隔开,主要由如下几个:

       auto_increment:只用于整数类型,自动增长列。通常用于表的第一个字段,当作主键。

       primary key:主键,可唯一确定一行数据,唯一性,不能为空

       unique key:设定该字段不能重复

       not null:不能为空

       default XX:给定默认值,如果insert没有给定值时使用该默认值

       comment ‘字段说明文字’:

(3)索引:系统内部自动维护的隐藏的“数据表”(其中的数据已自动排好序),可以加快数据的查找速度

有如下几个:

   普通索引:key(字段名)

   唯一索引:unique key(字段名)唯一性

   主键索引:primary key(字段名)唯一性且不为空

   全文索引:fulltext(字段名)

   外建索引:foreign key(字段名)referencrs其他表(对应其他表中的字段名)

(4)约束:要求数据需满足什么条件的一种“规定”

主要有如下几个:

主键约束:primary key(字段名)唯一性且不为空

唯一约束:unique key(字段名)唯一性

外键约束:foreign key(字段名)referencrs其他表(对应其他表中的字段名)

非空约束:not null(即字段属性设置)

默认约束:default XX(即字段属性设置)

检查约束:check(某种判断语句),比如;

Create table tab1(
age tinyint,
check (age>0 and age<100)
)

(5)表选项:创建表时,对该表的整体设定,有如下几个:

charset=要使用的字符编码(与数据库不一致时使用)

engine=要使用的存储引擎(表类型)

auto_increment=设定当前表的自增长字段的初始值,默认是1

comment=‘该表的一些说明文字’

说明:engine(存储引擎)在代码层面,就是一个名词:InnoDB、MyIsam、BDB、archive、Memory

   存储引擎指将数据存储到硬盘的机制。主要从2个层面来设计存储机制:尽可能快的速度;尽可能多的功能。

示例:

creat tablexuanxiang(
id int auto_increment primary key,
sex enum('男','女'),
fav set('篮球','足球','排球')
)
charset=gbk,
engine=MyIsam,
auto_increment=10,
comment='说明文字'
;

2.修改表—修改表的结构(不推荐、创建表时确定表结构)

可对字段进行增添、删除、修改

对索引进行增添、删除

表选项,一般都是修改

常见几个:

添加字段:alter table 表名 add 【column】新字段名 字段类型 【字段属性列表】

修改字段: alter table 表名change 【column】旧字段名 新字段名 字段类型 【字段属性列表】

删除字段:alter table 表名drop 【column】字段名

添加普通索引:alter table 表名 add key 【索引名】(字段名1,字段名2,…)

添加唯一索引(约束):alter table 表名 add unique key 【索引名】(字段名1,字段名2,…)

添加主键索引(约束):alter table 表名 add primary key 【索引名】(字段名1,字段名2,…)

修改表名:alter table 旧表名rename 【to】新表名

3.删除表:drop table【if exists】表名

4.其他表相关语句

显示数据库中的所有表:showtables;

显示表的结构:desc 表名 或 describe 表名;

显示表的创建语句show createtable 表名;

重命名表:rename table 旧表名 to 新表名;

从已有表复制表结构:createtable 【if not exists】新表明 like 原表名;

视图定义语句

1.视图:就是一个select语句(通常比较复杂),给其一个名字(视图名),可以使用该视图名使用(执行)该select语句

2.创建语法:create view 视图名 as select语句;

示例:

create view v1as
select id,f1,name,age,email,p_id,f3from 表1 where id>7 and id<100 or f1<1000 and age>10;

3.使用视图:基本上,当做一个表用了

4.删除视图:drop view 【ifexists】 视图名;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql
相关文章推荐