zoukankan      html  css  js  c++  java
  • MySQL 表

    1. 建表的基本语法:

    # 语法
    CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];
    # 表定义选项的格式:<字段> <type>,<字段> <type>, ...

    在当前数据库下创建表

    # 切换数据库
    mysql> use test_db
    Database changed
    
    # 在当前数据库创建表 student mysql
    > create table student (id INT(5),name varchar(10),age int(3)); Query OK, 0 rows affected, 2 warnings (0.04 sec)
    # 显示当前数据库的表 mysql
    > show tables; +-------------------+ | Tables_in_test_db | +-------------------+ | student | +-------------------+ 1 row in set (0.00 sec)

    在其他数据库下创建表:使用<DBname>.<TableName>

    mysql> create table atmuser.test (name varchar(5));
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> desc atmuser.test;
    +-------+------------+------+-----+---------+-------+
    | Field | Type       | Null | Key | Default | Extra |
    +-------+------------+------+-----+---------+-------+
    | name  | varchar(5) | YES  |     | NULL    |       |
    +-------+------------+------+-----+---------+-------+

    2. 查看所有表

    # 查看当前数据库的表
    mysql
    > show tables; +-------------------+ | Tables_in_test_db | +-------------------+ | student | +-------------------+
    # 查看其他数据库下的表 使用关键字 in mysql
    > show tables in atmuser; +-------------------+ | Tables_in_atmuser | +-------------------+ | test | | user | +-------------------+

    3. 查看表结构

    • Null:表示该列是否可以为 NULL 
    • Key:表示该列是否已编制索引。PRI 表示该列是表主键的一部分,UNI 表示该列是 UNIQUE 索引的一部分,MUL 表示在列中某个给定值允许出现多次。
    • Default:表示该列是否有默认值
    • Extra:其他额外信息,如 AUTO_INCREMENT 等。

    mysql> desc atmuser.user; +----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+----------------+ | id | int(10) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | | password | varchar(20) | YES | | NULL | | | balance | int(10) | YES | | NULL | | | debt | int(10) | YES | | NULL | | +----------+-------------+------+-----+---------+----------------+

    4. 查看建表时的语句:

    # G 可以规范的打印
    mysql> show create table atmuser.userG; *************************** 1. row *************************** Table: user Create Table: CREATE TABLE `user` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `password` varchar(20) DEFAULT NULL, `balance` int(10) DEFAULT NULL, `debt` int(10) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 1 row in set (0.00 sec)

    5. 修改表结构

    语法

    ALTER TABLE <表名> [修改选项]

    修改选项:
    # 添加新字段
    ADD COLUMN <字段> <类型> [first|after <已存在的字段>]
    # 修改字段和类型
    | CHANGE COLUMN <旧字段> <新字段> <新列类型>
    #
    | ALTER COLUMN <字段> { SET DEFAULT <默认值> | DROP DEFAULT }
    # 修改字段的类型
    | MODIFY COLUMN <字段> <新类型>
    # 删除字段
    | DROP COLUMN <字段>
    # 重命名表
    | RENAME TO <新表名> }

    e.g.

    # 查看当前表
    mysql> show tables; +-------------------+ | Tables_in_test_db | +-------------------+ | student | +-------------------+ # 查看表结构 mysql> desc student; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(5) | YES | | NULL | | | name | varchar(10) | YES | | NULL | | | age | int(3) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ # 添加新字段 class,指定位置 放到字段 class之后(不指定位置则默认放到最后) mysql> alter table student -> add column class varchar(5) after name; Query OK, 0 rows affected (0.04 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> desc student; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(5) | YES | | NULL | | | name | varchar(10) | YES | | NULL | | | class | varchar(5) | YES | | NULL | | | age | int(3) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+

    6. 删除数据表

    语法:

    DROP TABLE [IF EXISTS] <表名> [ , <表名1> , <表名2>]

    e.g.

    mysql> show tables
        -> ;
    +-------------------+
    | Tables_in_test_db |
    +-------------------+
    | student           |
    | test              |
    +-------------------+
    
    
    mysql> drop table if exists test;
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> show tables;
    +-------------------+
    | Tables_in_test_db |
    +-------------------+
    | student           |
    +-------------------+

     

  • 相关阅读:
    文件上传之 MultipartFile
    EL表达式从数组 Map List集合取值
    Servlet监听器
    分页技术框架(Pager-taglib)学习三(pager-taglib中传递参数时中文乱码问题)
    分页技术框架(Pager-taglib)学习二(SSH数据库分页)
    分页技术框架(Pager-taglib)学习一(页面分页)
    从request获取各种路径总结
    jsp的页面包含——静态包含、动态包含
    Java对象的浅克隆和深克隆
    Java序列化与反序列化学习(三):序列化机制与原理
  • 原文地址:https://www.cnblogs.com/wztshine/p/11947502.html
Copyright © 2011-2022 走看看