mysql/MariaDB学习2.2 表结构操作

2023-05-16

环境:

CentOS 7,mysql5.7

摘要说明:

本篇文章主要讲述mysql如何创建表结构,如何添加删除修改列,如何添加索引,如何添加修改注释等

步骤:

1.创建表,主键及索引

一般创建表的时候需要指定主外键、自动增长、字段默认值,指定索引等:

-- 表若存在则删除
drop table if exists test_t;

-- 创建表Table: test_t并指定id为主键且自增长
create table test_t
(
   id                   integer not null auto_increment,
   test_var             varchar(50) default NULL comment 'varchar类型',
   test_datet           datetime default NULL comment 'datetime类型',
   test_boo             boolean default NULL comment 'boolean类型',
   test_deci            decimal(12,4) default NULL comment 'decimal类型',
   primary key (id)
);

-- 添加表注释
alter table test_t comment '测试表';

-- 创建唯一索引 Index: Index_test_var
create unique index Index_test_var on test_t
(
   test_var
);

-- 创建普通索引 Index: Index_test_deci
create index Index_test_deci on test_t
(
   test_deci
);

-- 创建联合索引Index: Index_datat_boo
create index Index_datat_boo on test_t
(
   test_datet,
   test_boo
);

查询表结构:

desc test_t;

修改表名:

-- 修改表名:
rename table 老表名 to 新表名;

删除表:

-- Drop table 表名1,表名2...;
drop table test_t;

删除索引:

-- ALTER TABLE 表名 DROP INDEX 索引名
ALTER TABLE test_t DROP INDEX Index_test_deci;

修改表注释:

-- alter table 表名 comment '修改后的表的注释';
alter table test_t comment '修改后的表的注释';

修改一个表的默认字符集:

-- ALTER TABLE 表名 DEFAULT CHARACTER SET utf8
ALTER TABLE test_t DEFAULT CHARACTER SET utf8;

修改某一列的编码:

-- ALTER TABLE person CHANGE 列名 类型 CHARACTER SET utf8
ALTER TABLE test_t CHANGE test_var varchar(50) CHARACTER SET utf8;

复制表结构:

-- create table 新表名 like 老表名;
create table test_t2 like test_t;

2.更改表结构

增加列:

-- alter table tablename ADD 新列 数据类型 参数
alter table test_t add test_deci1 decimal(12,4) default NULL comment 'decimal类型';

增加/修改列并指定位置:

-- ALTER TABLE table_name ADD/MODIFY [COLUMN] col_name column_definition  [ FIRST | AFTER col_name]
alter table test_t add test_deci1 decimal(12,4) default NULL comment 'decimal类型' AFTER test_var;
alter table test_t add test_deci1 decimal(12,4) default NULL comment 'decimal类型' FIRST;

删除主键:

-- ALTER TABLE 表名 DROP PRIMARY KEY;
ALTER TABLE test_t DROP PRIMARY KEY;

增加列并指定为自增长和主键:

-- ALTER TABLE 表名 ADD COLUMN 列名 类型 UNSIGNED NOT NULL auto_increment PRIMARY KEY FIRST
ALTER TABLE test_t ADD COLUMN id INT UNSIGNED NOT NULL auto_increment PRIMARY KEY FIRST

修改列属性(数据类型,参数):

-- alter table tablename modify 列名 新类型 新参数;
alter table test_t modify test_deci1 date default NULL comment 'date类型';

修改列名(列属性):

-- alter table tablename change 旧列名 新列名 新类型 新参数;
alter table test_t change test_deci1 test_date date default NULL comment 'date类型';

修改表字段注释:

-- alter table 表名 modify column 列名 类型 comment '修改后的字段注释';
alter table test_t modify column test_var varchar(50) comment '修改后的字段注释';

删除列:

-- alter table tablename drop 列名;
alter table test_t drop test_date;

设置外键:

