Mysql数据库和数据表的创建和信息更改的常用指令

article/2025/9/11 23:54:02

文章目录

  • 数据库和数据表的创建和信息更改
      • 后续小实验做准备
      • 一. 关于数据库和数据表的其它操作
        • 1)数据库
          • ①创建数据库
          • ②显示目前所有的数据库
          • ③数据库重命名
            • 2.1 先创建新库:
            • 2.2 使用`RENAME TABLE` 命令修改表名,将表移动到新的库里:
            • 2.3 完成后删除旧库:
          • ④更改当前使用的数据库
          • ⑤更改当前使用的数据库
        • 2)数据表
          • ①数据表的创建
            • 字段数据类型
            • 字段设置
          • ②数据表信息修改
            • a. 修改表名
            • b. 增加或删除或修改列
            • d. 获取表的基本信息
          • ③数据表信息修改

数据库和数据表的创建和信息更改

后续小实验做准备

  1. 创建数据库

    语句:

     create database experiment;
    

通过:show databases;查看创建结果

image-20220326213208967
  1. 创建基本表

    创建基本表时,为不同的列选择合适的数据类型,正确创建表级和列级完整性约束,如列值是否允许为空、主码和外码等。

    创建表的代码如下:

    • student表

      create table student (sno char(9) primary key, sname char(20) unique, ssex char(2), sage smallint, sdept char(20));
      
    • course表

      create table course (sno char(4) primary key, cname char(40) not null, cpno char(4), ccredit smallint, foreign key(cpno) references course(cno));
      
    • SC表

      create table SC (Sno char(9), Cno char(4), Grade smallint, primary key(Sno,Cno), foreign key(Sno) references Student(Sno), foreign key(Cno) references Course(Cno));
      

    查看创建表的就结果

    image-20220326213232035

    上面创建SC的时候属性是大写开头,二student表和cource表中的全是小写,创建成功,说明win10下mysql不区分大小写

  2. 向基本表中加入数据

    student表数据随便输,course表中有坑,因为course表的参照表是自身,所以要先输入需要的先行课程,CS表依赖student表和course表。最后输入。

    • student

      image-20220326213009395
    • course表

      向输入cpno为null的元组,再选择cpno为已经输入元组cno值相同的元组输入。不然会出现参照不完整的报错。

      image-20220326212933211
    • CS表

      这个表的数据是查看cource表和student表中的数据

      image-20220326213021821

一. 关于数据库和数据表的其它操作

1)数据库

①创建数据库

create database 数据库名;

image-20220326222408867
②显示目前所有的数据库

show databases

③数据库重命名

rename database olddbname to newdbname

MySQL 5.1.23 之前的旧版本中,我们可以使用 RENAME DATABASE来重命名数据库,但此后版本,因为安全考虑,删掉了这一条命令。

大于这个版本修改数据库名字基本上是不行的,采用新建数据库,然后进行数据迁移。

2.1 先创建新库:
create database new_db;
2.2 使用RENAME TABLE 命令修改表名,将表移动到新的库里:
rename table old_db.tb to new_db.tb;
2.3 完成后删除旧库:
drop database old_db;

上面的方法是通过重命名表的方式实现数据迁移。

也可以使用dump工具导出数据库的sql文件,更改数据库sql文件中创建数据库的名字。再用source指令引入sql文件实现数据库的数据迁移。

④更改当前使用的数据库

use 数据库名字

⑤更改当前使用的数据库

drop database 数据库名

2)数据表

①数据表的创建
create table <表名> (<列名><数据类型>[列级约束条件],<列名><数据类型>[列级约束条件], [表级约束条件])

列级约束:只能应用于一列上。

表级约束 :可以应用于一列上,也可以应用在一个表中的多个列上。

字段数据类型

在这里插入图片描述
在这里插入图片描述

字段设置

主键: 被设置为主键的列,值不能为空,且列中不能出现重复的值

外键: 被设置成外码的列,值只能是参考列值中的数据,可以为空(在没有设置该列只非空的情况下)

