前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云原生进阶之数据库技术】第一章MySQL-2.2-数据库表基本操作

【云原生进阶之数据库技术】第一章MySQL-2.2-数据库表基本操作

作者头像
江中散人_Jun
发布2024-02-23 08:35:01
1460
发布2024-02-23 08:35:01
举报
文章被收录于专栏:云原生布道专栏

1 MySQL数据表操作

1.1 创建表结构

语法:create table table_name(col_name1 data_type1,col_name2 data_type2,....); 创建t_test数据表,字段为id,name(数据类型中的数字是字段长度)

代码语言:javascript
复制
create table t_test(id char(20),name char(10));

完整创建定义:

代码语言:javascript
复制
create [temporary] table [if not exists]table_name [([column_definition],~~~|[index_definition])] [table_option][select_statement];

创建数据表:

  • temporary创建临时表,此表只能对创建它的用户可见,当断开与数据库的连接时,会自动删除临时表
  • index-definition:表索引项定义
  • table_option:用于描述表的选项
  • select_statement:可以在语句的末尾添加一个select语句,在一个表的基础上创建一个表
代码语言:javascript
复制
show create table tablename 查看数据表的定义

1.2 查看表结构

语法:describe table_name; desc table_name;

describe可以缩写为desc。

代码语言:javascript
复制
describe t_test; 
desc t_test;

1.3 查看数据表

语法:show tables;

代码语言:javascript
复制
show tables;

1.4 复制表结构

如果是复制其他数据库的表结构,在table_name2前加上数据库的名称

语法:create table new_table_name1 like old_table_namme2;

将数据库db_test中的t_test1表结构复制到当前数据库,命名为表结构t_test2。

代码语言:javascript
复制
create table t_test1 like t_test2;

1.5 复制表数据

表结构一致

代码语言:javascript
复制
insert into table_name_new select * from table_name_old;

表结构不一致

代码语言:javascript
复制
insert into table_name_new(column1,column2...) select column1,column2... from table_name_old;

1.6 修改表名

语法:alter table old_table_name (旧名字) rename new_table_name(新名字);

代码语言:javascript
复制
alter table t_test1 rename t_test2;

1.7 增加字段

语法:alter table table_name add col_name1(添加字段名)data_type (字段类型);

代码语言:javascript
复制
alter table t_test add test_address varchar(255);
1.7.1 将添加的字段放入首位

语法:alter table table_name add col_name1(添加字段名)data_type (字段类型) first;

代码语言:javascript
复制
alter table t_test add test_address varchar(255) first;
1.7.2 将添加的字段放入 test2字段之后

语法:alter table table_name add col_name1(添加字段名)data_type (字段类型) after test2(字段);

代码语言:javascript
复制
alter table t_test add test1 varchar(20) after test2;

1.8 删除字段

语法:alter table t_reader drop reader_qq (删除的字段名);

代码语言:javascript
复制
alter table t_test drop test1;

1.9 修改字段的数据类型

语法:alter table table_name modify col_name1(字段名) data_type (字段类型); 将test2的数据类型由varchar改为char。

代码语言:javascript
复制
alter table table_name modify test2 char(100);

1.10 修改字段的名称

语法:alter table table_name change old_col_name(字段名) new_col_old(新字段名) data_type(字段数据类型);

代码语言:javascript
复制
alter table t_test change test_address address char(100);

1.11 设置主键

作用:保证输入记录唯一性 方式: - 创建表时设置 - 创建表之后设置

语法:create table table_name(xs_id char(12),xs_name char(10) primary key (xs_id)); 创建studnet表时,将xs_id设置为主键。

代码语言:javascript
复制
create table student (xs_id char(12),xs_name char(10),primary key(xs_id));

创建studnet表时,将xs_id和xs_name设置为主键。这种将多个字段设为主键的方式称为:组合主键。组合主键也是一个主键(唯一性)。

代码语言:javascript
复制
create table student (xs_id char(12),xs_name char(10),primary key(xs_id,xs_name));

1.12 删除主键

语法:alter table table_name drop primary key;

代码语言:javascript
复制
alter table studnet drop primary key;

1.13 外键

作用:确保数据完整性。如: - 实体完整性 - 用户定义完整性 - 参照完整性 只有当某个字段成为了主键后,该字段才能在其它表中成为外键。 语法:alter table table_name add constraint 外键名称 foreign key (设为外键的字段名)references t_table2(主键字段名);

