mysql中创建修改删除数据表例子
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-23 15:04:34 浏览: 评论:0
在mysql中创建修改删除数据表命令非常的简单,创建使用的是CREATE TABLE页删除表是使用drop table 修改表就简单了ALTER TABLE即可,下面与小编来学习一下。
在PHP中应用数据库时,通常是先在MySQL客户机的控制台中,使用DDL语句创建网站中的数据库、数据表及修改表结构等操作以后,再在PHP脚本中应用。很少直接在PHP中执行DDL语句动态创建数据库、数据表或修改表的操作,通常也只有在制作安装版本的网站时才会这么做。
1.创建表(CREATE TABLE)
数据库创建以后,使用use命令选定这个新创建的数据库作为默认(当前)数据库使用,就可以继续建立其包含的数据表。数据表的创建是使用表的前提,创建数据表主要是定义数据表的结构,包括数据表的名称、字段名、字段类型、约束及其索引等。其基本语法如下所示:
- CREATE TABLE [IF NOT EXISTS] 表名称( #创建带给定名称的表,必须拥有表CREATE权限
- 字段名1 列类型 [属性] [索引], #声明表中第一个字段,必须有字段名和列类型
- 字段名2 列类型 [属性] [索引],
- ...
- 字段名n 列类型 [属性] [索引] #每个字段的属性和索引都是可选的,根据需要设置
- )[表类型] [表字符集]; #在创建表时也可以指定可选的表类型和字符集的设置
其中“[]”中为可选的内容,一个表可以由一个或多个字段(列)组成,在字段后面一定要注明字段的数据类型。每一个字段也可以使用属性对其进行限制说明,但属性是可选的,根据表的需要进行声明,如前面介绍的AUTO_INCREMENT、NOT NULL、DEFAULT属性等。还可以通过PRIMARYKEY、UNIQUE、INDEX和KEY子句为每个字段定义索引。索引可以跟在每个字段后面声明,也可以在字段声明之后使用从句的方式声明。如果有多个列,用逗号将它们分隔.例如创建一个用于存储用户信息users.
在创建表users时,除了需要指定各个字段的属性和索引外,还需要指定默认的表类型为MyISAM,以及指定默认创建表字符集(character set)为utf8,校队规则(collation)是utf8_general_ci。在MySQL控制台中输入以下语句创建数据表users,代码如下:
- CREATE TABLE IF NOT EXISTS users(
- id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
- username VARCHAR(50) NOT NULL,
- userpass VARCHAR(50) NOT NULL,
- telno VARCHAR(20) NOT NULL UNIQUE,
- sex ENUM('男','女') NOT NULL DEFAULT '男',
- brithday DATE NOT NULL DEFAULT '0000-00-00',
- PRIMARY KEY(ID),
- INDEX users_username(username,userpass)
- )ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
数据表成功创建后,可以在MySQL控制台中使用“SHOW TABLES”命令查看。还可以在MySQL控制台中,使用“describe表名”或“desc表名”命令用于显示表的创建结构.
默认的情况是,表被创建到当前的数据库中。如果表已存在,或者如果没有当前数据库,或者如果数据库不存在,则会出错。表名称也可以被指定为“数据库名.表名”,以便在特定的数据库中创建表。不论是否有当前数据库,都可以通过这种方式创建表。如果使用加引号的识别名,则应对数据库和表名称分别加引号。例如,‘mydb’.‘mytbl’是合法的,但是‘mydb.mybl’不合法。如果表已存在则使用关键词if not exists可以防止发生错误。
2.修改表(ALTER TABLE)
修改表是指修改表的结构,在实际应用中,当发现某个表的结构不满足要求时,可以用ALTER TABLE语句来修改表的结构,包括添加新的字段、删除原有的字段、修改列的类型、属性及索引,甚至可以修改表的名称等。修改表的语法如下所示:
ALTER TABLE 表名 ACTION;#修改表的语法格式
其中ACTION是ALTER TABLE的从句,包括为指定的表添加一新列、为表添加一个索引、更改指定默认值、更改列类型、删除一列、删除索引、更改表名等语句。下面将简单介绍几种常用的方式。
★为指定的数据表添加一新字段,可以在ACTION从句中使用ADD关键字实现,语法格式如下所示:
ALTER TABLE 表名 ADD 字段名 <建表语句> [FIRST|AFTER 列名] #为指定的表添加新列
如果没有指定可选的FIRST或AFTER,则在列尾添加一列,否则在指定列添加新列。例如,为上面创建的用户表users列尾添加一个E-mail字段,则在MySQL控制台中输入的命令如下所示:
mysql>ALTER TABLE users ADD email VARCHAR(30) NOT NULL;
如果需要为用户表users,在第一列前面添加一个真实姓名(name)的新列,列类型为字符串,属性设置为非空。并在原有的字段userpass之后添加一个身高(height)的新列,列类型为DOUBLE,属性为非空并设置默认值为0.00,。则在MySQL控制台中输入的命令如下所示:
- mysql>ALTER TABLE users ADD name VARCHAR(30) NOT NULL FIRST;//开源代码phpfensi.com
- mysql>ALTER TABLE users ADD height DOUBLE NOT NULL DEFAULT ’0.00′ AFTER userpass;
★为指定的数据表为了更改原有字段的类型,可以使用CHANGE或MODIFY子句,如果原列的名字和新列的名字相同,则change和Modify的作用相同,语法格式如下所示:
ALTER TABLE 表名 CHANGE(MODIFY) 列表 <建表语句> #为指定的表修改列类型
如果需要修改用户表users中的电话号码字段telNo,将列类型VARCHAR(20)改为数值类型INT,并将默认值设置为0.则可以在MySQL控制台中共输入的命令如下所示:
mysql>ALTER TABLE users MODIFY telno INT UNSIGHED DEFAULT ’0′;
mysql>ALTER TEBLE users CHANGE telno telno INT UNSIGNED DEFAULT ’0′;
在CHANGE命令中的列名telno出现了两次,原因是CHANGE除了更改类型外还能更改列名,在MODIFY不能实现这个功能。如果希望在更改类型的同时重新将telno命名为phone,可按如下命令进行操作。
mysql>ALTER TABLE users CHANGE telno phone INT UNSIGNED DEFAULT ’0′;
使用CHANGE更改了列的定义,并说明了一个包括列名的完整定义,即使不更改列名,也需要在定义中包括相应的列名。
★如果需要为指定的数据表重新命名,可使用RENAME AS 子句,给出旧表名和新表名即可,语法格式如下所示:phpfensi.com
ALTER TABLE 旧表名 RENAME AS 新表名 #为指定的数据表重新命名
3.删除表(DROP TABLE)
当某个数据表不再需要时,可以使用SQL的DROP TABLE语句删除。删除表要比创建和修改表要容易的多,只需指定表名即可。其语法如下所示:
DROP TABLE [IF EXISTS] 表名#删除不再使用的数据表
当不能确定数据表是否存在,如果存在就删除它,不存在则删除时也不希望出现错误,就可在DROPTABLE语句中增加IF EXISTS,同CREATE TABLE一样,IF EXISTS语句在含有DROP TABLE 的SQL脚本中很常用,如果不存在待删除的表,则脚本会继续向下执行而不会抛出错误.
Tags: mysql创建数据表 mysql删除数据
相关文章
- ·mysql删除超大表中的部分数据(2014-09-25)
- ·mysql 删除数据库drop命令详解(2014-09-28)
- ·MySQL删除数据库命令用法详解(2014-09-29)
- ·mysql创建数据表与删除数据表(2014-10-08)
- ·mysql中创建/删除数据库方法(2014-10-08)
- ·MySQL 删除数据 Delete 与Truncate语句比较(2014-10-12)
- ·mysql中多表关联删除数据时同时删除关联数据(2014-10-13)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)