MySQL数据表操作

06-01 1162阅读

目录

常用数据类型

数值类型

整型

浮点型

字符串类型

日期类型

数据表的操作

查看表结构

创建表

约束

删除表

修改表

添加列

删除列

修改列的定义

重命名列

重命名表

总结


在学习了数据库操作之后,我们接着来看数据表的相关操作

我们首先来学习 MySQL 中的常用数据类型

常用数据类型

数值类型

数值类型分为 整型 和 浮点型,我们先看整型:

整型

数据类型大小说明对应Java类型
BIT(M)M指定位数,默认为1二进制数,M的范围从1到64,存储的数值范围为 0 - 2^M - 1当 M 取值为1 时,即只能存储 0 和 1,常用 Boolean 对应 BIT(1)
TINYINT1字节Byte
SMALLINT2字节Short
INT4字节Integer
BIGINT8字节存储大整数Long

浮点型

数据类型大小说明对应Java类型
FLOAT(M, D)4字节单精度,M指定长度,D指定小数位数。会发生精度丢失Float
DOUBLE(M, D)8字节Double
DECIMAL(M, D)M/D最大值 + 2双精度,M指定长度,D指定小数点位数,精确数值BigDecimal
NUMERIC(M, D)M/D最大值 + 2和 DECIMAL 一样BigDecimal

数值类型可以指定为无符号(unsigned),表示不取负数

1 字节(bytes) = 8 bit

对于整型类型的范围:

有符号范围: -2^(类型字节数*8 - 1) ~ 2^(类型字节数*8 - 1)

无符号范围:0 ~ 2^(类型字节数*8) - 1

字符串类型

数据类型大小说明对应Java类型
VARCHAR(SIZE)0-65 535字节可变长字符串String
CHAR0-255字节定长字符String
TEXT0-65 535字节长文本数据String
MEDIUMTEXT0-16 777 215字节中等长度文本数据String
BLOB0-65 535字节二进制形式的长文本数据byte[]

 其中,VARCHAR 是我们较为常用的类型,SIZE 表示最大字符长度,假设 size 为 1000,表明这一列最多能够存储 1000 个字符,若当前字符串比较短,可能只有2个字符,那么 varchar 会根据存储的内容动态扩容

日期类型

数据类型大小说明对应Java类型
DATETIME8字节范围从1000到9999年,不会进行时区的检索和转换

java.util.Date、

java.sql.Timestamp

TIMESTAMP4字节范围从1970 到 2038 年,自动检索当前时区并进行转换

java.util.Date、

java.sql.Timestamp

 

数据表的操作

需要操作数据库中表时,需要先使用该数据库:

use 数据库名;

查看表结构

语法: 

desc table_name;

示例:

MySQL数据表操作

MySQL数据表操作

创建表

语法: 

CREATE TABLE table_name (

    column1 datatype constraints COMMENT '注释',

    column2 datatype constraints,

    ...

    PRIMARY KEY (primary_key_column),

    FOREIGN KEY (foreign_key_column) REFERENCES other_table(other_column)

);

column1:列名(字段名)

datatype:字段数据类型

constraints:约束

COMMENT:可选的,可以添加字段说明(注释)

PRIMARY KEY (primary_key_column):指定表的主键,一张表中只能存在一个主键

