在php 中应用数据库时,通常是先在mysql客户机的控制台中,使用DDL语句创建网站中的数据库,数据表及修改表结构等操作,再在PHP脚本中应用,很少直接在PHP中执行DDL语句动态创建表,通常也只有在制作安装版本的网站时才这么做。
1、创建表
数据库创建后,并使用USE命令选定这个新创建的数据库作为默认的数据库使用,就可以继续建立其包含的数据表,数据表的创建是使用表的前提,创建数据表主要是定义数据表结构,包括名称,字段名,字段类型,约束及索引等。
CREATE TABLE [IF NOT EXISTS] 表名(
字段名 1 列类型 [属性] [索引],
字段名 2 列类型 [属性] [索引],
...
字段名 n 列类型 [属性] [索引],
);
其中[]为可选内容,一个表可以由一个或多个字段组成,在字段后面一定要定义数据结构类型,每一个字段也可以使用属性对其进行限制说明,但属性是可选的,根据表的需要进行声明,例如UNSIGNED AUTO_INCREMENT NOT NULL DEFAULT属性等。还可以通过PRIMERY KEY UNIQUE INDEX 和 KEY子句为每个字段定义索引,索引可以跟在每个字段后面声明,也可以在字段声明之后使用从句的方式声明,如果有多个列,用逗号将他们分隔。利用创建一个用户信息表USER
create table if not exists user(
userid INT(10) UNSIGNED NOT NULL AUTO_INCREMENET,
username varchar(50) NOT NULL,
userpass varchar(50) NOT NULL,
telno varchar(20) NOT NULL UNIQUE,
sex enum('男','女') NOT NULL DEFAULT '男',
birthday DATE NOT NULL DEFAULT '0000-00-00',
primary key (userid),
INDEX username(username,userpass),
)type=myisam default character set utf8 collate utf8-general-ci;
如果数据创建成功,可以在MYSQL中使用SHOW TABLES命令查看,也可以使用DESC USER 命令查看表结构。
2、修改表
修改表指的是修改表的结构,当发现某个表的结构不满足需要时候,可以用ALTER TABLE语句来修改表的结构,包括增加新的字段,删除原有的字段,修改列的类型,属性及索引,甚至可以修改表的名称等,修改表语法如下
ALTER TABLE 表名 ACTION
其中ACTION是ALTER TABLE的从句,包括为指定的表添加一新列,为表添加一个索引,更改指定列默认值,更改列类型,删除列,删除索引,更改表名等语句。
为指定的表添加新字段,可以使用ADD关键字实现,语法如下
ALTER TABLE 表名 ADD 字段名 [FIRST|AFTER 列名]
如果没指定可以选的FIRST或者AFTER,则在列尾部添加一列,否则在指定列添加新列。
为指定的数据表更改列类型,可以使用CHANGE 或 MODIFY ,如果原列的名字和新列的名字相同,则CHANGE和MODIFY作用相同。
ALTER TABLE 表名 CHANGE(MODIFY) 列表;
例如给USER表中的电话号码字段,由varchar改为INT类型,并将默认值设为0
alter table user modify telno int default '0';
alter table user change telno telno int default '0';
在change中列名出现两次,原因是change除了更改类型外还可以改名,而modify不能实现这个功能,如果希望在更改类型的同时重新将telNo命名为phone,可以按下面操作
alter table user change telno phone int default '0';
如果需要为指定的数据表重新命名,可以使用 RENAME AS 子句,给出旧表名和新表名即可。
ALTER TABLE USER RENAME AS USER1;
3、删除表
当某个数据表不再需要时,可以使用DROP TABLE删除,删除表要比创建和修改表要容易得多,只需要指定表名既可,语法如下
drop table if exists user;