zoukankan      html  css  js  c++  java
  • NoteOfMySQL-04-数据表的使用

    1. 创建数据表

    【注】:使用前需要先用use选择数据库。

    (1)语法格式

    create [temporary] table [if not exists] table_name [( [column_definition], ... | [index_definition] )] [table_option] [select_statement] [ENGINE=存储引擎类型]  [DEFAULT CHARSET=字符集类型] [PACK_KEYS=压缩类型]
    

    (2)参数说明

    参数 说明
    temporary 使用此关键字表示创建临时表
    index_definition 为表的相关字段指定索引
    column_definition 字段的定义,如下
    col_name type [NOT NULL | NULL] [DEFAULT default_value] [auto_increment] [UNIQUE[key]] | [PRIMARY[key]]  [comment 'String'] [reference_definition]
    

    其中,

    • auto_increment:设置自增,type需为整形类型
    • UNIQUE、PRIMARY:指定主键、唯一性约束
    • reference_definition:指定字段外键约束

    (3)表文件名

    存储引擎类型 表文件
    InnoDB 表名.frm
    MyISAM 表名.myd[数据文件]、表名.myi[索引文件]

    (4)例子

    创建数据表

    2. 查看数据表

    (1)显示表名称

    show tables;
    

    (2)显示表结构

    [describe | desc] table_name;
    show create table table_name;
    show full columns from table_name;
    

    (3)例子

    查看数据表

    3. 修改数据表

    (1)修改数据表名

    alter table old_table_name rename [to] new_table_name;
    

    例子:将student表名修改为pupil

    将student表名修改为pupil

    (2)修改字段数据类型

    alter table table_name modify col_name type;
    

    例子:将sname的数据类型从varchar(15)修改为varchar(30)

    将sname的数据类型从varchar(15)修改为varchar(30)

    (3)修改字段名

    alter table table_name change old_col_name new_col_name type;
    

    例子:将sbirth(date)修改为sdate(date),数据类型不修改。

    将sbirth(date)修改为sdate(date),数据类型不修改

    (4)添加字段

    alter table table_name add new_col_name type [约束条件] [ [FIRST] | [AFTER col_name] ];
    
    • 参数说明:FIRST表示将字段设置为第一个字段;AFTER表示将字段添加到col_name后面。

    例子:无完整性性约束anoid、有完整性性约束mark、使用FIRSTtestid、使用AFTERmarkid。

    添加字段

    (5)删除字段

    alter table table_name drop col_name;
    

    (6)修改字段排序

    alter table table_name modify col_name01 type [ [FIRST] | [AFTER col_name02] ];
    

    例子:markid字段移到sclass字段后面。

    markid字段移到sclass字段后面

    (7)修改存储引擎

    alter table table_name engine=新搜索引擎;
    

    (8)删除数据表的外键约束

    alter table table_name drop foreign key 外键约束名;
    

    例子:删除外键zno

    删除外键zno

    4. 复制数据表

    (1)语法格式

    create [temporary] table [if not exists] table_name [ [LIKE old_table_name] | [AS (select_statement)] ];
    

    (2)参数说明

      使用LIKE则将old_table_name表的字段结构和索引全部复制到table_name。
      使用AS则选择old_table_name表的特定字段复制到table_name。

    (3)注意

      复制表时都不会复制权限设置。

    (4)例子

    复制数据表

    5. 删除数据表

    (1)语法格式

    drop table [if exists] table_name1[, table_name2, ...]
    

    (2)注意

    • 当数据表之间不存在关联时,可以同时删除多个表。
    • 当数据表之间存在外键关联时:如果必须要删除,可以先删除与他关联的子表,再删除父表;如果只想删除父表,保留子表,只需将关联的表的外键约束条件取消。

    (3)例子

    删除数据表

    6. 注意事项

    (1)列的标志属性

      任何表都可以创建一个包含系统所生成序号值的标志列。
      该序号值唯一标志表中的一列,且可以作为键值。
      每个表中只能有一个列设置为标志属性,并且该列只能是decimal、numeric、int、smallint、bigint、tinyint数据类型。

    (2)列类型的隐含改变

      在MySQL中,存在一下情况之一时,系统会隐含地改变列的数据类型。

    • 1)长度小于4的varchar类型会被改变为char类型。
    • 2)当一张表中含有可变长列时,表中所有大于3个字符的char类型列都会被改变为varchar类型。
  • 相关阅读:
    分类管理模块
    Java8新特性 集合的stream的map
    条件和分页查询
    工作常用系统汇总
    Dubbo简单环境搭建
    深入浅出 TCP/IP 协议栈
    非对称加密
    理解Cookie和Session机制
    jQuery学习
    数据库系列学习(六)-函数之数学函数
  • 原文地址:https://www.cnblogs.com/bpf-1024/p/14058762.html
Copyright © 2011-2022 走看看