当前位置:   article > 正文

MySQL数据库表的基本操作_mysql数据表

mysql数据表

目录

一、创建表

二、数据类型

1、Text类型

 2、Number 类型

3、Date 类型

 4、常用数据类型

三、查看表

1、查看数据表名语法

2、 查看数据表结构语法

四、删除表

五、修改表的结构

1、修改列类型

2、增加列

3、删除列 

4、修改列名

5、修改列的顺序

6、更改表名

 六、复制表结构

七、 表的约束

1、非空约束(NOT NULL)

 2、唯一约束(UNIQUE)

3、主键约束(PRIMARY KEY)

4、外键约束(REFERENCES)

5、默认值约束

6、删除表的约束

7、自动增长和默认值

八、数据库字典


 

 

一、创建表

数据表的每行称为一条记录,每一列称为一个字段。

标准的建表语法:

CREATE TABLE 表名(

列名 列类型,

列名 列类型

);

 例子:创建一个学生表

  1. mysql> create table su(
  2. -> id int(10),
  3. -> name varchar(10),
  4. -> age int(5)
  5. -> );

f76daed5c1ed45bbb4c64c3d74dd3ea8.png

二、数据类型

在MySQL中,有三种主要的类型:文本、数字、日期/时间类型。

1、Text类型

65d88129a7b24437983c984cabdd7a08.png

 2、Number 类型

47c557692e9d4b4b871f2d8b10cd82c0.png

 注意:这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加

UNSIGNED属性,那么范围将从 0 开始,而不是某个负数。

3、Date 类型

9b86a611ec0143bfb9c4d6055cd00628.png

 4、常用数据类型

7dff4252934a4557aeeaf87de4b81ddb.png

三、查看表

1、查看数据表名语法

SHOW TABLES;

9dd4f47f77504f4ba7d1bc08ea90d593.png

2、 查看数据表结构语法

(1)DESC 表名;

(2)SHOW COLUMNS FROM 表名;

(3)SHOW CREATE TABLE 表名 \G;     ————查看更全面的表定义信息

09499bcf28f440e19b43a576487e62c8.png

四、删除表

DROP TABLE
 
语法:
        DROP TABLE [IF EXISTS] 表名;
 
功能:删除指定的表

d555ccf54d5c4469a8c82b73a0a46e48.png

五、修改表的结构

1、修改列类型

alter table 表名 modify 列名 列类型;

 5de5a6be4aff4850854953b3e6255bc5.png

2、增加列

alter table 表名 add 列名 列类型;

b30b798fe8b241809685fdebe992846e.png

3、删除列 

alter table 表名 drop 列名;

078f9d0c319344ccb46b641462794490.png 

4、修改列名

alter table 表名 change 旧列名 新列名 列类型;

 c19ef99c302d4044882fd65a576706f3.png

5、修改列的顺序

alter table 表名 modify 列名2 列2类型 after 列名1;

 

注意:如果要将列名放在第一位

atler table 表名 列名 列类型 first;

 c1c86cc4054b41ccb2efdc84a08875ac.png

6、更改表名

(1)alter table 表名 rename 新表名;

(2)rename table 表名 to 新表名;

6da8b9170bbc4efbb1bc79d2af651c95.png

 六、复制表结构

 复制一个表结构的实现方法有两种:

方法一、在create table 语句的末尾添加like子句,可以将原表的表结构复制到新表中。

语法格式如下:

create table 新表名 like 源表;

 b377f36c7f434d3f9953199ab19e83e9.png

 方法二、在create table 语句的末尾添加一个select 语句,可以实现表结构的复制,甚至可以将原表的表记录拷贝到新表中。

语法格式如下:

create table 新表名 select * from 原表;

 

如果已存在一张结构一致的表,需要复制数据。

语法格式如下:

insert into 表 select * from 原表;

544869bba3d54ee29a6d8e11bad71e13.png

七、 表的约束

定义:约束是在表上强制执行的数据校验规则。约束主要用于保证数据库的完整性。当表中数据有相互依赖性时,可以保护相关的数据不被删除。大部分数据库支持下面五类完整性约束。

约束作为数据库对象,存放在系统表中,也有自己的名字
创建约束的时机
        在建表的同时创建
        建表后创建(修改表)
