zoukankan      html  css  js  c++  java
  • mysql中的数据表操作

    1 数据表的创建

    详细情况可以参考创建表CREATE TABLE语法
    关于constraint的使用可以参见mysql constraint

    语法规范:
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] <tbl_name>
    (
        col_name type [NOT NULL | NULL] [DEFAULT default_value]
            [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
            [COMMENT 'string'],
        ... 
    ) [table_options] [select_statement];
    实际上使用的时候:
        TEMPORARY一般不需要使用,这个关键字用于创建临时表
        if not exists建议使用
        括号中为实际字段的定义:
            type为数据类型
            NOT NULL | NULL:指定该列是否可以为空,如不指定则默认值为NULL
            DEFAULT:用于指定默认值,如果不指定则mysql自动分配。自动分配的默认值
                1. 默认为NULL
                3. 例外的情形:auto_increment-->下一个值; 表中第一个timestamp类型的列,为当前日期时间的timestamp;
            AUTO_INCREMENT: 从1开始, 必须被索引,一个表中只能有一个自增列
            UNIQUE
            KEY: index的同义词
            PRIMARY KEY: 隐式指定 NOT NULL, UNIQUE, 唯一。
    table options通常用于指定engine和[DEFAULT] CHARACTER SET以及COLLATE
    
    例:
        a. 创建普通表
            create table if not exists mytable
            (
                id    INT(11),
                name    VARCHAR(30)
            )ENGINE=MyISAM character set=utf-8;
        b. 设定主键
            i) 直接在列类型后面添加
                create table if not exists mytable
                (
                    id    INT(11)    PRIMARY KEY,
                    name    VARCHAR(30)
                );
            ii) 单独指定,该方法也可以用于创建多列联合主键
                [CONSTRAINT <主键名>] PRIMARY KEY(列名1 [ ,列名2,…])
    
                create table if not exists mytable
                (
                    id    INT(11),
                    name    VARCHAR(30),
                    PRIMARY KEY(id)
                );
        c. 外键
            [CONSTRAINT <外键名>] FOREIGN KEY(列名1 [ ,列名2,…]) REFERENCES <主表名>(主键列1 [ ,主键列2,…])
    

    2 数据表的结构

        a desc|describe直接查看表中的字段信息
            desc mytable;
        b show create查看表的创建信息
            show create table mytable;
    

    3 修改表名

        语法规范:
        ALTER TABLE <旧表名> RENAME [TO] <新表名>;
        例:
        alter table mytable rename to new_name;
    

    4 修改字段名

        ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;    
        例:
        alter table mytable change id myid int(11);
    

    5 修改字段信息

        ALTER TABLE <表名> MODIFY <字段1> <数据类型> [FIRST|AFTER <字段2>];    
        a 修改字段的数据类型
            alter table mytable modify id int(10);
    
        b 修改字段的相对位置
            alter table mytable modify id int(10) after name;
    

    6 添加字段

        ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST | AFTER 已存在字段名];
        这个方法也可以用来添加表的完整性约束。
    

    7 删除字段

        ALTER TABLE <表名> DROP <字段名>;
        这个方法也可以用来删除PK, FK, Unique等约束
        ALTER TABLE <表名> DROP PRIMARY KEY|FOREIGN KEY|INDEX <字段名>;
    

    8 修改存储引擎

        ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;
    

    9 删除表

        独立表可以直接删除:
            DROP TABLE [IF EXISTS]表1, 表2, . . . 表n;
        对于有外键关联的表,需要删除表中或者主表中的外键字段,然后删除该表。
    

    10 显示表

        show tables;
    

    11 表的完整性约束

        a alter table add 添加
            alter table [table_name] add constraint [constraint_name] [unique| primary key|foreign key] ([column_names])
        b alter table drop删除
    
  • 相关阅读:
    Linux免密登录
    HDFS shell 常用命令
    zabbix4.4图表中文显示乱码解决办法
    安装zabbix-agent
    安装配置zabbix4.4
    elasticsearch插件sql安装
    dedecms调用头部文件 dede:include时页面出现一行空白的解决方案
    DedeCMS <=5.7 SP2 file_class.php 任意文件上传漏洞
    DedeCMS后台文件任意上传漏洞media_add.php的修改方法
    织梦DEDECMS任意文件上传漏洞与注入漏洞修复方法
  • 原文地址:https://www.cnblogs.com/noway-neway/p/5207294.html
Copyright © 2011-2022 走看看