Mysql数据库对表的基本操作

一.表基本操作

1.当前数据库内创建表

2.查看表

3.删除表

4.修改表结构

5.复制表(结构)

二.表约束创建

1.约束的作用

2.约束的类型

3.演示


一.表基本操作

1.当前数据库内创建表

 CREATE TABLE 表名(
    列名 列数据类型,
    列名 列数据类型);

mysql> create table stable(
    -> name char(10),
    -> id int);
Query OK, 0 rows affected (0.02 sec)

2.查看表

(1)查看数据库中的表

mysql> show tables from SLB;
+---------------+
| Tables_in_SLB |
+---------------+
| stable        |
| t1            |
| t2            |
| t3            |
| t4            |
+---------------+
5 rows in set (0.00 sec)

(2)查看表结构

#describe 表名

#show columns from 表名

mysql> describe SLB.stable;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name  | char(10) | YES  |     | NULL    |       |
| id    | int      | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> show columns from SLB.stable;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name  | char(10) | YES  |     | NULL    |       |
| id    | int      | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.01 sec)

(3)垂直显示表中各列信息

mysql> show create table SLB.stable\G;
*************************** 1. row ***************************
       Table: stable
Create Table: CREATE TABLE `stable` (
  `name` char(10) DEFAULT NULL,
  `id` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

3.删除表

drop table 表名

mysql> drop table stable;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+---------------+
| Tables_in_SLB |
+---------------+
| t1            |
| t2            |
| t3            |
| t4            |
+---------------+
4 rows in set (0.01 sec)

4.修改表结构

(1)修改列类型:ALTER table 表名 modify 列名 列数据类型

mysql> desc t1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int      | YES  |     | NULL    |       |
| name  | char(10) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> ALTER table t1 modify id char(20);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc t1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | char(20) | YES  |     | NULL    |       |
| name  | char(10) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

(2)修改列名:ALTER table t1 change 原列名 新列名 列数据类型

mysql> ALTER table t1 change id stuid char(20);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| stuid | char(20) | YES  |     | NULL    |       |
| name  | char(10) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

5.复制表(结构)

create table 新表名 like 被复制表名(源表) 

mysql> desc stable;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int      | YES  |     | NULL    |       |
| name  | char(20) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.01 sec)
mysql> create table t1 like stable;
Query OK, 0 rows affected (0.06 sec)

mysql> desc t1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int      | YES  |     | NULL    |       |
| name  | char(20) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

create table 新表名 select * from 被复制表名(源表) 

mysql> create table t2 select * from stable;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>
mysql> desc t2;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int      | YES  |     | NULL    |       |
| name  | char(20) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

二.表约束创建

1.约束的作用

约束主要用于保证数据库的完整性,表中数据有相互依赖时,可以保护相关的数据不被删除。

2.约束的类型

(1)根据约束数据列的限制:单列约束(每个约束只能约束一列),多列约束(每个约束可以约束多列数据)

(2)根据约束的作用范围:列级约束(作用在一个列上,直接跟在列的后面 ),表级约束(作用在多个列上,不与列写一起,需要单独定义 )

(3)常见约束

NOT NULL:非空约束,规定某个字段不能为空

UNIQUE:唯一约束,规定某个字段在整个表中是唯一的,不允许数据重复

注意:唯一约束是为了确保所在的字段或者字段组合不出现重复值;唯一约束的字段允许出现多个NULL;同一张表内可建多个唯一约束;唯一约束可由多列组合而成;新建唯一约束时MySQL会为之建立对应的索引;如果不设置唯一约束名,该唯一约束默认与列名相同;删除唯一约束时使用“aletr table 表名 drop index 唯一约束名;”来删除。

PRIMARY KEY:主键约束,是非空且唯一的

注意:一个表只允许一个主键,创建主键时也会创建相应的索引。删除主键约束时使用“alter table 表名 drop primary key;”来删除

FOREIGN KEY:外键约束,建立主表与从表的约束关系

注意:从表外键列的值必须在主表参照列值的范围内,或者为空(也可以加非空约束,强制不允许为空);当主表的记录被从表参照时,主表记录不允许被删除; 外键参照的只能是主表主键或者唯一键,保证子表记录可以准确定位到被参照的记录;删除外键时使用“aletr table 从表名 drop foreign key CONSTRAINT显示的名称;”

CHECK:检查约束

DEFAULT:默认值约束

3.演示

(1)非空约束

注意:取消约束时使用alter命令更改列时不指定约束即可

mysql> create table t3( id int, name char(20) not null);
Query OK, 0 rows affected (0.02 sec)
mysql> show create table SLB.t3\G;
*************************** 1. row ***************************
       Table: t3
