数据库和数据表创建与管理操作

news/2024/4/26 20:58:57/文章来源:https://blog.csdn.net/sxycylq/article/details/129142462

数据库和数据表创建与管理操作

MySQL中,一个完整的而数据存储过程主要分成4步:

  • 创建数据库
  • 确认字段
  • 创建数据表
  • 插入数据

标识符命名规则

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

创建与管理数据库

创建数据库

使用默认的字符集进行创建

CREATE DATABASE mytest1;

指定字符集进行创建

mysql> CREATE DATABASE mytest2 CHARACTER SET 'gbk'-> ;
Query OK, 1 row affected (0.00 sec)mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| arcsoft            |
| atguigudb          |
| mysql              |
| mytest1            |
| mytest2            |
| performance_schema |
| sys                |
+--------------------+
8 rows in set (0.00 sec)mysql> SHOW CREATE DATABASE mytest2;
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| mytest2  | CREATE DATABASE `mytest2` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)

如果要创建的数据库已经存在,则创建不成功,但不会报错。如果要创建的数据库不存在,则创建成功

mysql> CREATE DATABASE IF NOT EXISTS mytest2 CHARACTER SET 'utf8';
Query OK, 1 row affected, 1 warning (0.00 sec)mysql> SHOW CREATE DATABASE mytest2;
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| mytest2  | CREATE DATABASE `mytest2` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)

管理数据库