这里不说那些上面约束条件,太抽象,只说怎么设置列的属性。

  • 列值不能为空

    <列名><属性值> not null

    image-20220326231840407
  • 设置列为主键

    主键不能为空,被设置为主键的列值不能重复

    • 只有一个主键是可以直接

      <列名><属性值> primary key标识主键
      在这里插入图片描述
      course中的sno为主键

    • 多个主键时需要在创建表的末尾添加主键信息

      image-20220326231144128

      这里SC表中Sno和Cno为主键

    • 创建表后追加主键

      alter TABLE <表名> MODIFY <列名> <列的数据类型> PRIMARY KEY
      
  • 设置为外键

    外键必须是参照表的某个key,可以说主键(primary key)也可以是唯一键(unique key)

    有外键时创建数据表,必须要先创建出被参考的表,不然会报错

    • 在创建时设置

      FOREIGN KEY (<外键>) REFERENCES <被参考的数据表>(<被参考的列>)

      image-20220326232331476

      这里外键是cpno,参考的列的course表中的cno列,cpno列的值只能是cno列中出现过的值,不然会报错

      多个外键 :

      image-20220326232634833

    • 在创建表后追加

      -- 已存在表增加外键
      ALTER TABLE Products ADD FOREIGN KEY products_vendors_fk_1 (vend_id) REFERENCES Vendors (vend_id);
      
    • 外键的约束模式

      • RESTRICT

        严格模式(默认的),**父表不能删除或者更新一个已经被子表引用的记录数据(**外键对应的父表被引用的字段,其他字段可以更改)。即,当父表字段数据已经被子表引用时,不能再删除或者更新父表被引用的字段数据。

      • Cascade

        级联模式;针对父表的操作,对应子表关联的数据也跟着被操作。

        • 更新父表被引用的字段,如果该数据被子表外键使用,则子表外键随之更新;
        • 删除父表被引用的字段记录,如果该数据被子表外键使用,子表对应外键所属记录随之删除。
      • Set null

        置空模式,父表字段操作之后,如果该数据被子表外键使用,子表对应的外键字段被置空。

        外键置空的前提是对应字段允许为空,否则外键创建不成功。

      删除的时候子表置空,更新的时候子表级联:

      image-20220327103510745

  • 自动增长
    自增列只能有一个,并且必须设置为key

    如果没有指定就取当前id最大值+1,如果指定了就直接插入或者更新数据子

    自增值在数据库操作失败后也会发生改变,从而影响后续自增列的值

    <列名><属性值> auto_increment

    image-20220326233843284

    • 如果有多个自增列会报错
    Incorrect table definition; there can be only one auto column and it must be defined as a key
    表定义不正确;只能有一个自动列,必须将其定义为键
    

    在IDEA可视化工具中创建多个自增列出现报错

    image-20220327092518353
    • 自增键自增详解

      自增值修改机制

      假设数据表当前的自增值是 Y,在插入一行数据的时候,数据库的执行情况如下:

      • 如果插入数据时自增字段指定了具体的值 X,就直接使用值 X 填到该自增字段,该表的自增值是否修改的判断如下:
        • 若 X<Y,则该表的自增值不变;
        • 若 X≥Y,则需要修改该表的自增值为 X + auto_increment_increment(步长)。
      • 如果插入数据时自增字段未指定值或指定为 0、null,则把该表当前的自增值(即 Y)填到自增字段,并修改该表的自增值为 Y + auto_increment_increment(步长)。

      实际上,MySQL 维护着两个系统参数:auto_increment_offset 和 auto_increment_increment,分别用来表示自增的初始值和步长,默认值都为 1。MySQL 修改数据表自增值是从 auto_increment_offset 开始,以 auto_increment_increment 为步长,持续叠加,直到找到第一个大于 X 的值,作为新的自增值。

      自增值的修改时机

      **数据表的自增值修改实际上是在真正插入数据的操作之前。如果没有插入成功,MySQL 也不会将自增值再改回去。也就是说,自增主键有可能会出现不连续的情况。**比如在插入数据时出错(如违反唯一键约束),或者事务回滚的情况下,都会导致自增主键不连续。

    • 设置自增键的初始值

      image-20220327093226454
    • 自增列的自增步长是可以改变的, 不常用所以不赘述了。

  • 列中的值唯一

    一张表往往有很多字段需要唯一性,数据不能重复;但是一张表只能有一个字段为主键,那么唯一键(unique key),就可以解决表中有多个字段需要唯一性约束的问题。

    使用unique key标识

    image-20220327100915311

    image-20220327101021025

  • 插入列数据前进行条件检查
    check(列值需要符合的条件),符和条件时插入数据。当插入的数据符合列的条件时插入数据
    在这里插入图片描述
    在这里插入图片描述

②数据表信息修改
a. 修改表名

alter table 表名 rename 新表名

