表的创建和管理

news2024/12/23 13:52:50

表的创建和管理

  • 一条数据的存储过程
  • 标识符的命名规则
  • MySQL中的数据类型
  • 管理和创建数据库
    • 创建数据库
    • 使用数据库
    • 修改数据库
  • 创建表
    • 创建方式1
    • 创建方式2
    • 查看数据表结构
  • 修改表
    • 追加一个列
    • 修改一个列
    • 重命名一个列
    • 删除一个列
  • 重命名表
  • 删除表
  • 清空表

一条数据的存储过程

存储数据是处理数据的第一步 。
只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只 能是一团乱麻,无从下手。
那么,怎样才能把用户各种经营相关的、纷繁复杂的数据,有序、高效地存储起来呢?
在 MySQL 中, 一个完整的数据存储过程总共有 4步,分别是
1.创建数据库
2.确认字段
3.创建数据表
4.插入数据
在这里插入图片描述
从系统架构的层次上看,
MySQL 数据库系统从大到小依次是 数据库服务器 、 数据库 、 数据表 、数据表的 行与列。

标识符的命名规则

数据库名、表名不得超过30个字符,变量名限制为29个,
必须只能包含 A–Z, a–z, 0–9, _共63个字符 数据库名、表名、字段名等对象名中间不要包含空格 。
同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名。
必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使 用(着重号)引起来。
保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据。
类型在一个表里是整数,那在另一个表里可就别变成字符型了。

MySQL中的数据类型

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

管理和创建数据库

创建数据库

方式一:直接就创建数据库

CREATE DATEBASE 数据库名;

方式二:创建数据库并且指明创建的字符集

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

方式三:先判断库是否存在,如果不存在那么就创建库,如果存在就不创建库

CREATE DATABASE IF NOT EXISTS 数据库名;

如果MySQL中已经存在相关的数据库,则忽略创建语句,不再创建数据库。

使用数据库

1.查看当前的所有数据库

SHOW DATABASES

注意:
这里数据库DATABASE是加了S的,用的复数,因为不只一个数据库

2.查看当前正在使用的数据库

SELECT DATABASE();  

这里使用的是MySQL了中的一个全局函数

3.查看指定库下的所有表

SHOW TABLES FROM 数据库名;

4.查看数据库的创建信息

#方式一:
SHOW CREATE DATABASE 数据库名;

#方式二:
SHOW CREATE DATABASE 数据库名\G;

5.切换数据库

USE 数据库名;

注意:要操作表格和数据之前必须先说明是对哪个数据库进行操作,
否则就要对所有对象加上“数据库名.”。

修改数据库

1.更改数据库字符集
更改:alter

ALTER DATABASE 数据库名 CHARACTER SET 字符集;  #gbk,utf8

2.删除库
删除: drop
方式一:删除指定的数据库

DROP DATABASE 数据库名;

方式二:如果存在,删除该库

DROP DATABASE IF EXISTS 数据库名;

创建表

创建表的条件
1.必须具备能够CREATE TABLE 的权限 (root权限)
2.具有足够的存储空间

创建方式1

语法格式:

CREATE TABLE [IF NOT EXISTS] 表名
(
字段1, 数据类型 [约束条件] [默认值],
字段2, 数据类型 [约束条件] [默认值],
字段3, 数据类型 [约束条件] [默认值],
……
[表约束条件]
);

注意,这里定义是跟C++.C语言反着的
在C/C++中,都是数据类型 + 变量名
但是在Mysql中,是变量名 + 数据类型

加上了IF NOT EXISTS关键字,则表示:
如果当前数据库中不存在要创建的数据表,则创建数据表;
如果当前数据库中已经存在要创建的数据表,则忽略建表语句,不再创建数据表

必须指明 :
1.表名
2.列名(字段名), 数据类型,长度

可选指明:
1.约束条件
2.默认值

CREATE TABLE emp (
-- int类型
emp_id INT,
-- 最多保存20个中英文字符
emp_name VARCHAR(20),
-- 总位数不超过15位
salary DOUBLE,
-- 日期类型
birthday DATE
);
DESC emp  #显示表的数据类型以及信息
DESCRIBE emp

MySQL在执行建表语句时,将id字段的类型设置为int(11),这里的11实际上是int类型指定的显示宽度,
默认的显示宽度为11。也可以在创建数据表的时候指定数据的显示宽度

在MySQL 8.x版本中,不再推荐为INT类型指定显示长度,并在未来的版本中可能去掉这样的语法。

创建方式2

使用 AS subquery 选项,将创建表和插入数据结合起来

指定的列和子查询中的列要一一对应
通过列名和默认值定义列

CREATE TABLE emp1 AS SELECT * FROM employees;
CREATE TABLE emp2 AS SELECT * FROM employees WHERE 1=2; 
-- 创建的emp2是空表

CREATE TABLE dept80
AS
SELECT employee_id, last_name, salary*12 ANNSAL, hire_date
FROM employees
WHERE department_id = 80;