查看数据库的创建信息
mysql> SHOW CREATE DATABASE mytest1;
+----------+------------------------------------------------------------------+
| Database | Create Database                                                  |
+----------+------------------------------------------------------------------+
| mytest1  | CREATE DATABASE `mytest1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)
查看当前链接中的数据库
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| arcsoft            |
| atguigudb          |
| mysql              |
| mytest1            |
| mytest2            |
| performance_schema |
| sys                |
+--------------------+
8 rows in set (0.00 sec)
切换数据库
mysql> USE atguigudb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
查看数据中保存的数据表
mysql> SHOW tables;
+---------------------+
| Tables_in_atguigudb |
+---------------------+
| countries           |
| departments         |
| emp_details_view    |
| employees           |
| job_grades          |
| job_history         |
| jobs                |
| locations           |
| order               |
| regions             |
+---------------------+
10 rows in set (0.00 sec)
查看当前使用的数据库
mysql> SELECT DATABASE() FROM DUAL;
+------------+
| DATABASE() |
+------------+
| atguigudb  |
+------------+
1 row in set (0.00 sec)
查看指定数据库下保存的数据表
mysql> SHOW TABLES FROM  arcsoft-> ;
+-------------------+
| Tables_in_arcsoft |
+-------------------+
| employees         |
+-------------------+
1 row in set (0.00 sec)

修改数据库

更改数据库的字符集

mysql> ALTER database mytest2 CHARACTER SET 'utf8';
Query OK, 1 row affected (0.00 sec)
mysql> SHOW CREATE DATABASE mytest2;
+----------+------------------------------------------------------------------+
| Database | Create Database                                                  |
+----------+------------------------------------------------------------------+
| mytest2  | CREATE DATABASE `mytest2` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)

数据库名不能修改,一些可视化工具可以改名,主要是键了新库,将所有的表复制到信标,再删除旧表所完成的

删除数据库

mysql> DROP DATABASE mytest1;
Query OK, 0 rows affected (0.00 sec)

如果删除数据库存在,则删除成功。如果不存在,则结束,不会报错

mysql> DROP DATABASE IF EXISTS mytest2;
Query OK, 0 rows affected (0.00 sec)

创建与管理数据表

创建数据表

需要用户具有创建表的权限

CREATE TABLE IF NOT EXISTS myemp1(id INT,emp_name VARCHAR(15),#varchar定义字符串,必须指明varchar所具有的最大长度hire_date DATE	
);

基于现有的表进行创建,查询语句中字段的别名,可以作为新创建的表的字段名称

查询语句中的结构可以比较丰富

CREATE TABLE myemp2
AS
SELECT employee_id,last_name,salary
FROM atguigudb.employees;

拓展:复制表中的结构,但不包含数据

CREATE TABLE myemp2
AS
SELECT employee_id,last_name,salary
FROM atguigudb.employees;
where 1=3

管理数据库

查看表结构
DESC myemp1;
查看创建表语句结构
SHOW CREATE TABLE myemp1;
修改表
添加字段

默认添加到表中的最后一个字段对的位置

ALTER TABLE myemp1
ADD salary DOUBLE(10,2);DESC myemp1;

添加到指定位置

ALTER TABLE myemp1
ADD phone_number VARCHAR(20) FIRST;
ALTER TABLE myemp1
ADD email VARCHAR(45) AFTER emp_name;
修改字段:数据类型,长度,默认值

修改长度

ALTER TABLE myemp1
MODIFY emp_name VARCHAR(25)

修改默认值

ALTER TABLE myemp1
MODIFY emp_name VARCHAR(35) DEFAULT 'person'

重命名字段

ALTER TABLE myemp1
CHANGE salary monthly_salary DOUBLE (10,2)

删除字段

ALTER TABLE myemp1
DROP COLUMN email;
重命名表
RENAME TABLE myemp1
TO myemp3;
ALTER TABLE myemp3
RENAME TO myemp1;
删除表

不光表结构删除掉,同时表中的数据也删除掉,释放表空间

删除表不能撤销,回滚

DROP TABLE IF EXISTS myemp2;
清空表

表示清空表中的所有数据,但是表结构保留

TRUNCATE TABLE myemp2;

COMMIT

COMMIT:提交数据,一旦执行commit操作,则数据将被永久的保存在数据库中,意味着数据将不可进行回滚操作

ROLLBACK

ROLLBACK:回滚数据,一旦执行ROLLBACK,则可以实现数据的回滚。回滚到最近一次COMMIT之后

TRUNCATE TABLE 和DELETE FROM

相同点:都可以实现对表中所有数据删除,并保留表结构

不同点:

  • TRUNCATE TABLE:一旦执行此操作,表数据全部清楚。同时,数据将无法回滚
  • DELETE FROM :一旦执行此操作,表数据可以全部清除(不带WHERE)。同时,数据可支持回滚
COMMITSELECT *
FROM mytest.myemp1;SET autocommit = FALSE;DELETE FROM mytest.myemp1;ROLLBACK;SELECT *
FROM mytest.myemp1;

阿里开发规范: 【参考】TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少,但 TRUNCATE 无 事务且不触发 TRIGGER,有可能造成事故,故不建议在开发代码中使用此语句。 说明:TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同。

DDL和DML说明

  • DDL 的操作一旦执行,就不可回滚。指令SET autocommit =false 对DDL操作无效(因为在执行完DDL操作之后,一定会执行一次COMMIT。而此COMMIT操作将不受SET autocommit=FALSE 影响的)
  • DML的操作默认情况,一旦执行,也是不支持回滚。但是,如果在执行DML前,执行 SET autocommit =false ,则执行的DML操作可以实现回滚

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

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

相关文章

基于龙芯 2K1000 的嵌入式 Linux 系统移植和驱动程序设计(一)

2.1 需求分析 本课题以龙芯 2K1000 处理器为嵌入式系统的处理器,需要实现一个完成的嵌入式软件系统,系统能够正常启动并可以稳定运行嵌入式 Linux。设计网络设备驱 动,可以实现板卡与其他网络设备之间的网络连接和文件传输。设计 PCIE 设备驱…

我的 System Verilog 学习记录(1)

引言 技多不压身,准备开始学一些 System Verilog 的东西,充实一下自己,这个专栏的博客就记录学习、找资源的一个过程,希望可以给后来者一些借鉴吧,IC找工作的都加把油! 本文是准备先简单介绍一下环境搭建…

洛谷P1125 [NOIP2008 提高组] 笨小猴 C语言/C++

[NOIP2008 提高组] 笨小猴 题目描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设 maxn\…

JAVA集合之并发集合

从Java 5 开始,在java.util.concurrent 包下提供了大量支持高效并发访问的集合接口和实现类,如下图所示: 以CopyOnWrite开头的集合即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往容器添加,而…

直播预告 | 嵌入式BI如何将数据分析真正融入业务流程

在信息化高速发展的今天,数据成为企业最有价值的资产之一。而数据本身很难直接传递有价值的信息,只有通过对数据进行挖掘、分析,才能让数据真正成为生产力。 商业智能(BI)应运而生,可以帮助企业更好地从数…

Julia 交互式命令窗口

执行 julia 命令可以直接进入交互式命令窗口: $ julia __ _ _(_)_ | Documentation: https://docs.julialang.org(_) | (_) (_) |_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.| | | | | | |/ _ | || |…

nginx的介绍及源码安装

文章目录前言一、nginx介绍二、nginx应用场合三、nginx的源码安装过程1.下载源码包2.安装依赖性-安装nginx-创建软连接-启动服务-关闭服务3.创建nginx服务启动脚本4.本实验---纯代码过程前言 高可用:高可用(High availability,缩写为 HA),是指系统无中断地执行其功…

win7下安装postgreSQL教程

系统环境:Windows 7 旗舰版 64位操作系统 安装版本:postgresql-9.1.4-1-windows-x64 安装步骤: 1、下载系统对应的软件版本; 2、双击“postgresql-9.1.4-1-windows-x64.exe”打开安装窗口; 3、Welcome页,…

图解操作系统

硬件结构 CPU是如何执行程序的? 图灵机的工作方式 图灵机的基本思想:用机器来模拟人们用纸笔进行数学运算的过程,还定义了由计算机的那些部分组成,程序又是如何执行的。 图灵机的基本组成如下: 有一条「纸带」&am…

allure简介

allure介绍allure是一个轻量级,灵活的,支持多语言的测试报告工具多平台的,奢华的report框架可以为dev/qa提供详尽的测试报告、测试步骤、log也可以为管理层提供high level统计报告java语言开发的,支持pytest,javaScript,PHP等可以…

C语言——动态内存管理

目录0. 思维导图:1. 为什么存在动态内存分配2. 动态内存函数介绍2.1 malloc和free2.2 calloc2.3 realloc3. 常见的动态内存错误3.1 对NULL指针的解引用操作3.2 对动态内存开辟的空间越界访问3.3 对非动态开辟内存使用free释放3.4 使用free释放一块动态开辟内存的一部…

django+celery+ RabbitMQ自定义多个消息队列

关于django celery的使用网上有很多文章,本文就不多做更多的说明。 本文使用版本 python3.8.15 Django3.2.4 celery5.2.7celery.py from __future__ import absolute_import, unicode_literals import os from celery import Celery from kombu import Exchange, …

毕业后想从事软件测试,现在需要学习哪些内容呢

在你选择学习之前,要先考虑一下这个是不是你喜欢的发展方向,而不是只听别人推荐就直接做了选择先了解下软件测试是做什么的以及未来发展前景,最后才是如何自学 软件测试就是在测试这个软件是不是能够完全按照需求运行。软件测试岗再简单点说…

Windows启动docker客户端报错:Hardware assisted virtualization and enabled in the BIOS

报错内容 : 🌟1.在控制面板中点击 启用或关闭Windows功能🌟2.勾选如下复选框🌟3.Windows功能中没有Hyper-V复选框怎么办?(如果有请跳过此步骤)此时不同人的电脑还会出现没有Hyper-V选项的情况1.打开 Windows PowerShell,输入 sys…

如何效率搭建企业流程系统?试试低代码平台吧

编者按:本文介绍了一款可私有化部署的低代码平台,可用于搭建团队流程管理体系,并详细介绍了该平台可实现的流程管理功能。关键词:可视化设计,集成能力,流程审批,流程调试天翎是国内最早从事快速开发平台研发…

Hive内部表与外部表的区别具体说明

目录 1.在/opt/atguigu/目录下,新建两个txt文件 2.在hadoop的web端递归创建一个目录,存储这两个文件 3.查看web端的文件 一、内部表: 1.创建一个内部表,并指定内部表的存储位置 2.查看内部表,内部表中没有数据 …

2023.2 新方案 java代码混淆 java加密 字符串加密

Java字节码可以反编译,特别是创业公司,很好的项目很容易被别人破解反编译,造成很严重的损失,所以本混淆方案能很好的保护源码,而且在不断迭代,增强混淆效果,异常问题处理,达到保护项目的目的: 本次升级包括: 2023年02年19日 : ht-confusion-project-1.8…

PK体系下的教育场景—电子白板的应用

PK体系指基于国产飞腾(Phytium)CPU和麒麟(Kylin)操作系统的技术和产业体系,被誉为“中国架构”,目前基于PK体系的相关软硬件已经广泛用于党政、金融、电信等关基行业。教育信创在国家大战略布局下&#xff…

【技术分享】Web自动化之Selenium安装

Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作。但是手工执行的任务容易出现人为的错误,也比较费时间。因此,将这些任务自动化,就可以消除人为因素。Selenium 可以…

理解QPSK的实质-I右手正旋-Q左手负旋

正在学习5GNR PDCCH,用到QPSK。作一小结。 引言 我认为像我这样一个死民科,非主流非科班的通信人,理解QPSK的意义,甚至不比欧拉公式,或者是傅里叶变换小。 因为QPSK相较于BPSK,是真正第一次体现了调制的…