在对MySQL数据表进行操作之前,必须使用USE语句选择数据库,才能在指定的数据库中对数据表进行操作。
语法如下:CREATE {TEMPORARY}TABLE {IF NOT EXIST} 数据表名
[(create_definition,...)] [table_options] [select_statement]
参数说明
TEMPORARY |
如果使用该关键字,表示创建一个临时表 |
IF NOT EXIST |
改关键字用于避免表存在时MySQL报告的错误 |
Create_definition |
这是表的列属性部分,MySQL要求在创建表时,表至少包含一列 |
Table_option |
表的一些特性参数 |
Select_statement |
Selec语句描述部分,用它可以快速创建表 |
列属性ate_definition 部分的具体格式如下:
col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT][PRIMARY KEY] [reference_definition]
上述参数说明如下
Col_name |
字段名 |
Type |
字段类型 |
NOT NULL| NULL |
指出该列是否允许是空值,系统一般默认允许为空值,所以当不允许空值时,必须使用NOT NULL。 |
DEFAULT default_value |
表示默认值 |
AUTO_INCREMENT |
表示是否自动编号,每个表只能有一个AUTO_INCREMENT列,并且必须被索引。 |
PRIMARY KEY |
表示是否为主键。一个表只能有一个PRIMARY KEY.如表中没有一个PRIMARY KEY,而某些应用程序需要PRIMARY KEY,而MySQL将返回第一个没有任何NULL列的UNIQUE键,作为PRIMARY KEY。 |
Reference_definition |
为字段添加注释。 |
上述属性看起来很复杂,但在实际的应用中使用最基本的格式创建数据表即可,具体格式如下:
CREATE TABLE table_name(列名1 属性,列名2 属性,...);
例子:在数据库db_admin添加一个名为tb_admin的数据表。包括id、user、password、和createtime等字段。
语法如下:
SHOW [FULL] COLUMMNS FROM 数据表名 [FROM 数据库名];
或者写成
SHOW [FULL] COLUMNS FROM 数据库名.数据表名;
例子:查看tb_admin表结构
查看数据表结构还可以使用DESCRIBE语句
例子:DESCRIBE tb_admin;
修改数据表结构指增加或者删除字段、修改字段名称或者字段类型、设置取消主键外键、设置取消索引以及修改表的注释等。语法如下:
ALTER [IGNORE] TABLE 数据表名 alter_spec[,alter_spec] ...
注意:当指定IGNORE时,如果出现重复关键的行,则只执行一行,其他重复的行被删除。
其中,alter_spec子句定义要修改的内容,其语法如下:
ADD [COLUMN] create_definition [FIRST | AFTER column_name] //添加新字段
| ADD INDEX [index_name] (index_col_name,...) //添加 索引名称
| ADD PRIMARY KEY (index_col_name,...) //添加主键名称
| ADD UNIQUE [index_name] (index_col_name,...) //添加唯一索引
| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} //修改字段名称
| CHANGE [COLUMN] old_col_name create_definition //修改字段类型
| MODIFY [COLUMN] create_definition //修改子句定义字段
| DROP [COLUMN] col_name //删除字段名称
| DROP INDEX index_name //删除索引名称
| DROP PRIMAY KEY //删除主键名称
| DROP INDEX index_name //删除索引名称
| RENAME [AS] new_tbl_name //更改表名
| table_options
例子:添加一个字段email,类型varchar(50),not null,将字段user的类型由varchar(38)改为varchar(40),代码如下
alter table tb_admin add email varchar(50) not null,modify user varchar(40);
结果如下(注意,操作前首先用use选择数据库),增加了email,修改了user的类型。
语法如下:
RENAME TABLE 数据表名 TO 数据表名2;
注意,该语句可以对多个数据表进行重命名,多个表之间以逗号分隔。
例子:把数据表tb_admin重命名为tb_user
语法如下:
DROP TABLE 数据表名;
在删除数据表的过程中,删除一个不存在的表将会产生错误,如果在删除语句中加EXISTS关键字就不会出错了。格式如下:
drop table if exists 数据表名;
这篇博客介绍了数据表的基本操作,接下来介绍更多的SQL语句,实现对数据表添加、修改、删除、查询具体数据等。