可定义列级或表级约束
有单列约束和多列约束
 
定义约束的语法
        列级约束:在定义列的同时定义约束
                语法:列定义 约束类型,
        表级约束:在定义了所有列之后定义的约束
                语法:
                        列定义
                        [CONSTRAINT 约束名] 约束类型(列名)
约束名的取名规则
        推荐采用:表名_列名_约束类型简介
约束可以在创建表时就定义,也可以在创建完后再添加
语法:
        alter table 表名 add constraint 约束名 约束类型(要约束的列名)

1、非空约束(NOT NULL)

列级约束,只能使用列级约束语法定义。
确保字段值不允许为空
只能在字段级定义
 
CREATE TABLE tb_student(
        id INT PRIMARY KEY AUTO_INCREMENT,   #主键、自增。
        NAME VARCHAR(18) NOT NULL
);
 
NULL
所有数据类型的值都可以是NULL。
空字符串不等于NULL。
0也不等于NULL。

 e76a4a0c6580441a84081e5448e9f3bd.png

 2、唯一约束(UNIQUE)

唯一性约束条件确保所在的字段或者字段组合不出现重复值
唯一性约束条件的字段允许出现多个NULL
同一张表内可建多个唯一约束
唯一约束可由多列组合而成
建唯一约束时MySQL会为之建立对应的索引。
如果不给唯一约束起名,该唯一约束默认与列名相同。
 
CREATE TABLE tb_student(
        id INT PRIMARY KEY AUTO_INCREMENT,
        NAME VARCHAR(18) UNIQUE NOT NULL
);

5a77041b58d747f1959e0c63a80d9e38.png

3、主键约束(PRIMARY KEY)

主键从功能上看相当于非空且唯一
一个表中只允许一个主键
主键是表中唯一确定一行数据的字段
删除表的约束
自动增长和默认值
存储引擎
主键字段可以是单字段或者是多字段的组合
当建立主键约束时,MySQL为主键创建对应的索引
主键约束名总为PRIMARY。
 
CREATE TABLE tb_student(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(18)
);

8747afedd08743bbae70b86020cfd066.png

4、外键约束(REFERENCES)

外键是构建于一个表的两个字段或者两个表的两个字段之间的关系
外键确保了相关的两个字段的两个关系:
子(从)表外键列的值必须在主表参照列值的范围内,或者为空(也可以加非空约束,强制不允许为空)。
当主表的记录被子表参照时,主表记录不允许被删除。
外键参照的只能是主表主键或者唯一键,保证子表记录可以准确定位到被参照的记录。
 
格式FOREIGN KEY (外键列名)REFERENCES 主表(参照列)
 
CREATE TABLE tb_dept(
        dept_id INT PRIMARY KEY,
        NAME VARCHAR(18),
        description VARCHAR(255)
);
 
CREATE TABLE tb_employee(
        employee_id INT PRIMARY KEY,
        c_id int,
       foreign key (c_id) REFERENCES tb_dept(dept_id),
);

d2b984485ea640f2ad90beade355be9e.png 

5、默认值约束

6、删除表的约束

(1)删除NOT NULL约束
                alter table 表名 modify 列名 类型;
(2)删除UNIQUE约束
                alter table 表名 drop index 惟一约束名;
(3)删除PRIMARY KEY约束
                alter table 表名 drop primary key;
(4)删除FOREIGN KEY约束
                alter table 表名 drop foreign key 外键名;

7、自动增长和默认值

auto_increment :自动增长
        为新的行产生唯一的标识
        一个表只能优一个auto_increment,且该属性必须为主键的一部分。auto_increment的属性可以是 任何整数类型
        
default : 默认值

八、数据库字典

由information_schema数据库负责维护
tables-存放数据库里所有的数据表、以及每个表所在数据库。
schemata-存放数据库里所有的数据库信息
views-存放数据库里所有的视图信息。
columns-存放数据库里所有的列信息。
triggers-存放数据库里所有的触发器。
routines-存放数据库里所有存储过程和函数。
key_column_usage-存放数据库所有的主外键
table_constraints-存放数据库全部约束。
statistics-存放了数据表的索引。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/460315
推荐阅读
相关标签
  

闽ICP备14008679号