image-20220327104039458
b. 增加或删除或修改列
  • 增加

    ALTER TABLE table
    ADD [COLUMN] column_name_1 column_1_definition [FIRST|AFTER existing_column],
    ADD [COLUMN] column_name_2 column_2_definition [FIRST|AFTER existing_column],
    ···;
    
image-20220327111231409
  • 删除

    ALTER TABLE <表名>
    DROP COLUMN column_1,
    DROP COLUMN column_2,
    
image-20220327111415417
  • 修改列

    • 修改列名
    ALTER TABLE 表名 CHANGE 原字段名 新字段名 字段类型 约束条件
    
    image-20220327112606865
    • 还可以设置列的默认值,是否是主键,唯一键,外码等
d. 获取表的基本信息

show columns from <表名>

image-20220327110959445
③数据表信息修改

drop table 表名


http://chatgpt.dhexx.cn/article/MR0bk9or.shtml

相关文章

如何修改PPT文档的原标题和作者信息

1.将鼠标放在PPT上可以看到原作者和标题的信息 2.右键PPT&#xff0c;选择属性 3.进入属性面板&#xff0c;点击详细信息选项卡&#xff0c;进入详细信息&#xff0c;可以看到作者和标题一栏。鼠标左键单击作者栏位或标题一栏&#xff0c;形成可编辑状态&#xff0c;直接修改…

win10计算机信息更改图,win10修改版本信息的简单方法【图文教程】

在某些特殊情况下&#xff0c;我们需要修改win10系统的版本信息&#xff0c;一般系统版本信息是本身就设置好的&#xff0c;能不能随意修改&#xff1f;大部分用户心理都没底&#xff0c;其实Win10系统版本号是可以任意修改&#xff0c;知识要掌握对的方法&#xff0c;如果你有…

web前端 | 博客(八)用户信息修改功能

用户信息修改功能 当点击用户后面的按钮时&#xff0c;要跳转到用户信息修改页面。而修改和添加实际上是同一个页面。 要区分跳转后是添加操作还是修改操作&#xff0c;在于携带的参数。 如果是添加操作&#xff0c;那就直接跳转过去&#xff1b;如果是修改操作&#xff0c;那…

SSM框架下对信息执行修改操作时的信息弹窗回显以及对信息修改后对数据库的更新问题

SSM框架下对信息执行修改操作时的信息弹窗回显以及对信息修改后的同步问题 概括主要说一下前端的实现 概括 今天在做实训作业时&#xff0c;有个对数据信息进行修改的操作&#xff0c;要求点击修改按钮后弹出修改框&#xff0c;栏目中需要显示出旧的数据信息&#xff0c;当将输…

svn修改提交日志信息

参考&#xff1a;唐小码个人博客 一、svn修改提交的msg信息和作者信息 鼠标右键找到show log> 选择要修改的日志行&#xff0c;第一个是修改作者信息&#xff0c;第二个是修改日志信息 二、svn修改提交的日期信息 修改日期信息的话&#xff0c;你得先有svn服务器的权限&…

【JSP】用户信息界面操作 ---- 用户信息修改

文章目录 用户信息界面操作 ---- 用户信息修改Ⅰ.修改userinfo.jsp 实现修改页面跳转Ⅱ.创建 userUpdate.jsp 修改页面Ⅲ.完善 dbHelper类&#xff0c;添加用户修改方法Ⅳ.创建 upDataServlet&#xff0c;实现用户信息修改功能Ⅴ.效果展示 用户信息界面操作 ---- 用户信息修改 …

windows本地git账户信息修改

git账户发生变化&#xff0c;比如密码修改或者项目种账户进行替换本地账户如何修改和切换&#xff1f; 1、进入控制面板 2、点击 用户账户 3、点击管理“管理Windows凭据”&#xff0c;进入凭据管理界面 4、选择需要修改的git账户对应的地址&#xff0c;点击右侧的箭头&#x…

Android设备信息修改器,如何更改android手机的设备号信息

工具/原料 手机信息修改器 手机已root Xposed框架 方法/步骤 首先我们看在没使用手机信息修改器(琢石模拟器)的情况下&#xff0c;手机的串号是多少&#xff0c;可以看到这个机器的串号是空的。 打开手机信息修改器(琢石模拟器)&#xff0c;进入虚拟环境中&#xff0c;一键生成…

Git系列之修改历史提交信息

文章の目录 1、查看 git 提交记录2、修改最近两个或者两次上的commit信息3、扩展&#xff1a;修改上一次git commit 提交的信息参考写在最后 1、查看 git 提交记录 git log2、修改最近两个或者两次上的commit信息 比如我这里有三次提交 使用命令&#xff1a; git rebase -i…