FOREIGN KEY (foreign_key_column) REFERENCES other_table(other_column):指定 foreign_key_column 为外键,并与 other_table 表中的 other_column 相关联 

 

 在 MySQL 中会使用到 单引号(')、双引号(")以及 反引号(`)

单引号('):用于表示字符串文字

双引号("):也用于表示字符串文字

反引号(`):用于引用数据库对象的名称(如 表名、列名),特别是当名称中包含空格或与SQL关键字冲突时

例如,现在需要创建一个 订单表,并将表名命名为 order,但是 order 是关键字,此时,我们就可以使用 反引号(`)

create table `order`(

order_id,

nums int

);

 

接下来,我们通过一个具体的例子来继续学习:

创建一张员工表:

CREATE TABLE employees (

    employee_id INT AUTO_INCREMENT COMMENT '员工编号',

    first_name VARCHAR(50) NOT NULL,

    last_name VARCHAR(50) NOT NULL,

    hire_date DATE,

    salary DECIMAL(10, 2),

    PRIMARY KEY (employee_id)

); 

employee_id:自增的整数,作为主键

first_name、last_name:不允许为空的字符串

hire_date:日期字段

salary:具有两位小数的十进制数

 AUTO_INCREMENT:MySQL 中用于自动生成唯一数字的属性,通常用于主键列,当插入新的记录时,数据库会自动为这个列生成一个递增的数字值,这样,就不需要我们手动指定这个值,它会确保每条记录都有一个唯一的标识符

NOT NULL:MySQL 中的一个列约束,用于确保这一列在插入数据时不能有 NULL 值,也就是在插入或更新记录时,若不提供该列的值,就会报错,这个约束确保了数据的完整性和有效性

那么,什么是 约束 呢?

约束

 MySQL 中的约束,相当于限定条件,用于确保数据库中数据的 完整性 和 有效性,主要的约束有:

主键约束(PRIMARY KEY)

确保列的值唯一且非空,每个表只能有一个主键

CREATE TABLE students (

    student_id INT PRIMARY KEY,

    name VARCHAR(50)

);

 

唯一约束(UNIQUE)

 确保列中的每个值唯一,可以包含 NULL 值

CREATE TABLE users (

    user_id INT,

    email VARCHAR(255) UNIQUE

);

 

非空约束(NOT NULL)

确保列不能为 NULL 值

CREATE TABLE products (

    product_id INT PRIMARY KEY,

    product_name VARCHAR(100) NOT NULL

);

 

外键约束(FOREIGN KEY)

确保列中的值在另一个表的列中存在,维护表之间的关系

CREATE TABLE orders (

    order_id INT PRIMARY KEY,

    customer_id INT,

    FOREIGN KEY (customer_id) REFERENCES customers(customer_id)

);

 

默认值约束(DEFAULT)

 提供列的默认值,若插入时没有提供该列的值,则使用默认值

CREATE TABLE products (

    product_id INT PRIMARY KEY,

    stock INT DEFAULT 0

);

 

检查约束(CHECK)

确保列中的数据符合特定条件

CREATE TABLE employees (

    employee_id INT PRIMARY KEY,

    salary DECIMAL(10, 2),

    CHECK (salary > 0)

);

删除表

DROP TABLE [IF EXISTS] table_name1, table_name2... ;

示例:

删除名为 employees 的表

DROP TABLE employees;

 若 student 表存在,则删除

DROP TABLE IF EXISTS student;

一次性删除多张表

 DROP TABLE table1, table2, table3; 

注意:删除表会同时删除表结构和数据,因此,删除需要谨慎操作

 

修改表

修改表结构使用 ALTER TABLE 语句,可以对表进行多种修改,如添加列、删除列 或是 修改列

添加列

ALTER TABLE table_name ADD COLUMN column_name column_definition;

示例:

ALTER TABLE employees ADD COLUMN date_of_birth DATE;

删除列

ALTER TABLE table_name DROP COLUMN column_name;

示例:

ALTER TABLE employees DROP COLUMN date_of_birth;

修改列的定义

ALTER TABLE table_name MODIFY COLUMN column_name new_column_definition;

示例:

ALTER TABLE employees MODIFY COLUMN last_name VARCHAR(100);

重命名列

ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name column_definition;

 示例:

ALTER TABLE employees CHANGE COLUMN last_name surname VARCHAR(100);

重命名表

 ALTER TABLE old_table_name RENAME TO new_table_name;

示例:

 ALTER TABLE employees RENAME TO staff; 

注意:修改表结构可能会影响数据的完整性,因此,在进行相关操作之前,需要确保已经备份了相关数据

 

总结

常用数据类型:

INT:整型

DECIMAL(M, D):浮点型

VARCHAR(SIZE):字符串类型

TIMESTAMP:日期类型

 

操作数据表:

查看表结构:

desc 表名;

创建表:

create table 表名(

字段1 类型1,

字段2 类型2,

...

);

 

删除表:

drop table 表名;

 

修改表:

添加列:

alter table 表名 add column 列名 类型;

删除列:

alter table 表名 drop column 列名;

修改列的定义:

alter table 表名 modify column 列名 新数据类型;

重命名列:

alter table 表名 change column 旧列名 新列名 数据类型;

重命名表:

alter table 旧表名 rename to 新表名;

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码