alter table t1 add constraint 外键名 foreign key (列) references t2 (列);

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql/MariaDB学习2.2 表结构操作 的相关文章

  • mysql:谁阿米?

    有没有whoami类似mysql中的函数 我正在从远程主机连接到 mysql 命令行 我不确定我的 IP 地址是否解析为域名 我想看到类似的东西 mysql gt whoami User Host username resolved hos
  • MySQL中如何重置表的自增列

    我有一张桌子 它的第一列sl是自动递增的 填充表格后 我删除了前两行 第一个条目有sl1 是否可以重置为1维持AI 我正在使用 PHP MyAdmin ALTER TABLE tablename AUTO INCREMENT 1
  • 保护存储过程

    我想知道是否有一种方法可以对某些用户隐藏存储过程的文本 我正在使用 MySQL 5 1 48 和 Net Connector 6 2 3 以及 Visual Studio 2008 SP1 我在 MySQL 中有两个用户 一个是 root
  • Navicat 中的 MySQL 视图 - 如何定义“主键”?

    当我在 Navicat 中定义视图时 经常会收到以下消息 xxx 没有主键 对此表的更新将使用以下伪语句完成 UPDATE xxx SET ModifiedFieldsAndValues WHERE AllFieldsAndOldValue
  • 如何读取 sql 查询到 pandas dataframe / python / django

    我在下面使用这个views py获取应用程序 from django db import connection def test request cursor connection cursor sql SELECT x n from ta
  • 如何在mysql中设置“performance_schema on”?

    我想转performance schemaON 在 mysql 中收集统计信息 我怎样才能实现这个目标 以下指南是特定于 Linux 的 但应该很容易适用于 Windows 您必须检查 mysql 服务器二进制文件是否已编译为支持它 mys
  • 获取直方图数据

    有没有办法在 MySQL 中指定 bin 大小 现在 我正在尝试以下 SQL 查询 select total count total from faults GROUP BY total 生成的数据足够好 但行太多 我需要的是一种将数据分组
  • 如何使用WAMP登录phpMyAdmin,用户名和密码是什么?

    根 这个词是什么意思php我的管理员 http en wikipedia org wiki PhpMyAdmin 每当我写作时localhost phpmyadmin在地址栏上 我被要求输入用户名和密码 但我不知道它们是什么 我不记得何时何
  • PHP 7.0和MySQL启动错误“未定义符号:mysqlnd_allocator in Unknown”

    即使在运行时 在自定义编译版本的 PHP7 上也会收到此警告php v 尝试了发布的所有解决方案 什么可能导致这种情况 PHP 警告 PHP 启动 无法加载动态库 usr lib php 20151012 pdo mysql so usr
  • 从 MySQL 返回结果时的数字顺序

    我的数据库表中有以下类型的标题 Topic 1 blah blah Topic 2 blah blah Topic 3 blah blah Topic 10 blah blah Topic 11 blah blah etc 选择查询将始终返
  • Hibernate HQL Join 查询 DOT 节点,没有左侧

    我有两个模型类 应用程序 java Entity Table name Application catalog mysqldb XmlRootElement public class Application extends BaseObje
  • MySQL 将日期时间转换为unix时间?

    我有一个 DATETIME 格式的列 我想将其转换为数据库中的 UNIXTIME 那会是什么样的查询 我知道如何从 UNIXTIME 转换为 DATETIME 但我从未做过相反的操作 我用过FROM UNIXTIME 没有TO UNIXTI
  • 如何优化这个查询(涉及4毫米表)

    我正在使用如下所示的遗留数据库架构 product table表有字段 uid 整数 主键 name varchar 50 category表有字段 uid 整数 主键 name varchar 50 好吧 现在product table与
  • 在关系数据库中存储 1:1 用户关系的最佳方式

    存储用户关系的最佳方式是什么 例如友谊 在关系中必须是双向的 你是我的朋友 因此我是你的朋友 数据库 例如MYSql 我可以想到两种方法 每当一个用户与另一个用户成为好友时 我都会向数据库添加两行 其中 A 行由发起用户的用户 ID 和下一
  • Node.js 将 async/await 与 mysql 一起使用

    我一直在尝试在节点中将 async await 与 MySQL 一起使用 但它每次都会返回一个未定义的值 有理由吗 请在下面找到我的代码 const mysql require promise mysql var connection co
  • 如何在同一列中选择多个值?

    我正在尝试在单个列中选择多个值 基本上我希望查询选择列下的所有内容family有价值观Software 1Y XI 1Y and P1 1Y 我正在运行这个查询 SELECT salesorder masterproduct family
  • Java 日期和 MySQL 时间戳时区

    我正在编辑一段代码 其基本功能是 timestamp new Date 然后坚持下去timestamp中的变量TIMESTAMPMySQL 表列 然而 通过调试我看到Date显示在正确时区的对象 GMT 1 当持久化在数据库上时 它是GMT
  • mysql 准备好的语句错误:MySQLSyntaxErrorException

    我使用准备好的语句编写了选择语句 每次尝试运行都会出现此错误 我如何克服这个错误 我的jdbc连接器是mysql connector java 5 1 13 bin jar 我的代码 public Main add ad to getAdD
  • 在 Bluemix 中激活 PHP 扩展

    这纯粹是 Bluemix 问题 我的代码在本地主机上顺利运行 但是当我将其迁移到 Bluemix 时 我的数据库连接失败了 检查日志 我发现问题 调用未定义的函数 mysqli init HTTP 响应 500 我发现扩展已被禁用以使其更小
  • InnoDB如何存储字符列?

    这个问题仅解决 短 的问题CHAR and VARCHAR列存储在 InnoDB 表中 Does a CHAR 10 列正好占用 10 个字节吗 尾随空格会发生什么情况 对于每个字符需要超过 1 个字节的字符集怎么办 如何VARCHAR 1

