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

sql语言之DDL

时间:2016-09-18 23:45:31      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:

  SQL语言分为三个部分:数据定义语言(Data Definition Language,简称DDL)、数据操作语言(Data Manipulation Language,简称DML)和数据控制语言(Data Control Language,简称为DCL)。

  今天主要来介绍DDL语句,DDL语句:CREATE   ALTER   DROP,主要是操作表的。

  1、建立数据库操作

    语法:CREATE DATABASE 数据库名;

    叙述:创建一个具有指定名称的数据库。如果要创建的数据库已经存在,或者没有创建它的适当权限,则此语句失败。

    例:建立一个besttest库。

      mysql> CREATE DATABASE besttest CHARSET=utf8;

  2、显示数据库结构

    SHOW CREATE DATABASE besttest;

    可以查看数据库的相关信息(例如MySQL版本ID号、默认字符集、创建数据库sql语句等信息)。

  3、删除一个数据库

    语法:DROP DATABASE 数据库名;

    叙述:删除数据库是指在数据库系统中删除已经存在的数据库。删除数据库之后,原来分配的空间将被收回。值得注意的是,删除数据库会删除该数据库中所有的表和所有数据、索引。因此,应该特别小心。

    例:删除besttest库。

      mysql> DROP DATABASE besttest;

  4、创建表

    语法:CREATE table 表名(

          列名1 列类型 [列的完整性约束],

          列名2 列类型 [列的完整性约束],

          ......);

    例:建立一个表school,其由两列组成,第一列属性为非空,并做为主键,并自增
      create table school(

        school_id int(10) not null auto_increment primary key,

        school_name varchar(20) default null,

        phone int(10) unique

        );

  5、主键

    定义:唯一标识一条记录,不能有重复的,不允许为空,主键只能有一个。

    作用:用来保证数据完整性。

  6、常见的唯一性约束

    PRIMARY KEY 主码约束(主键)

    UNIQUE 唯一性约束

    NOT NULL 非空值约束

    AUTO_INCREMENT 用于整数列默认自增1

    UNSIGNED 无符号整数

    DEFAULT default_value 默认值约束

    DEFAULT cur_timestamp 创建新记录时默认保存当前时间(仅适用timestamp数据列)

    ON UPDATE cur_timestamp 修改记录时默认保存当前时间(仅适用timestamp数据列)

    CHARACTER SET name 指定字符集(仅适用字符串)

  7、查看表结构

    desc 表名;

    show create table 表名;

  8、修改表

    修改表是指修改数据库中已存在的表的定义。修改表比重新定义表简单,不需要重新加载数据,也不会影响正在进行

的服务。MySQL中通过ALTER TABLE语句来修改表。修改表包括修改表名、修改字段数据类型、修改字段名、增加字段、删

除字段、修改字段的排列位置、更改默认存储引擎和删除表的外键约束等。

  (1) 修改表名

    语法:ALTER TABLE 旧表名 RENAME [TO] 新表名 ;

    例:ALTER TABLE school rename school2;

  (2) 修改字段的数据类型

    语法1:ALTER TABLE 表名 MODIFY 属性名 数据类型 ;

    例:Alter table school modify school _name char(20);

    语法2:ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型 ;

    例:Alter table school change school_name name char(20);

    Modify和change的区别就是,modify在修改表结构的时候不需指定新的字段名,直接在后面跟上需要修改的属性即

可,change在修改表结构的时候需要指定旧字段名和新字段名和新属性。

  (3) 增加字段

    语法:ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST | AFTER 属性名2] ;

    FIRST | AFTER :表示在指定位置之前或者之后增加字段。默认在最后增加字段。

    例:Alter table school add addr varchar(50) not null first;

  (4) 修改字段的排列位置

    语法:ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST | AFTER 属性名2;

    其中,“属性名1”参数指需要修改位置的字段的名称;“数据类型”参数指“属性名1”的数据类型;“FIRST”参数指定位

置为表的第一个位置;“AFTER 属性名2”参数指定“属性名1”插入在“属性名2”之后。

  (5) 删除字段

    语法:ALTER TABLE 表名 DROP 字段名;

    例:ALTER TABLE school DROP addr;

  (6) 清空表

    语法:Truncate 表名;

    例:Truncate students;

    清空表是指把表中现有数据全部清空,使用TRUNCATE关键字,truncate之后,自增长列的id也从建表时设置的起始

id开始,和delete的区别是delete之后数据会清空,但是自增长列的id不会从起始id开始,truncat之后不能回滚,delete之

后,可以回滚。

  (7) 删除表

    语法:DROP TABLE 表名;

    例:drop table school;

    删除表是指删除数据库中已存在的表。删除表时,会删除表中的所有数据。因此,在删除表时要特别注意。MySQL

中通过DROP TABLE语句来删除表。

 

sql语言之DDL

标签:

原文地址:http://www.cnblogs.com/adaicc/p/5883442.html

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