美文网首页
Mysql学习笔记二 数据表的基础操作

Mysql学习笔记二 数据表的基础操作

作者: flylic | 来源:发表于2019-08-06 16:59 被阅读0次

    数据表的操作

    • 查看当前数据库中所有表
    mysql> show tables; -- 显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
    +------------------+
    | Tables_in_demo   |
    +------------------+
    | bm_list          |
    | rhs_users        |
    +------------------+
    2 rows in set (0.00 sec)
    
    • 创建表
    -- auto_increment表示自动增长
    -- 创建一个学生的数据表(id、name、age、high、gender、cls_id)
    -- create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);   -- [] 表示可有可无
    -- 多个约束 不分先后顺序
    -- enum 表示枚举
    -- 最后一个字段不要添加逗号
    -- unsigned: 无符号, 不能够存储负数
    
    -- 创建students表
    mysql> create table students(
        ->         id int unsigned primary key auto_increment not null,
        ->         name varchar(10) not null,
        ->         age tinyint unsigned default 0,
        ->         high decimal(5,2) default 0.0,   -- 180.88
        ->         gender enum("男", "女", "中性", "保密") default "保密",
        ->         cls_id int unsigned not null
        ->     );
    Query OK, 0 rows affected (0.02 sec)
    
    • 查看表的创建语句
    mysql> mysql> show create table students;
    +----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table    | Create Table                                                                                                                                                                                                                                                                                                                                              |
    +----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | students | CREATE TABLE `students` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(10) NOT NULL,
      `age` tinyint(3) unsigned DEFAULT '0',
      `high` decimal(5,2) DEFAULT '0.00',
      `gender` enum('男','女','中性','保密') DEFAULT '保密',
      `cls_id` int(10) unsigned NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8         |
    +----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    • 查看表结构
    mysql> desc students;  -- show columns form students;也可以 -- 使用频率非常高
    +--------+-------------------------------------+------+-----+---------+----------------+
    | Field  | Type                                | Null | Key | Default | Extra          |
    +--------+-------------------------------------+------+-----+---------+----------------+
    | id     | int(10) unsigned                    | NO   | PRI | NULL    | auto_increment |
    | name   | varchar(10)                         | NO   |     | NULL    |                |
    | age    | tinyint(3) unsigned                 | YES  |     | 0       |                |
    | high   | decimal(5,2)                        | YES  |     | 0.00    |                |
    | gender | enum('男','女','中性','保密')         | YES  |     | 保密     |                |
    | cls_id | int(10) unsigned                    | NO   |     | NULL    |                |
    +--------+-------------------------------------+------+-----+---------+----------------+
    6 rows in set (0.00 sec)
    

    显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

    • 查看数据表的详细索引信息
    show index from students;
    
    image
    • 修改表结构
    -- add  -添加字段
    -- 用法: alter table 表名 add 列名 类型/约束;
    
    -- 给students表添加‘birthday‘字段,默认值为"2011-11-11 11:11:11"
    
    mysql> alter table students add birthday date default "2011-11-11";
    Query OK, 0 rows affected (0.02 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    -- 结果
    mysql> desc students;
    +----------+-----------------------------+------+-----+------------+----------------+
    | Field    | Type                        | Null | Key | Default    | Extra          |
    +----------+-----------------------------+------+-----+------------+----------------+
    | id       | int(10) unsigned            | NO   | PRI | NULL       | auto_increment |
    | name     | varchar(10)                 | NO   |     | NULL       |                |
    | age      | tinyint(3) unsigned         | YES  |     | 0          |                |
    | high     | decimal(5,2)                | YES  |     | 0.00       |                |
    | gender   | enum('男','女','中性','保密') | YES  |     | 保密       |                |
    | cls_id   | int(10) unsigned            | NO   |     | NULL       |                |
    | birthday | date                        | YES  |     | 2011-11-11 |                |
    +----------+-----------------------------+------+-----+------------+----------------+
    7 rows in set (0.00 sec)
    
    -- modify -修改表字段值  不重命名版
    -- 用法: alter table 表名 modify 列名 类型及约束;
    
    alter table students modify birthday date default "2011-11-11";
    
    -- change -修改表字段 重命名版
    -- 用法: alter table 表名 change 原列名 新列名 类型及约束;
    
    
    mysql> alter table students change birthday birth date default "2011-11-11";
    Query OK, 0 rows affected (0.01 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> desc students;
    +--------+------------------------------+------+-----+------------+----------------+
    | Field  | Type                         | Null | Key | Default    | Extra          |
    +--------+------------------------------+------+-----+------------+----------------+
    | id     | int(10) unsigned             | NO   | PRI | NULL       | auto_increment |
    | name   | varchar(10)                  | NO   |     | NULL       |                |
    | age    | tinyint(3) unsigned          | YES  |     | 0          |                |
    | high   | decimal(5,2)                 | YES  |     | 0.00       |                |
    | gender | enum('男','女','中性','保密')  | YES  |     | 保密       |                |
    | cls_id | int(10) unsigned             | NO   |     | NULL       |                |
    | birth  | date                         | YES  |     | 2011-11-11 |                |
    +--------+------------------------------+------+-----+------------+----------------+
    7 rows in set (0.00 sec)
    
    -- 删除字段  
    -- 用法: alter table 表名 drop 字段名
    
    alter table students drop birth;
    
    -- 删除表
    -- 用法: alter table 表名
    
    drop table students;
    
    

    一、Mysql学习笔记目录

    相关文章

      网友评论

          本文标题:Mysql学习笔记二 数据表的基础操作

          本文链接:https://www.haomeiwen.com/subject/tvywdctx.html