随机推荐

  • 在与SQL Server建立连接时出现与网络相关的或特定于实例的错误

    向往前一样 xff0c 学习牛腩新闻发布系统的视频 xff0c 敲代码 xff0c 打开数据库 xff0c 出现一个框框 xff0c 详细内容如下 xff1a 数据库连接不上 xff0c 所有的工作都要歇班 xff0c 捣鼓了会儿 xff0
  • 只要活着,我愿意一辈子都做程序员

    前不久 xff0c 我看过一个有意思的帖子 xff0c 标题是 35岁是程序员的终点 作者列举了35岁的年龄已经不适合继续做程序员的种种原因 xff0c 试图说服在这个年龄段的程序员做出改变 xff0c 初一看 xff0c 我自己也觉得很有
  • Sql Server服务远程过程调用失败

    由于开发系统 xff0c 需要vs版本统一 xff0c 于是经过了昨天一整天艰苦卓绝的斗争 xff0c 小编终于成功的写在了13版本的vs xff0c 重新装上了12版本的vs xff0c 本来想着 xff0c 12版本的vs搭建成功了 x
  • Android仿淘宝购物车demo

    夏的热情渐渐退去 xff0c 秋如期而至 xff0c 丰收的季节 xff0c 小编继续着实习之路 xff0c 走着走着 xff0c 就走到了购物车 xff0c 逛过淘宝或者是京东的小伙伴都知道购物车里面的宝贝可不止一件 xff0c 对于爱购
  • Android Demo---实现从底部弹出窗口

    在前面的博文中 xff0c 小编简单的介绍了如何制作圆角的按钮以及圆角的图片 xff0c 伴着键盘和手指之间的舞步 xff0c 迎来新的问题 xff0c 不知道小伙伴有没有这样的经历 xff0c 以App为例 xff0c 点击头像的时候 x
  • 浅谈如何带领好一个团队

    实习回来之后 xff0c 小编接手了一个新的项目 xff0c 市委组织部考核项目 xff0c 听着有没有很高大上 xff0c 因为这个项目是给国家机关做的 xff0c 跟他们打交道 xff0c 小编的心情只能用两个字来形容 xff0c 呵呵
  • 情不知所起,一“网”而深

    你只看到我的程序 xff0c 却没有看到背后的代码 xff1b 你有你的选择 xff0c 我有我的坚持 xff1b 你嘲笑我假期过节不回家陪父母 xff0c 我可怜你只在家向父母衣食伸手 xff1b 你可以轻视我的道路 xff0c 我会证明
  • 【项目实战】---首页一级分类的显示

    在前面的博文中 xff0c 小编主要简单的介绍了用户模块中的验证码程序是如何实现的 xff0c 今天继续来介绍我们的项目 xff0c 今天小编主要简单的介绍一下如何实现首页的一级分类的显示 xff0c 比如小伙伴现在看的CSDN xff0c
  • Kettle---初识

    最近因公司项目的原因 xff0c 小编接触到了Kettle这样一款工具 xff0c 感觉挺好玩儿的 xff0c 通过几天的探索和学习 xff0c 对 Kettlde 的使用有了一点点小心得 xff0c 小编打算把这段期间学习和探索到的关于
  • 读书笔记---《人月神话》

    台上一分钟 xff0c 台下十年功 宝剑锋从磨砺出 xff0c 梅花香自苦寒来 xff1b 不经一番寒彻骨 xff0c 哪得梅花扑鼻香 xff1b 业精于勤而荒于嬉 xff0c 行成于思而毁于随 不积跬步 xff0c 无以至千里 xff1b
  • Android底部导航栏之BottomNavigationView

    一 xff0c 基本用法 1 xff0c 首先需要添加依赖 xff1a implementation 39 com google android material material 1 1 0 39 2 xff0c 布局文件中引入 xff1
  • 简单的MyBatis demo之数据库增删改查

    一 MyBatis简介 xff08 摘自官方文档 xff09 xff1a MyBatis 是支持定制化 SQL 存储过程以及高级映射的优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 MyBat
  • 记一次Android lowmemorykiller原因分析

    MTK 平台 抓取MTK log 在sys log中查看应用闪退时间点 以com mediatek camera应用为例 01 03 15 36 37 620533 921 1010 I WindowManager Focus moving
  • 【工具】intellij idea远程开发remote

    我们可以通过intellij idea的sftp同步来实现远程开发 参考地址 IDEA远程代码实时同步 xff08 可以自动实时同步 xff09 前言 开发时一般的平台都是windows xff0c 但windows对开发极其不友好 xff
  • Android系统问题及日志分析

    这篇文章全是干货 xff0c 我们一起聊聊安卓系统稳定性问题 部分性能问题 本篇列举了作者在某厂工作中遇到实际问题 xff0c 大部分只有日志概率性问题 xff0c 通过日志分析问题 自己对这半年工作做个笔记 xff0c 也希望对大家有用
  • FTP文件传输优化

    FTP传输模式分为PORT xff08 主动模式 xff09 和PASV xff08 被动模式 xff09 xff0c 被动模式的工作原理 xff1a FTP客户端连接到FTP服务器的21端口 xff0c 发送用户名和密码登录 xff0c
  • Ubuntu16.04安装chrome

    Ubuntu16 04安装chrome 转载自https blog csdn net qq 28584889 article details 91458310 本教程是以离线的deb包来安装chrome 下载 linux版的deb包下载地址
  • 数据结构(13):平衡二叉树(AVL)实现

    一 平衡二叉树定义 平衡二叉树定义 xff0c 对于任意一个节点 xff0c 左子树和右子树的高度差不能超过1 特性 xff1a 平衡二叉树的高度和节点数量之间的关系是O logn 二 标注 1 平衡因子 xff1a 左右两个子树的高度差
  • 华为机试题: 水仙花数

    描述 水仙花数又称阿姆斯特朗数 水仙花数是指一个n 位数 n 3 xff0c 它的每个位上的数字的n 次幂之和等于它本身 xff08 例如 xff1a 1 3 43 5 3 43 3 3 61 153 xff09 求输入的数字是否为水仙花数
  • mysql/MariaDB学习2.2 表结构操作

    环境 xff1a CentOS 7 mysql5 7 摘要说明 xff1a 本篇文章主要讲述mysql如何创建表结构 xff0c 如何添加删除修改列 xff0c 如何添加索引 xff0c 如何添加修改注释等 步骤 xff1a 1 创建表 x