查看数据表结构

在MySQL中创建好数据表之后,可以查看数据表的结构。MySQL支持使用 DESCRIBE/DESC 语句查看数据表结构,也支持使用 SHOW CREATE
TABLE 语句查看数据表结构。

语法格式如下:

SHOW CREATE TABLE 表名\G

使用SHOW CREATE TABLE语句
不仅可以查看表创建时的详细语句,还可以查看存储引擎和字符编码。

修改表

修改表指的是修改数据库中已经存在的数据表的结构.

使用 ALTER TABLE 语句可以实现:
1.向已有的表中添加列
2.修改现有表中的列
3.删除现有表中的列
4.重命名现有表中的列

追加一个列

#语法格式
#使用ADD关键字 ,来对列进行追加

ALTER TABLE 表名
ADD 数据段  数据类型;

#案例
ALTER TABLE dept80
ADD job_id varchar(15);

修改一个列

可以修改
1.列的数据类型
2.长度
3.默认值和位置

#语法格式
#用MODIFY关键字,来进行修改
#如果要对某列的默认值修改,用default


ALTER TABLE 表名
MODIFY 数据段 数据类型 [default 要修改的默认值]

#案例
ALTER TABLE dept80
MODIFY salary double(9,2) default 1000;

对默认值的修改只影响今后对表的修改
此外,还可以通过此种方式修改列的约束
列的约束,后面在讲

重命名一个列

使用 CHANGE old_column new_column dataType 子句重命名列

ALTER TABLE 表名
CHANGE 原来的列名  新列名 数据类型

#案例
ALTER TABLE dept80
CHANGE department_name dept_name varchar(15);

删除一个列

删除表中某个字段的语法格式如下:

#删除一个列,要用 DROP关键字

ALTER TABLE dept80
DROP COLUMN job_id;

重命名表

方式一:使用 RENAME


#语法格式:
RENAME TABLE 表名 TO 新表名

RENAME TABLE emp
TO new_name

方式二:ALTER + RENAME

ALTER TABLE 表名
RENAME [TO]  新表名  # 这里TO可以省略掉

删除表

在MySQL中,当一张数据表 没有与其他任何数据表形成关联关系 时,
可以将当前数据表直接删除。 数据和结构都被删除
所有正在运行的相关事务被提交 所有相关索引被删除

DROP TABLE 数据表1, 数据表2, 数据表3 ........

清空表

TRUNCATE TABLE语句:
1.删除表中所有的数据
2.释放表的存储空间

TRUNCATE TABLE detail_dept;

TRUNCATE语句不能回滚,而使用 DELETE 语句删除数据,可以回滚

DELETE FROM emp2;
#TRUNCATE TABLE emp2;
SELECT * FROM emp2;
ROLLBACK;
SELECT * FROM emp2;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pycharm closing卡住 解决办法

别处看到的,亲测有效 1.升级 pycharm 到 2023.3 2.pycharm 主页 Help -> Find Action -> 输入 Registry -> 禁用ide.await.scope.completion PyCharm 2023.1.2版本关闭后一直显示正在关闭项目 - 知乎

CentOS系统环境搭建(二十一)——安装git并且配置ssh拉取github代码