Create Table: CREATE TABLE `t3` (
  `id` int DEFAULT NULL,
  `name` char(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

 (2)唯一约束

mysql> create table t4(
    -> id int unique,
    -> name char(20));
Query OK, 0 rows affected (0.01 sec)

mysql> show create table SLB.t4\G;
*************************** 1. row ***************************
       Table: t4
Create Table: CREATE TABLE `t4` (
  `id` int DEFAULT NULL,
  `name` char(20) DEFAULT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

 (3)主键约束

mysql> create table t5(
    -> id int primary key,
    -> name char(10) unique);
Query OK, 0 rows affected (0.01 sec)

mysql> show create table SLB.t5\G;
*************************** 1. row ***************************
       Table: t5
Create Table: CREATE TABLE `t5` (
  `id` int NOT NULL,
  `name` char(10) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.01 sec)

(4)外键约束

foreign key(外键列名) references (主表参照列)

mysql> create table t7(
    -> t7id int primary key,
    -> name char(20),
    -> tid int,
    -> foreign key(tid) references t6(tid));
Query OK, 0 rows affected (0.02 sec)
mysql> show create table SLB.t7\G;
*************************** 1. row ***************************
       Table: t7
Create Table: CREATE TABLE `t7` (
  `t7id` int NOT NULL,
  `name` char(20) DEFAULT NULL,
  `tid` int DEFAULT NULL,
  PRIMARY KEY (`t7id`),
  KEY `tid` (`tid`),
  CONSTRAINT `t7_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `t6` (`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

#删除外键约束
mysql> alter table t7 drop foreign key t7_ibfk_1;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

t6主表中的id为1 

 t7从表中不允许修改主表设定的id

 从表删除外键后即可修改

 (5)检查约束

这列数据只允许等于设定的内容

mysql> create table t8(
    -> gender char(10) check(gender in ('男','女')));
Query OK, 0 rows affected (0.01 sec)

mysql> show create table SLB.t8\G;
*************************** 1. row ***************************
       Table: t8
Create Table: CREATE TABLE `t8` (
  `gender` char(10) DEFAULT NULL,
  CONSTRAINT `t8_chk_1` CHECK ((`gender` in (_utf8mb4'男',_utf8mb4'女')))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

 (6)默认值约束

mysql> create table t9(
    -> id int unique default 1);
Query OK, 0 rows affected (0.01 sec)

mysql> show create table SLB.t9\G;
*************************** 1. row ***************************
       Table: t9
Create Table: CREATE TABLE `t9` (
  `id` int DEFAULT '1',
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/23547.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小兔鲜--项目总结3

目录 结算模块-地址切换交互实现 地址切换交互需求分析 打开弹框交互实现 地址激活交互实现 订单模块-生成订单功能实现 支付模块-实现支付功能 支付业务流程 支付模块-支付结果展示 支付模块-封装倒计时函数 理解需求 实现思路分析 会员中心-个人中心信息渲染 分页…

solr快速上手:managed-schema标签详解(三)

0. 引言 core核心是solr中的重中之重,类似数据库中的表,在搜索引擎中也叫做索引,在solr中索引的建立,要先创建基础的数据结构,即schema的相关配置,今天继续来学习solr的核心知识: solr快速上手…

OpenCV——最小外接矩形

目录 一、主要函数二、代码实现三、结果展示 一、主要函数 cv::RotatedRect cv::minAreaRect(const cv::Mat& points );emspminAreaRect 函数用于计算给定点集的最小外接矩形。该矩形的长和宽是可以任意旋转的,因此被称为旋转矩形。 points :是一个…

article-码垛机器人admas仿真

按照运动学仿真的类似步骤为机器人添加材料、运动副和关节驱动,给机器人手腕末端施加50N最大负载,仿真模型如图5-17。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AXYQVZPq-1684936426972)(data:image/svgxml;utf8, )] 图…

Python实现ACO蚁群优化算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蚁群优化算法(Ant Colony Optimization, ACO)是一种源于大自然生物世界的新的仿生进化算法&#xff0c…

Qt自定义的ColorDialog--仿QColorDialog

Qt已经有了色板选择,但是它使用QDialog形成的,每次调用基本上都成了点一个按钮,谈一个模态框,选择好颜色之后再关掉模态框。 但是,如果想将颜色选择板放在窗口上,并不会有模态的功能就会比较麻烦&#xff…

docker安装mysql8.0.33

1 从docker仓库中拉去mysql 8.0 docker pull mysql:8.0如果使用 docker pull mysql 默认拉取的是最新版本的mysql 上面我拉去的是8.0的版本,最后拉取过来的是8.0.33 如果有想要指定的版本,可以直接写指定版本,如: docker pull my…

pytorch:nn.ModuleList和nn.Sequential、list的用法以及区别

文章目录 在构建网络的时候,pytorch有一些基础概念很重要,比如nn.Module,nn.ModuleList,nn.Sequential,这些类我们称为为容器(containers),可参考containers。本文中我们主要学习nn.…

【Python】正则表达式应用

知识目录 一、写在前面✨二、姓名检查三、解析电影排行榜四、总结撒花😊 一、写在前面✨ 大家好!我是初心,希望我们一路走来能坚守初心! 今天跟大家分享的文章是 正则表达式的应用 ,希望能帮助到大家!本篇…

把字节大佬花3个月时间整理的软件测试面经偷偷给室友,差点被他开除了···

写在前面 “这份软件测试面经看起来不错,等会一起发给他吧”,我看着面前的面试笔记自言自语道。 就在这时,背后传来了leder“阴森森”的声音:“不错吧,我可是足足花了三个月整理的” 始末 刚入职字节的我收到了大学室…

Windows 10 X64 内核对象句柄表解析

fweWindows 很多API函数都会创建和使用句柄(传入参数),句柄代表一个内核对象的内存地址,每个进程都有一个句柄表,它保存着进程拥有的句柄,内核也有一个句柄表 PspCidTable,它保存着整个系统的句柄。 ExpLookupHandleTa…

DNS风险分析及安全防护研究(一):DNS自身风险分析(中科三方)

作为互联网上的一项基础服务,DNS在网站运行中起到了至关重要的作用,然而其安全性在很长一段时间内都没有得到足够的重视。DNS采用不可靠的UDP协议,安全性具有较大的漏洞,攻击者很容易利用这些漏洞发动攻击,从而引起一些…

华为设备这14个广域网命令,值得每位做广域网业务的网工收藏!

你好,这里是网络技术联盟站。 华为设备广域网命令是网络管理员在运维过程中常用的一类命令。该命令集涵盖了DCC配置命令、PPP配置命令、MP配置命令、PPPoE命令、ATM配置命令、帧中继配置命令、HDLC配置命令、LAPB配置命令、X.25配置命令、IP-Trunk配置命令、ISDN配…

Java 与数据结构(6):快速排序

ChatGPT 中文指南(大全) 内容包含:如何开通chatgpt、chatgpt的同类站点、prompts 、AI绘图、ChatGPT 工具、相关报告论文、ChatGPT应用项目等 链接:ChatGPT 中文指南(大全) 指令指南,精选资源清单,更好的使用 chatGPT 让你的生产力…

详解如何使用LAMP架构搭建论坛

文章目录 1.LAMP概述2.编译安装Apache httpd服务1.关闭防火墙,将安装Apache所需软件包传到/opt目录下2.安装环境依赖包 3.配置软件模块4.编译及安装5.优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别6.添加httpd系…

复杂的C++继承

文章目录 什么是继承继承方式赋值规则继承中的作用域(隐藏)子类中的默认成员函数需要自己写默认成员函数的情况 继承与友元及静态成员多继承菱形继承菱形继承的问题菱形虚拟继承 继承和组合 面向对象三大特性:封装继承和多态。封装在类和对象…

(四)调整PID控制器参数的指南

一、控制系统设计快速入门和环境 首先确定一下控制任务。快速、精准地控制,必要的稳定性,时域(上升时间、超调等),频域(带宽、阻尼比)然后明白控制系统特点。类积分器?开环稳定性、高…

注解实现自动装配

要使用注解须知&#xff1a; 1.导入约束 context约束 2.配置注解的支持 官方配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/…

详解知识蒸馏原理和代码

目录 知识蒸馏原理概念技巧举例说明KL 散度及损失 KD训练代码导入包网络架构teacher网络student网络 teacher网络训练定义基本函数训练主函数 student网络训练&#xff08;重点&#xff09;理论部分定义kd的loss定义基本函数训练主函数 绘制结果teacher网络的暗知识softmax_t推…

C4d Octane渲染器内存满、卡顿、崩溃、缓慢、updating解决办法

最近碰到Octane渲染动画序列&#xff0c;总是会渲染一段时间后卡在某一张图片上&#xff0c;图片查看器左下角一直显示updating。 偶然发现在C4D界面点击octane工具栏的设置&#xff0c;它又会开始渲染&#xff0c;但渲染一些序列帧后又会卡在一张图上显示updating 点击octane工…