ssh服务器banner信息,几种情况下的banner信息修改

一.telnet 当telnet建立连接時&#xff0c;修改主机会出现的提示信息 1.先编辑一個要显示的信息 # vi /etc/telnet.msg this is a telnet message! 2.在/etc/inetd.conf中的telentd后加上-b 选项&#xff0c;指定包含信息的文件 telnetd stream tcp nowait root /usr/lbin/teln…

如何更改计算机的用户信息,如何更改电脑的账户信息

电脑已经成为生活中必不可少的工具之一&#xff0c;电脑中存放重要的数据资料等&#xff0c;因此保护我们的系统安全是非常重要的事。设置电脑的账户信息可以提升电脑的安全性能&#xff0c;对帐号定期管理也是很有必要的。下面小编就教教大家怎么更改电脑的账户信息。 步骤如下…

修改计算机基本信息,windows10系统下怎样更改基本信息中的制造商型号

如果用户是使用GHOST版安装的windows10系统&#xff0c;那么计算机基本信息里的型号都会提供商的信息&#xff0c;型号也会一样。有些朋友觉得不爽&#xff0c;就想要如何修改WIN10里基本信息中的制造商型号。这该如何操作呢&#xff1f;接下来&#xff0c;就随小编看看具体操作…

计算机硬件信息被修改怎么还原,修改bios硬件信息方法

你们知道怎么BIOS的硬件信息怎么修改吗?下面是学习啦小编带来修改bios硬件信息方法的内容&#xff0c;欢迎阅读! 修改bios硬件信息方法&#xff1a; 按下主机箱上的开机键&#xff0c;在电脑出现第一屏幕信息时&#xff0c;屏幕会有进入CMOS按键提示信息(注&#xff1a;不同品…

使用SpringBoot配置信息修改服务器配置

SpringBoot &#x1f34c; 掌握基于SpringBoot框架的程序开发步骤 今日目标&#xff1a; 熟练使用SpringBoot配置信息修改服务器配置 1 配置文件 1.1 配置文件格式 我们现在启动服务器默认的端口号是 8080&#xff0c;访问路径可以书写为 http://localhost:8080/books/1在…

【Go实战 | 电商平台】(6) 用户信息修改

文章目录 写在前面1. 路由注册2. 函数编写2.1 service层2.2 api层 3. 服务编写4. 验证 写在前面 由于用户的登录涉及到了身份这一方面的认证&#xff0c;所以我们就可以通过JWT进行用户的鉴权&#xff0c;以确认用户的身份。 1. 路由注册 编写用户更新的请求路由 authed.PUT(…

github使用教程(二)【保姆级】{github desktop教程,github desktop的安装和配置}

下载github desktop 下载github desktop&#xff08;不选择Git&#xff0c;因为这个对于我这个初学者还有点复杂&#xff09; 官方下载地址&#xff1a;GitHub Desktop | Simple collaboration from your desktop github desktop setup 点击这个程序&#xff0c;登录你的gi…

使用github仓库

使用github仓库 一 创建仓库 1.注册github账户&#xff0c;登录后&#xff0c;点击"New respository " 2.在新页面中&#xff0c;输入项目的名称&#xff0c;勾选’readme.md’&#xff0c;点击’create repository’ 3.添加成功后&#xff0c;转到文件列表页面.…

GitHub使用指南——建立仓库、建立文件夹、上传图片详细教程

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达 记录笔记&#xff0c;不能少了图片的解释&#xff0c;不知你是否是这样&#xff0c;反正我是比价喜欢有图片的说明&#xff0c;图片能够使得内容更加详细。 这篇博文就来…

gitHub使用记录

前言 之前一直用的都是Bitbucket&#xff0c;虽然gitHub很早就开通了&#xff0c;但是一直没有用它&#xff0c;今天算是第一次用吧。在配置上遇到了一些问题&#xff0c;在这里记录下来和大家一起分享。 什么是gitHub github是一个基于git的代码托管平台&#xff0c;付费用…

Linux使用GitHub

一、GitHub GitHub是一个面向开源及私有软件项目的托管平台&#xff0c;因为只支持git 作为唯一的版本库格式进行托管&#xff0c;故名GitHub 我们一直用GitHub作为免费的远程仓库&#xff0c;如果是个人的开源项目&#xff0c;放到GitHub上是完全没有问题的。其实GitHub还是…