• MySQL Desc指令相关


    MySQL Desc指令相关  

    2011-08-09 11:25:50|  分类: my基本命令 |举报 |字号 订阅

    1、desc tablename;
    例如 :mysql> desc jos_modules;
    +------------------+---------------------+------+-----+---------------------+----------------+
    | Field              | Type                | Null   |   Key   | Default             | Extra          |
    +--------------- ---+---------------------+------+-----+---------------------+----------------+
    | id                   | int(11)             | NO    | PRI      | NULL                | auto_increment |
    | title                | text                  | NO    |            | NULL                |                           |
    | content          | text                  | NO    |            | NULL                |                           |
    | ordering         | int(11)             | NO    |            | 0                      |                           |
    +------------------+---------------------+------+-----+---------------------+----------------+

    使用MySQL数据库desc 表名时,我们看到Key那一栏,可能会有4种值,即' ','PRI','UNI','MUL'。
    1. 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列;
    2. 如果Key是PRI,  那么该列是主键的组成部分;
    3. 如果Key是UNI,  那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL);
    4. 如果Key是MUL,  那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL。
    如果对于一个列的定义,同时满足上述4种情况的多种,比如一个列既是PRI,又是UNI,那么"desc 表名"的时候,显示的Key值按照优先级来显示 PRI->UNI->MUL。那么此时,显示PRI。
    一个唯一性索引列可以显示为PRI,并且该列不能含有空值,同时该表没有主键。
    一个唯一性索引列可以显示为MUL, 如果多列构成了一个唯一性复合索引,因为虽然索引的多列组合是唯一的,比如ID+NAME是唯一的,但是没一个单独的列依然可以有重复的值,只要ID+NAME是唯一的即可。

    查看mysql表结构的方法有三种:
    1、desc tablename;
    例如:
    要查看jos_modules表结构的命令:
    desc jos_modules;
    查看结果:
    mysql> desc jos_modules;
    +------------------+---------------------+------+-----+---------------------+----------------+
    | Field            | Type                | Null | Key | Default             | Extra          |
    +------------------+---------------------+------+-----+---------------------+----------------+
    | id               | int(11)             | NO   | PRI | NULL                | auto_increment |
    | title            | text                | NO   |     | NULL                |                |
    | content          | text                | NO   |     | NULL                |                |
    | ordering         | int(11)             | NO   |     | 0                   |                |
    | position         | varchar(50)         | YES |     | NULL                |                |
    | checked_out      | int(11) unsigned    | NO   |     | 0                   |                |
    | checked_out_time | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
    | published        | tinyint(1)          | NO   | MUL | 0                   |                |
    | module           | varchar(50)         | YES | MUL | NULL                |                |
    | numnews          | int(11)             | NO   |     | 0                   |                |
    | access           | tinyint(3) unsigned | NO   |     | 0                   |                |
    | showtitle        | tinyint(3) unsigned | NO   |     | 1                   |                |
    | params           | text                | NO   |     | NULL                |                |
    | iscore           | tinyint(4)          | NO   |     | 0                   |                |
    | client_id        | tinyint(4)          | NO   |     | 0                   |                |
    | control          | text                | NO   |     | NULL                |                |
    +------------------+---------------------+------+-----+---------------------+----------------+
    2、show create table tablename;
    例如:
    要查看jos_modules表结构的命令:
    show create table jos_modules;
    查看结果:
    mysql> show create table jos_modules;
    jos_modules | CREATE TABLE `jos_modules` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `title` text NOT NULL,
    `content` text NOT NULL,
    `ordering` int(11) NOT NULL DEFAULT '0',
    `position` varchar(50) DEFAULT NULL,
    `checked_out` int(11) unsigned NOT NULL DEFAULT '0',
    `checked_out_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    `published` tinyint(1) NOT NULL DEFAULT '0',
    `module` varchar(50) DEFAULT NULL,
    `numnews` int(11) NOT NULL DEFAULT '0',
    `access` tinyint(3) unsigned NOT NULL DEFAULT '0',
    `showtitle` tinyint(3) unsigned NOT NULL DEFAULT '1',
    `params` text NOT NULL,
    `iscore` tinyint(4) NOT NULL DEFAULT '0',
    `client_id` tinyint(4) NOT NULL DEFAULT '0',
    `control` text NOT NULL,
    PRIMARY KEY (`id`),
    KEY `published` (`published`,`access`),
    KEY `newsfeeds` (`module`,`published`)
    ) ENGINE=MyISAM AUTO_INCREMENT=145 DEFAULT CHARSET=utf8 
    3、use information_schema;select * from columns where table_name='tablename'
    例如:
    要查看jos_modules表结构的命令:
    use information_schema;
    select * from columns where table_name='jos_modules';
    查看结果:
    略。
    如果要查看怎么建立数据表的命令用第二种方法最佳

  • 相关阅读:
    Sort-20191304商苏赫
    Myod-20191304商苏赫
    Linux C语言编程基础-20191304商苏赫
    《Unix/Linux系统编程》第十章学习笔记-20191304商苏赫
    《Unix/Linux系统编程》第九章学习笔记 --20191304商苏赫
    《Unix/Linux系统编程》第一、二章学习笔记,知识点归纳及收获
    20191325学习笔记6
    20191325学习笔记5
    20191325第七八章学习笔记
    2021.10.9测试二20191325
  • 原文地址:https://www.cnblogs.com/zhengah/p/4312609.html
Copyright © 2020-2023  润新知