【MySQL基础知识】数据表操作

    科技2024-07-04  66

    目录

    1、创建表

    2、查看表结构

    2.1 describe

    2.2 show create table

    3、删除表

    4、修改表

    4.1 修改表名

    4.2 增加字段

    4.3 删除字段

    4.4 修改字段

    5、完整性约束条件 

    5.1 设置表字段的非空约束(NOT NULL,NK) 

    5.2 设置表字段默认值(default)

    5.3 设置表字段唯一约束(unique,uk)

    5.4 设置表字段主键约束(primary,pk)

    5.5 设置表字段值自动增加(auto_increment)

    5.6 设置表字段的外键约束(foreign key,fk)


    1、创建表

    create table tablename( 属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件], ...... 属性名 数据类型 [完整性约束条件]);

    例:在数据库中创建名为t_test表。

    mysql> use fan; Database changed mysql> create table -> t_test(classno int,cname varchar(20),loc varchar(20)); Query OK, 0 rows affected (0.47 sec)

    2、查看表结构

    查看表结构是指查看数据库中已经存在的表的定义。

    查看表结构的语句包括:describe和show create table

    2.1 describe

    mysql> describe t_test; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | classno | int | YES | | NULL | | | cname | varchar(20) | YES | | NULL | | | loc | varchar(20) | YES | | NULL | | +---------+-------------+------+-----+---------+-------+ 3 rows in set (1.98 sec)

    field:名称

    type:数据类型

    null:是否为空

    key:是否为主外键

    default:默认值

    extra:额外信息

    2.2 show create table

    mysql> show create table t_test; +--------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +--------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | t_test | CREATE TABLE `t_test` ( `classno` int DEFAULT NULL, `cname` varchar(20) DEFAULT NULL, `loc` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | +--------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (1.60 sec)

    看出存储引擎为:innodb;

    字符编码:utf8mb4;

    3、删除表

    删除表是指删除数据库中已经存在的表。

    删除表的时候回删除表中全部信息。

    使用drop table 语句删除没有被关联的普通表。

    mysql> drop table t_test;

    4、修改表

    4.1 修改表名

    语法格式:

    alter table oldTablename rename newTablename;

    oldTablename:所要修改表的名字;

    newTablename:参数表示修改后的新表名;

    要操作的对象必须在数据库中存在。

    例:修改数据库fan中t_test表的名称为tt_test;

    mysql> alter table t_test rename tt_test;

    4.2 增加字段

    字段就是表中的列,是由字段名和数据类型进行定义的。

    语句1:

    alter table tablename add propname proptype;

    tablename:表示所要修改表的名字;

    propname:参数所要增加字段的名称;

    proptype:所要增加字段存储数据的数据类型;

    例: 查看已经存在表:

    mysql> describe tt_test; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | classno | int | YES | | NULL | | | cname | varchar(20) | YES | | NULL | | | loc | varchar(20) | YES | | NULL | | +---------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)

    增加一个名为fan1的字段:

    mysql> alter table tt_test add fan1 varchar(20);

    查看表定义:

    mysql> describe tt_test; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | classno | int | YES | | NULL | | | cname | varchar(20) | YES | | NULL | | | loc | varchar(20) | YES | | NULL | | | fan1 | varchar(20) | YES | | NULL | | +---------+-------------+------+-----+---------+-------+ 4 rows in set (1.57 sec)

    语法2:

    alter table tablename add propname proptype first;

    first:表示字段在表中第一个位置;

    语法3:

    alter table tablename add pnamenew proptype after pnameold;

    pnameold:已经存在的字段名;

    pnamenew:参数表示新增的字段名;

    after:把pnamenew的位置将在pnameold之后;

    4.3 删除字段

    语法格式为:

    alter table tablename drop propname;

    tablename:参数所要修改表的名字;

    propname:删除字段的名字; 

    4.4 修改字段

    语句1:修改字段类型

    alter table tablename modify propname proptype;

    tablename:表示表的名称;

    propname:所修改字段的名称;

    proptype:为字段propname修改后的类型;

    语句2:修改字段名称

    alter table tablename change pnameold pnamenew ptypeold;

    tablename:表示表的名称;

    pnameold:参数为修改字段的名称;

    pnamenew:修改后的字段名;

    ptypeold为字段pnameold数据类型;

    语法3:同时修改字段名称和类型

    alter table tablename change pnameold pnamenew ptypenew;

    语法4:修改字段顺序

    alter table tablename modify pnamel proptype first|after pname2;

    pname1:参数为调整顺序的字段名称。

    first:表示第一个位置;

    after pname2:表示将字符段调整到pname2字段位置之后;

    5、完整性约束条件 

    注意: 

    field:名称

    type:数据类型

    null:是否为空

    key:是否为主外键

    default:默认值

    extra:额外信息

    5.1 设置表字段的非空约束(NOT NULL,NK) 

    当数据库表中某个字段上的内容不希望设置为null时,可以使用NK约束进行设置,保证所有记录中该字段都有值。

    创建表格f_3:

    mysql> create table f_3( -> num1 int not null, -> num2 int, -> name varchar(20)); Query OK, 0 rows affected (0.97 sec)

    查看表信息: 

    5.2 设置表字段默认值(default)

    创建表f_4:

    mysql> create table f_4( -> no int not null, -> name varchar(20) default 'f4'); Query OK, 0 rows affected (2.25 sec)

    查看信息:

    5.3 设置表字段唯一约束(unique,uk)

    当数据库表中某个字段上的内容不允许重复时,可以使用UK约束进行设置。

    创建表f_5:

    mysql> create table f_5( -> num1 int not null, -> num2 int unique, -> name varchar(20)); Query OK, 0 rows affected (2.36 sec)

    查看表信息:

    5.4 设置表字段主键约束(primary,pk)

    主键是表的一个特殊字段,能唯一标识该表中的每条信息。

    设置主键是指在创建表时设置表的字段为该表的主键。

    主键必须满足条件是必须唯一。

    主键可以是单字段主键,也可以是多字段的组合。

    单字段主键:

    创建表f_6:

    mysql> create table f_6( -> num1 int primary key, -> num2 int, -> name varchar(20)); Query OK, 0 rows affected (2.09 sec)

    检验具有单一主键的表:

    多字段主键:

    创建设置联合主键的表:

    mysql> create table f_7( -> num1 int, -> num2 int, -> name varchar(20), -> constraint pk_num1_num2 primary key(num1,num2)); Query OK, 0 rows affected (0.91 sec)

    查看f_7信息:

    5.5 设置表字段值自动增加(auto_increment)

    创建表f_8:

    mysql> create table f_8( -> num1 int primary key auto_increment, -> num2 int, -> name varchar(20)); Query OK, 0 rows affected (2.25 sec)

    查看表:

    5.6 设置表字段的外键约束(foreign key,fk)

    外键是表的一个特殊字段,外键约束是为了保证多个表之间的参照完整性。

    设置外键约束的两个表之间具有父子关系,即字表中某个字段的取值范围由父表决定。

    在具体设置fk约束时,设置fk约束的字段必须依赖于数据库中已经存在的父表的主键,同时外键可以为空。

    创建和查看表f_9:

    创建和查看表f_10:

    在具体设置外键时,子表f_10中所设外键字段的数据类型必须与父表f_9中所参考的字段数据类型一致。

    Processed: 0.012, SQL: 8