MySQL数据库对表的操作

1.表的基本概念:

    表示包含数据库中所有数据的数据库对象

    表中的数据库对象包含列,索引和触发器

    列(列):也称属性列

    索引(索引):是指根据指定的数据库表列建立起来的顺序,提供了快速访问数据的途径且可监督表的数据,使其索引所指向的列中的数据不重复

    触发器(触发器):是指用户定义的事务命令的集合,当对一个表中的数据进行插入,更新或者删除时这组命令就是自动执行,可以用来确保数据的完整性和安全性

2.创建表:

    CREATE TABLE table_name(

    属性名数据类型,

    属性名数据类型,

    。

    。

    属性名数据类型

    );

    建议表名标识符为t_xxx或tab_xxx

    2.1注意事项:

        1,创建表之前需要选择数据库,否则报错:未选择数据库(选择数据库的语句:USE database_name)

        2、如果数据库中已经存在该表,则报错:Table 'table_name' already exists

3.查看表结构:

    3.1查看表的定义:

        DESCRIBE table_name;

    3.2查看表结构的详细定义:

        SHOW CREATE TABLE table_name;

4.删除表:

    DROP TABLE table_name;

5.修改表:

    5.1修改表名:

        ALTER TABLE old_table_name RENAME [TO] new_table_name;(可以通过DESC查询是否修改成功)

    5.2增加字段:

        在表的最后一个位置增加字段:

        ALTER TABLE table_name ADD 属性名 属性类型;

        在表的第一个位置增加字段:

        ALTER TABLE table_name ADD 属性名 属性类型 FIRST;

        在表的指定字段之后增加字段:

        ALTER TABLE table_name ADD 属性名 属性类型 AFTER 属性名;

    5.3删除字段:

        ALTER TABLE table_name DROP 属性名;

    5.4修改字段:

        5.4.1修改字段的数据类型:

                ALTER TABLE table_name MODIFY 属性名 数据类型;

        5.4.2修改字段的名字:

                ALTER TABLE table_name CHANGE 旧属性名 新属性名 旧数据类型;

        5.4.3同时修改字段的名字和属性

                ALTER TABLE table_name CHANGE 旧属性名 新属性名 新数据类型;

        5.4.4修改字段的顺序:

                ALTER TABLE table_name MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2;

6.操作表的约束:

    针对表中的数据做一些完整性检查操作,通过表的约束完成

    完整性是指数据的准确性和一致性

    MySQL支持的完整性约束:

    完整性约束关键字                                                    含义

    NOT NULL                                                    约束字段的值不能为空

    DEFAULT                                                      设置字段的默认值

    UNIQUE KEY(UK)                                     约束字段的值唯一

    PRIMARY KEY(PK)                                    约束字段为表的主键,可以作为该表记录的唯一标识

    AUTO_INCREMENT                                      约束字段的值为自动增加

    FOREIGN KEY(FK)                                     约束字段为表的外键

    6.1约束可以分为两类:

        单列约束:即每个约束只约束一列数据;

        多列约束:即每个约束可以约束多列数据;

   

    6.2NOT NULL(NK):

        CREATE TABLE table_name(

            属性名 数据类型 NOT NULL,

        );

    

    6.3DEFAULT:

        CREATE TABLE table_name(

            属性名 数据类型 DEFAULT 默认值,

        );


    6.4UNIQUE:

        CREATE TABLE table_name(

            属性名 数据类型 UNIQUE L,

        );(如果插入重复报错:ERROR 1062 (23000):Duplicate entry 'c' for key 'dname')

        (如果想给字段dname上的UK约束设置一个名字,可以执行SQL语句CONSTRAINT)

        例如:

        CREATE TABLE t_dept(

            deptno INT,

            dname VARCHAR(20),

            loc VARCHAR(40),

            CONSTRAINT uk_dname UNIQUE(dname)

        );


    6.5PRIMARY KEY(PK)

        用该字段来唯一标识所有记录,便于数据库管理系统快速查找到表中的记录(分为单子段主键和多字段主键)

        6.5.1单子段主键:

            CREATE TABLE table_name(

                属性名 数据类型 PRIMARY KEY,

            );

            (如果想给字段dname上的PK约束设置一个名字,可以执行SQL语句CONSTRAINT)

            例如:

            CREATE TABLE t_dept(

                deptno INT,

                dname VARCHAR(20),

                loc VARCHAR(40),

                CONSTRAINT pk_dname PRIMARY KEY(dname)

            );

        6.5.2多字段主键:

            CREATE TABLE table_name(

                属性名数据类型,

                [CONSTRAINT约束名] PRIMARY KEY(属性名,属性名...)

            );

            (如果想给字段DNAME上的PK约束设置一个名字,可以执行SQL语句约束)

            例如:

            CREATE TABLE t_dept(

                deptno INT,

                dname VARCHAR(20),

                loc VARCHAR(40),

                CONSTRAINT pk_dname PRIMARY KEY(dname)

            );

    6.6AUTO_INCREMENT:

        一个数据库表中只能有一个字段使用该约束,该字段的数据类型必须是整数类型

        CREATE TABLE table_name(

            属性名数据类型AUTO_INCREMENT,

        );


    6.7FORIGN KEY(FK):

        外键保证两个多个表之间的参照完整性

        设置外键约束的两个表之间会具有父子关系,子表中的为外键

        CREATE TABLE table_name(

            属性名数据类型,

            属性名数据类型

            ......

            CONSTRAINT外键约束名FOREIGN KEY(属性名1)

                参考表名(属性2)

        );

猜你喜欢

转载自blog.csdn.net/qq_38386085/article/details/80609104