mysql数据库表的基本操作

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

表的操作

表示数据库存储数据的基本单位,由若干个字段组成,主要用来存储数据记录,表的操作是增删改查,这是最基本的操作,也是最重要的操作

创建表

语法create table 表名

(字段类型[(宽度约束条件],

 字段类型[(宽度约束条件]

);

在同一张表中字段名不能相同

宽度和约束条件是可选的

字段名和类型是必须的

 

实例:

Use school

Create table student

(name char(10),

Sex char(8),

Age int(3),

Password varchar(50)

);

查看表结构

Describe 表名;

Desc 表名;

Show create table 表名;  //查看表详细结构

表完整性约束为了保障数据的完整性一致性和准确性

关键字primkary key 主键, 唯一标识的一个记录

Foreign key 外键 ,做关联

No null 非空

Unique key 唯一约束,这本身就是一个索引

Default 默认值

Auto_increment 自增长

 

实例:

Use school

Create table student

(name char(10) not null,

Sex enum (male,female), default male not null

Age int unsigned not null default 18,                    //unsigned修饰值必须为正值

Hobby set (music,book,disc) default book,disc

);

 

 

设置唯一约束实例:unique

Create table departtment(

Dept_id int,

Dept_name varchar(30) unique,

Comment varchar(50)

 

);

 

设置主键约束实例:primary key非常重要,唯一标识符,这本身就是一条索引

使用单列做主键

Create table departtment(

Dept_id int primary key,

Dept_name varchar(30) ,

Comment varchar(50)

);

 

 

使用多列做主键,也就是复合主键,也就是说这两个共同一起是不能有相同的数据的

Create table departtment(

Dept_id int ,

Dept_name varchar(30),

Comment varchar(50),

Constraint pk_id_name primary key (dept_id,dept_name)

);

 

设置自增长auto_increment  自增长通常都是配合主键共同使用的,而且这个字段必须是整数类型才行

Create table student(

Dept_id int  primary auto_increment,

Dept_name varchar(30),

Comment varchar(50)

);

 

 

设置外键约束foreign key主要做表的关联,这里就涉及到父子表的概念,外键必须要存储引擎来支撑的,所以必须要确保存储引擎是innodb才行

实例

父表

Create table empolyees(

 

Name varchar(20) not null,

Mail varchar (20),

Primary key (name)

)engine=innodb;

 

 

 

子表

Create table pryroll(

Id int(5) not null,

Name varchar(20) not null,

Payroll float (10,2) no null,

Primary key (id),

Constraint fk_name foreign key (name) references employees (name)

on udate cascade

on delete cascade           //字表中的nameemployees 表的name字段关联,并且同步删除更新,父表中有那个人,子表中才能够插入,不然是不行的

 

)engine=innodb;

 

 

修改表

修改表名

Alter table 旧表名  rename 新表名

实例:

Alter table stu rename student;  //stu表改名为student

Alter table student engine=myisam;  //修改student表的存储引擎为myisam

 

增加字段

Alter table 表名

 Add字段名 数据类型 [完整性约束条件.....],

Add字段名 数据类型 [完整性约束条件.....];

默认情况下新增加的字段是放在所有字段后面的

实例:

Alter table student

Add name varchar(30) not null,

Add age int not null;

 

Alter table 表名

Add字段名 数据类型 [完整性约束条件.....] first;

实例:

Add stu_num varchar(30) not null first;

 

 

Alter table 表名

Add字段名 数据类型 [完整性约束条件.....] after 字段名;

实例:

Add passord  varchar(30) not null after name;

 

 

删除字段

Alter table 表名 drop 字段名;

实例:

Alter table student drop stu_num;

 

 

 

 

修改字段

Alter table 表名 modify 字段名 数据类型 [完整性约束条件......]; //只能针对旧有的字段操作只能改名

 

Alter table 表名 change 旧字段名 新字段名 旧数据类型 [完整性约束条件......];

一般用这个

实例:

Alter table student change name stu_name varchar(30);

 

 

Alter table 表名 change 旧字段名 新字段名 新数据类型 [完整性约束条件......];

 

实例:

Alter table student change stu_name name varchar(50) not null;

 

 

 

删除表

Drop table 表名;

实例:

Drop table student

本文转自    探花无情   51CTO博客,原文链接:http://blog.51cto.com/983865387/1917416


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
关系型数据库 MySQL 数据库
数据迁移脚本优化过程:从 MySQL 到 Django 模型表
在大规模的数据迁移过程中,性能问题往往是开发者面临的主要挑战之一。本文将分析一个数据迁移脚本的优化过程,展示如何从 MySQL 数据库迁移数据到 Django 模型表,并探讨优化前后的性能差异。
|
存储 关系型数据库 MySQL
MySQL数据库开发进阶:精通数据库表的创建与管理22
【7月更文挑战第22天】数据库的创建与删除,数据表的创建与管理
229 1
|
关系型数据库 MySQL
蓝易云 - 如何修复MySQL中损坏的表
最后,为了防止数据丢失,定期备份数据是非常重要的。
312 3
|
存储 关系型数据库 MySQL
MySQL的一些基本操作
MySQL的一些基本操作
159 1
|
存储 SQL 关系型数据库
MySQL设计规约问题之在数据库设计中,为什么要适当考虑反范式的表设计
MySQL设计规约问题之在数据库设计中,为什么要适当考虑反范式的表设计
|
SQL 存储 数据库
MySQL设计规约问题之如何处理日志类型的表
MySQL设计规约问题之如何处理日志类型的表
|
运维 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在处理MySQL表新增数据记录时,没有正确触发变更事件,该如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL 关系型数据库 MySQL
ClickHouse(23)ClickHouse集成Mysql表引擎详细解析
ClickHouse的MySQL引擎允许执行`SELECT`查询从远程MySQL服务器。使用`MySQL('host:port', 'database', 'table', 'user', 'password'[,...])`格式连接,支持简单`WHERE`子句在MySQL端处理,复杂条件和`LIMIT`在ClickHouse端执行。不支持`NULL`值,用默认值替换。系列文章涵盖ClickHouse安装、集群搭建、表引擎解析等主题。[链接](https://zhangfeidezhu.com/?p=468)有更多
695 0
|
关系型数据库 MySQL 数据库
深入OceanBase分布式数据库:MySQL 模式下的 SQL 基本操作
深入OceanBase分布式数据库:MySQL 模式下的 SQL 基本操作
|
SQL 缓存 关系型数据库
MySQL操作全攻略:库、表、数据、事务全面指南
MySQL操作全攻略:库、表、数据、事务全面指南

推荐镜像

更多