centos系统环境搭建专栏🔗点击跳转 文章目录 安装git并且配置ssh拉取github代码1.git初始配置2.设置ssh3.设置GitHub4.拉取代码 安装git并且配置ssh拉取github代码 1.git初始配置 安装 yum install git验证 git --version配置用户名(记得用你自己的…

C++中异常的栈展开概念

C中的异常栈展开是指,当某个函数中有异常产生(这里不考虑是主动抛出的还是被动产生的),在异常被捕获之前的函数调用链上,函数不会正常执行返回,即异常产生之后的程序逻辑不会被执行。 (注意&…

HarmonyOS开发准备(一) TypeScript基本语法

HarmonyOS开发准备(一) TypeScript基本语法 TypsScript官网:https://www.typescriptlang.org/play 可在官网 Playround 在线运行 Typescript 一、变量声明 // 创建 number(数值) 类型变量 let test_number: number 111 console.log(test_number:, tes…

教你把ChatGPT训练抖音爆款文案(附提示词)

刚好有圈子同学问到:如何把ChatGPT训练成1个抖音爆款写手,相信很多小伙伴日常也存在类似需求,用好一个GPT,让月薪5K的小助理快速变成3万月薪的运营。本期就给大家安排一期ChatGPT教程。接下来手把手演示ChatGPT调教和提示词方式一…

福州大学《嵌入式系统综合设计》实验十三:RTSP拉流与RTMP推流

一、实验目的 掌握基于算能平台的JPEG压缩编码方法以及开发环境,包括开发主机环境搭建,硬件嵌入式开发板的连接,云平台的配置,编码程序的编译、运行等。 二、实验内容 搭建实验开发环境,并编写静止图像jpeg格式编解…

如何在Python中对Dynamsoft Barcode Reader性能进行基准测试

Dynamsoft Barcode Reader SDK一款多功能的条码读取控件,只需要几行代码就可以将条码读取功能嵌入到Web或桌面应用程序。这可以节省数月的开发时间和成本。能支持多种图像文件格式以及从摄像机或扫描仪获取的DIB格式。使用Dynamsoft Barcode Reader SDK,…

ThinkPHP 2.x任意代码执行漏洞

任务一: 复现环境中的代码漏洞 任务二: 尝试利用代码执行漏洞读取服务器web目录下的文件列表。 任务一: 1.搭建环境: 2.在php环境下直接输入{${phpinfo}}测试代码片段 2.写入一句话木马,用antsword连接&#xff0…

Java数据结构之《循环队列》题目

一、前言: 这是怀化学院的:Java数据结构中的一道难度中等的一道编程题(此方法为博主自己研究,问题基本解决,若有bug欢迎下方评论提出意见,我会第一时间改进代码,谢谢!) 后面其他编程题只要我写完…

夯实c基础

夯实c基础 区别: 图一的交换,(交换的是地址而不是两数)无法实现两数的交换。 题干以下程序的输出结果为( c  )。 void fun(int a, int b, int c){ ca*b; } void main( ){ int…

【Unity】Blender场景导入

素材 下载场景:https://www.aplaybox.com/details/model/keDSIks72Qh3 blender文件导出为.fbx文件,路径选择复制(做的过程太乱了不知道有没有影响),物理类型选择网格,勾选应用变换 blender下的物体长度是u…

openbabel 安装 生成指纹方法

今日踩坑小结: openbabel 安装: 可以装,但是得在 Linux 环境下,win 环境装会报错(安装不会报错,但是生成指纹的时候会) 指纹: 在下面这个链接里,官方给出了命令行调用 o…

袖珍可穿戴手持气象仪是什么?

随着科技的不断发展,我们身边的世界正在变得越来越智能化。近日,一款名为WX-SQ12可穿戴手持气象仪的科技新品引起了人们的广泛关注。这款气象仪不仅具有创新性的可穿戴设计,还具备强大的气象数据监测功能,让用户可以随时掌握天气变…

nvm安装管理nodejs版本

1:如果之前先安装了nodejs先卸载nodejs 2:下载nvm,点击下载路径https://github.com/coreybutler/nvm-windows/releases,选择相应环境下载,如下window环境下载 下载成功后,选择NVM安装在哪个文件目录下&…

【图论】重庆大学图论与应用课程期末复习资料2-各章考点(计算部分)(私人复习资料)

图论各章考点 二、树1、避圈法(克鲁斯克尔算法)2、破圈法3、Prim算法 四、路径算法1、Dijkstra算法2、Floyd算法 五、匹配1、匈牙利算法(最大权理想匹配(最小权权值取反)) 六、行遍性问题1、Fleury算法&…

从 Oracle 到 TiDB,全链路数据迁移平台核心能力和杭州银行迁移实践

作者:邵健 杭州银行数据库专家 王辉 PingCAP 杭州银行在 TMS beta 阶段就进行了深度的测试体验,在过程中提供了大量的宝贵建议,帮助 TMS 进行了快速的优化和迭代。近期杭州银行借助 TMS 进行了多次 Oracle 生产数据库的迁移实践,…

双远心镜头:让视觉检测更精准、高效!

工业镜头是视觉系统中的重要组件,工业镜头的选型影响着整个系统的成像效果。在做视觉检测时,会遇到无法检测空间物体、无法控制视场变化、无法控制图像扭曲、对比度低、畸变大、反光等问题,这时普通的工业镜头并不能有效地解决问题&#xff0…

Electron+Ts+Vue+Vite桌面应用系列:TypeScript常用系统目录文件处理工具

文章目录 1️⃣ TypeScript操作电脑目录和文件1.1 获取磁盘信息1.2 获取目录下所有文件夹和文件1.3 新建文件夹1.4 新建文本1.5 重命名1.6 删除文件夹1.7 删除文件1.8 打开系统文件或系统文件夹1.9 根据字节转换文件大小带单位 优质资源分享 作者:xcLeigh 文章地址&…

JOSEF约瑟 剩余电流保护器 CLJ3-100A+LH30 导轨安装

CLJ3系列剩余电流动作继电器 系列型号: CLJ3-100A剩余电流动作继电器 CLJ3-250A剩余电流动作继电器 CLJ3-400A剩余电流动作继电器 CLJ3-630A剩余电流动作继电器 LH30剩余电流互感器 LH80剩余电流互感器 LH100剩余电流互感器 LH140剩余电流互感器 一、产品概…

Linux5-计划任务、进程

计划任务 一、cron 计划任务 周期性计划任务 cron 任务概述 • 用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务 • 软件包:cronie、crontabs • 系统服务:crond • 日志文件:/var/log/crond 管理计划任务策略 • 使用 cro…