位置:首页 > 数据库 > MySQL
MySQL数据库创建修改、删除数据表示例
日期:2023-01-17 人气:

大家好,对MySQL数据库创建修改、删除数据表示例感兴趣的小伙伴,下面一起跟随三零脚本的小编来看看MySQL数据库创建修改、删除数据表示例的例子吧。

在mysql中创建修改删除数据表命令非常的简单,创建使用的是CREATE TABLE页删除表是使用drop table 修改表就简单了ALTER TABLE即可,下面与小编来学习一下。

在PHP中应用数据库时,通常是先在MySQL客户机的控制台中,使用DDL语句创建网站中的数据库、数据表及修改表结构等操作以后,再在PHP脚本中应用。很少直接在PHP中执行DDL语句动态创建数据库、数据表或修改表的操作,通常也只有在制作安装版本的网站时才会这么做。

1.创建表(CREATE TABLE)

数据库创建以后,使用use命令选定这个新创建的数据库作为默认(当前)数据库使用,就可以继续建立其包含的数据表。数据表的创建是使用表的前提,创建数据表主要是定义数据表的结构,包括数据表的名称、字段名、字段类型、约束及其索引等。其基本语法如下所示:

CREATETABLE[IFNOTEXISTS]表名称(#创建带给定名称的表,必须拥有表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,代码如下:

CREATETABLEIFNOTEXISTSusers( idINT(10)UNSIGNEDNOTNULLAUTO_INCREMENT,
usernameVARCHAR(50)NOTNULL, userpassVARCHAR(50)NOTNULL,
telnoVARCHAR(20)NOTNULLUNIQUE, sexENUM('男','女')NOTNULLDEFAULT'男',
brithdayDATENOTNULLDEFAULT'0000-00-00', PRIMARYKEY(ID),
INDEXusers_username(username,userpass) )ENGINE=MyISAMDEFAULTCHARACTERSETutf8COLLATEutf8_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>ALTERTABLEusersADDnameVARCHAR(30)NOTNULLFIRST;//开源代码q3060.com mysql>ALTERTABLEusersADDheightDOUBLENOTNULLDEFAULT’0.00′AFTERuserpass;

★为指定的数据表为了更改原有字段的类型,可以使用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 子句,给出旧表名和新表名即可,语法格式如下所示:q3060.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脚本中很常用,如果不存在待删除的表,则脚本会继续向下执行而不会抛出错误.