sql查看表中字段数据类型 数据库表查看表字段类型



文章插图
sql查看表中字段数据类型 数据库表查看表字段类型

文章插图
1 查看表结构
查看表结构是指查看数据库中已存在的表的定义 。查看表结构的语句包括 DESCRIBE 语句和 SHOW CREATE TABLE 语句 。通过这两个语句,可以查看表的字段名、字段的数据类型、完整性约束条件等 。
1.1 查看表基本结构语句 DESCRIBE
MySQL 中,DESCRIBE 语句可以查看表的基本定义 。其中包括、字段名、字段数据类型、是否为主键和默认值等 。
DESCRIBE表名;DESC或DESCRIBEstudent7;1.2 查看表详细结构语句 SHOW CREATE TABLE
MySQL 中,SHOW CREATE TABLE 语句可以查看表的详细定义 。该语句可以查看表的字段名、字段的数据类型、完整性约束条件等信息 。除此之外,还可以查看表默认的存储引擎和字符编码 。SHOW CREATE TABLE 语句的语法形式如下:
SHOW CREATE TABLE表名;SHOW CREATE TABLEstudent7;2 修改表的方法
修改表是指修改数据库中已存在的表 。修改表比重新定义表简单,不需要重新加载数据,也不会影响正在进行的服务 。MySQL 中能过 ALTER TABLE [alter: 改变,更改 ] 语句来修改表 。修改表包括修改表名、修改字段数据类型、修改字段名、增加字段、删除字段、修改字段的排列位置、更改表的存储引擎和删除表的外键约束等 。
2.1 修改表名
表名可以在一个数据库中唯一的确定一张表 。数据库系统通过表名来区分不同的表 。例如,数据库 school 中有 student 表 。那么 student 表就是唯一的 。在数据库 school 中不可能存在另一个名为 “student” 的表 。MySQL 中,修改表名是通过 SQL 语句 ALTER TABLE 实现的 。其语法形式如下:
ALTER TABLE 旧表名 RENAME [TO] 新表名 ;
实例一 :
CREATE TABLE student8 (stu_id INT PRIMARY KEY,stu_name VARCHAR(20) NOT NULL,stu_gender BOOLEAN) Engine = InnoDB;SHOW TABLES;DESCRIBE student8;ALTER TABLEstudent8RENAME TOstudent8_changed;2.2 修改字段的数据类型
字段的数据类型包括整型、浮点数型、字符串型、二进制类型、日期和时间类型等 。数据类型决定了数据的存储格式、约束条件和有效范围 。表中每个字段都有数据类型 。ALTER TABLE 语句也可以修改字段的数据类型 。其基本语法如下: ALTER TABLE 表名 MODIFY 属性名 数据类型 ;
实例一 :
CREATE TABLE student9 (stu_id INT PRIMARY KEY,stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,content VARCHAR(20) NOT NULL,stu_gender BOOLEAN) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;ALTER TABLEstudent9MODIFYstu_name char(20);2.3 修改字段名 [ 字段的数据类型 , 完整性约束条件 ]
字段名可以在一张表中唯一确定一个字段 。数据库系统通过字段名来区分表中的不同字段 。例如,student 表中包含 id 字段 。那么,id 字段在 student 表中是唯一的 。student 表中不可能存在另一个名为 “id” 的字段 。MySQL 中 ALTER TABLE 语句也可以修改表的字段名 。其基本语法如下:
ALTER TABLE 表名 CHNAGE 旧字段名 新字段名 新数据类型 [ 新完整性约束条件 ];
其中,” 旧字段名 ” 参数指修改前的字段名; ” 新字段名 ” 参数指修改后的字段名; ” 新数据类型 ” 参数修改后的数据类型,如不需要修改,则将新类型设置成与原来一样 。
1. 只修改字段名
2. 修改字段名和字段数据类型
3. 修改完整性约束条件
实例一:
CREATE TABLE student10 (stu_id INT PRIMARY KEY,stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,content VARCHAR(20) NOT NULL,stu_gender BOOLEAN) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;ALTER TABLEstudent10CHANGEstu_name stu_name_changed VARCHAR(20);ALTER TABLEstudent10CHANGEcontent content_changed VARCHAR(50) NOT NULL DEFAULT 'XXXX';2.4 增加字段
在创建表时,表中的字段就已经定义完成 。如果要增加新的字段,可以通过 ALTER TABLE 语句进行增加 。MySQL 中,ALTER TABLE 语句增加字段的基本语法如下:
ALTER TABLE 表名 ADD 新字段名 数据类型 [ 完整性约束条件 ] [FIRST | AFTER 已有字段名 ];
1. 增加无完整性约束条件的字段
2. 增加有完整性约束条件的字段
3. 表的第一个位置增加字段
4. 表的指定位置之后增加字段
实例一:
CREATE TABLE student11 (stu_id INT PRIMARY KEY,stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,content VARCHAR(20) NOT NULL,stu_gender BOOLEAN) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;ALTER TABLEstudent11ADDphone VARCHAR(20);ALTER TABLEstudent11ADDbirthday TIMESTAMP NOT NULL;ALTER TABLEstudent11ADDnum INT(11) NOT NULLFIRST;ALTER TABLEstudent11ADDaddress VARCHAR(30) NOT NULLAFTERphone;2.5 删除字段
删除字段是指删除已经定义好的表中的某个字段 。在表创建好之后,如果发现某个字段需要删除 。可以采用将整个表都删除,如果发现某个字段需要删除 。可以采用将整个表都删除,然后重新创建一张表的做法 。这样做是可以达到目的,但必须会影响到表中的数据 。而且,操作比较麻烦 。MySQL 中,ALTER TABLE 语句也可以删除表中的字段 。其基本语法如下:
ALTER TABLE 表名 DROP 字段名 ;
实例一:
CREATE TABLE student12 (stu_id INT PRIMARY KEY,stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,content VARCHAR(20) NOT NULL,stu_gender BOOLEAN) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;ALTER TABLEstudent12DROP`content`;2.6 修改字段的排列位置
创建表的时候,字段在表中的排列位置就已经确定了 。如果要改变字段在表中的排列位置,则需要 ALTER TABLE 语句来处理 。MySQL 中,修改字段排列位置的 ALTER TABLE 语句的基本语法如下: ALTER TABLE 表名 MODIFY 字段名 数据类型 FIRST | AFTER 字段名 2;
1. 字段修改到第一个位置
2. 字段修改到指定位置
实例一:
CREATE TABLE student13 (stu_id INT PRIMARY KEY,stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,content VARCHAR(20) NOT NULL,stu_gender BOOLEAN) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;ALTER TABLEstudent13MODIFYcontent VARCHAR(20) FIRST;ALTER TABLESTUDENT13MODIFYstu_id INTAFTERstu_name;2.7 更改表的存储引擎
MySQL 存储引擎是指 MySQL 数据库中表的存储类型 。MySQL 存储引擎包括 InnoDB 、 MyISAM 、 MEMORY 等 。不同的表类型有着不同的优缺点 。在创建表的时候,存储引擎就已经设定好了 。如果要改变,可以通过重新创建一张表来实现 。这样做是可以达到目的,但必然会影响到表中的数据 。而且,操作比较麻烦 。
ALTER TABLE 表名 ENGINE= 存储引擎名 ;
实例一:
CREATE TABLE student14 (stu_id INT PRIMARY KEY,stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,content VARCHAR(20) NOT NULL,stu_gender BOOLEAN) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;ALTER TABLEstudent14ENGINE=MyISAM;2.8 删除表的外键约束
外键是一个特殊字段,其将某一个表与其父表建立关系关系 。在创建表的时候,外键约束就已经设定好了 。由于特殊需要,与父表之间的关系关系需要去除,要求删除外键约束 。MySQL 中,ALTER TABLEy 语句也可以删除表的外键约束 。
ALTER TABLE 表名 DROP FOREIGN KEY 外键别名 ;
实例一:
CREATE TABLE `student15` (`id` INT NOT NULL PRIMARY KEY,`name` VARCHAR(20) NOT NULL,`stu_id` INT,CONSTRAINT st_fk FOREIGN KEY(stu_id) REFERENCES student7(stu_id)) Engine = InnoDB ;ALTER TABLE`test`.`student15`DROPFOREIGN KEYst_fk;3 删除表的方法
删除表是指删除数据库已经存在的表 。删除表时,会删除表中的所有数据 。因此,在删除表时特别注意 。MySQL 中通过 DROP TABLE 语句来删除表 。由创建表时可能存在外键约束,一些表成为了与之关联的表的父表 。要删除这些父表,情况比较复杂 。
3.1 删除没有关系的普通表和被其他关联的父表的方法 。
CREATE TABLE student16 (stu_id INT PRIMARY KEY,stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,content VARCHAR(20) NOT NULL COMMENT '内容',stu_gender BOOLEAN) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;DROP TABLE[IF EXISTS] student16;3.2 删除被其他表关联的父表
数据库中某些表之间建立了关联关系 。一些表成为了父表,这些表被其子表关联着 。要删除这些父表,情况不像上一节那么简单 。
CREATE TABLE `test`.`student17_parent` (`id` INT NOT NULL PRIMARY KEY,`stu_id` INT,`name` VARCHAR(20) NOT NULL) Engine = InnoDB ;CREATE TABLE `student17_child` (`id` INT NOT NULL PRIMARY KEY,`stu_id` INT UNIQUE,`name` VARCHAR(20) NOT NULL,CONSTRAINT parent_fk FOREIGN KEY(stu_id) REFERENCES student17_parent(id) -- id必须是带有索引) Engine = InnoDB;【sql查看表中字段数据类型 数据库表查看表字段类型】DROP TABLE `student17_parent`; --不能删除,因为与这关联的表有外键#先删除外键,然后就可以删除表student17_parentALTER TABLE`student17_child`DROP FOREIGN KEYparent_fk;DROP TABLE`student17_parent`;