将t_test1表中id字段设为主键,t_test2表中id字段设为外键。

代码语言:javascript
复制
alter table t_test2 add constraint fk1 foreign key (id) references t_test1(id);

1.14 删除外键

语法: show create table table_name; 获取外键名称:

代码语言:javascript
复制
show create table t_test2;

语法:alter table t_test2 drop foreign key 外键名称;

代码语言:javascript
复制
alter table t_test2 drop foreign key fk1;

1.15 约束

什么是约束:在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。

常见的约束:

  • 非空约束(not null):约束的字段不能为NULL
  • 唯一约束(unique):约束的字段不能重复
  • 主键约束(primary key):约束的字段既不能为NULL,也不能重复(简称PK)
  • 外键约束(foreign key):...(简称FK)
  • 检查约束(check):注意Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束。
1.15.1 非空约束
代码语言:javascript
复制
create table t_user( 
    id int, 
    username varchar(255) not null(**在创建表时添加约束**), 
    password varchar(255) 
); 
insert into t_user(id,password) values(1,'123'); //编译错误,约束username字段不能为空! 
ERROR 1364 (HY000): Field 'username' doesn't have a default value 
insert into t_user(id,username,password) values(1,'lisi','123');
1.15.2 唯一性约束

唯一性约束修饰的字段具有唯一性,不能重复。但可以为null。

代码语言:javascript
复制
drop table if exists t_user; 
create table t_user( 
    id int, 
    usercode varchar(255), 
    username varchar(255), 
    unique(usercode,username) //多个字段联合起来添加一个约束unique 【表级约束】 
);

ps:not null约束只有列级约束,没有表级约束。

1.15.3 主键约束
代码语言:javascript
复制
drop table if exists t_user; 
create table t_user( 
    id int primary key, //列级约束 
    username varchar(255), 
    email varchar(255) 
);
  • 主键约束,不能为null也不能重复!
  • 主键约束 :primary key
  • 主键字段 : id字段添加primary key之后,id叫做主键字段
  • 主键值 :id字段中的每一个值都是主键值。
代码语言:javascript
复制
create table t_user( 
    id int primary key, //列级约束 
    username varchar(255), 
    email varchar(255) 
);

主键的分类:

1)根据主键字段的字段数量来分:单一主键 and 复合主键

2)根据主键的性质来划分:自然主键 and 业务主键

  • 一个表的主键约束只能有一个
  • mysql提供主键自增。
1.15.5 外键约束

关于外键约束的相关术语:

  • 外键约束:foreign key
  • 外键字段:添加有外键约束的字段
  • 外键值:外键字段中的每一个值。

A表中的字段引用B表中的字段,则A是子表,B是父表

删除数据的时候,先删除子表,再删除父表。添加数据的时候,先添加父表,再添加子表。创建表的时候,先创建父表,再创建子表。删除表的时候,先删除子表,再删除父表。外键值可以为null

1.16 mysql常量

1.字符串常量:用单引号进行字符串

参考链接

【数据库】 mysql的四种安装方式_mysql安装-CSDN博客

超级详细的mysql数据库安装指南 - 知乎

Mysql超详细安装配置教程(保姆级) - 知乎

mysql安装教程--超详细图文讲解 - 知乎

MySQL基础(非常全)_mysql基础知识-CSDN博客

mysql基础知识 - 知乎

超全汇总!一篇讲完MySQL的入门干货 - 知乎

MySQL数据库的基础操作_mysql数据库操作-CSDN博客

【收藏级】MySQL基本操作的所有内容(常看常新) - 知乎

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 MySQL数据表操作
    • 1.1 创建表结构
      • 1.2 查看表结构
        • 1.3 查看数据表
          • 1.4 复制表结构
            • 1.5 复制表数据
              • 1.6 修改表名
                • 1.7 增加字段
                  • 1.7.1 将添加的字段放入首位
                  • 1.7.2 将添加的字段放入 test2字段之后
                • 1.8 删除字段
                  • 1.9 修改字段的数据类型
                    • 1.10 修改字段的名称
                      • 1.11 设置主键
                        • 1.12 删除主键
                          • 1.13 外键
                            • 1.14 删除外键
                              • 1.15 约束
                                • 1.15.1 非空约束
                                • 1.15.2 唯一性约束
                                • 1.15.3 主键约束
                                • 1.15.5 外键约束
                              • 1.16 mysql常量
                              • 参考链接
                              相关产品与服务
                              容器服务
                              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档