创建和管理表

server/2025/1/15 10:27:57/

第十章: 创建和管理表

1.基础知识

1.1一条数据的存储规则

MySQL数据库从大到小依次是数据库函数,数据库,数据表,数据表的行与列

1.2标识符命名规则

  • 数据库名 表名不得超过30个字符,变量名限制为29个

  • 必须只能包括A-Z,a-z,0-9,_共63个字符

  • 数据库名,表名,字段名等对象名中间不能包括空格

  • 同一个软件中,数据库不能同名;同一个库中,表不能同名;同一个表中,字段不能同名

  • 必须保证你的字段没有和保留字,数据库系统或常用方法冲突,如果坚持使用,请在SQL语句中使用 着重号引起来

  • 保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据结构在一个表里是整数,在另一个表里可就变成字符型了

2.创建和管理数据库

2.1 创建数据库

CREATE DATABASE 数据库
CREATE DATABASE 数据库名 CHARACTER SET 字符集
CREATE DATABASE IF NOT EXISTS 数据库

注意: DATABASE 不能改名. 一些可视化工具可以改名,他是新建库,把所有表福之道新库,再删旧库完成的.

2.2 管理数据库

use mytest2;
show tables
select database();
from dual;
show tables from mysql;

2.3修改数据库

alter database mytest2 character set 'utf8'

2.4 删除数据库

建议第二种

3 . 创建数据表

3.1 如何创建数据表

  • 方式1:(白手起家)

create table myemp1;
  • 方式二:(继承家产)

create table emp3
asselect employees.employee_id,employees.last_name,departments.department_name
from employees join departments
on employees.department_id = departments.department_id;

查询语句中字段的别名,乐意作为新创建的表的字段名称

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

3.2修改表

1.添加一个字段

alter table emp1
add slaary double(10,2);
​
alter table emp1
add phone_number varchar(20) first;
​
alter table emp1
add email varchar(45) after emp_name;

2.修改一个字段 : 数据类型(不太可能),长度,默认值

alter table emp1
modify emp_name varchar(25);
#修改字段的默认值
alter table emp1
modify emp_name varchar(35) default 'zhangsan';

3.重命名字段

#重命名字段
alter table emp1
change emp_name emp_name2 varchar(45);

4.删除一个字段

alter table emp1
drop column emp_name2;

3.3重命名表

  • 方式1

rename table emp1
to emp11
  • 方式二

alter table emp1
rename to emp11

3.4删除表

不光将表结构删除掉,表结构也删除了

drop table if exists 数据表

3.5清空表

删除表中的数据,但所有表结构保留

truncate table emp1

4.DCL中的COMMIT 和 ROLLBACK

COMMIT : 提交数据.一旦执行COMMIT ,则数据就永远保存在了数据库中,意味着数据不可以回滚

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

5.对比 TRUNCATE TABLE 和 DELETE FROM

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

  • 不同点:

    • TRUNCATE TABLE : 一旦执行此操作, 表数据全部清除. 同时,数据是不可以回滚的.

    • DELETE FROM : 一旦执行此操作,表数据可以全部清除,而数据是可以回滚的

6.DDL 和 DML的说明

  1. DDL的操作一旦执行,就不可以回滚

  2. DML的操作默认情况下,一旦执行,也是不可以回滚的. 但是如果在执行DML之前,执行了 SET automommit = FALSE,则DML操作就可以实现回滚

  3. MySQL8.0的新特性 : DDL的原子化

    1. 原子化: 要么都完成,要么都不完成(原子不可分)

    2. create database mytest;
      ​
      use mytest;
      create table book1(book_id int,book_name varchar(255)
      );
      show tables;
      drop table book1,book2;
      show tables;#在8.0中 由于没有book2语句执行失败,不会删除book1


http://www.ppmy.cn/server/158521.html

相关文章

Level2逐笔成交逐笔委托毫秒记录:今日分享优质股票数据20250114

逐笔成交逐笔委托下载 链接: https://pan.baidu.com/s/18YtQiLnt06cPQP1nRXor0g?pwd4k3h 提取码: 4k3h Level2逐笔成交逐笔委托数据分享下载 基于Level2的逐笔成交和逐笔委托数据,这种毫秒级别的记录能分析出许多关键信息,如庄家意图、虚假动作&#…

vue实现淘宝web端,装饰淘宝店铺APP,以及后端设计成能快速响应前端APP

一、前端实现 实现一个类似于淘宝店铺的装饰应用(APP)是一个复杂的任务,涉及到前端界面设计、拖放功能、模块化组件、数据管理等多个方面。为了简化这个过程,我们可以创建一个基本的 Vue 3 应用,允许用户通过拖放来添…

PHP:构建高效Web应用的强大工具

在当今的数字化时代,Web应用已经成为各行各业不可或缺的一部分。而在众多的编程语言中,PHP(Hypertext Preprocessor)凭借其简单易学、功能强大、兼容性高等特点,成为了构建Web应用的热门选择。本文将深入探讨PHP的优势…

uniapp 绘制五星评分 精确到半星

uniapp 绘制五星评分 精确到半星 对比上一篇博客 这个很简单上组件 <template><div :class"[imgTypeother?image-box:image-box1]"><img :class"[imgTypeother?image:image1]" v-for"(el,i) in value" :key"i" :sr…

Java 面试中的高频算法题详解

&#x1f496; 欢迎来到我的博客&#xff01; 非常高兴能在这里与您相遇。在这里&#xff0c;您不仅能获得有趣的技术分享&#xff0c;还能感受到轻松愉快的氛围。无论您是编程新手&#xff0c;还是资深开发者&#xff0c;都能在这里找到属于您的知识宝藏&#xff0c;学习和成长…

字符串算法篇——字里乾坤,算法织梦,解构字符串的艺术(下)

文章目录 前言第一章&#xff1a;最长公共前缀1.1 题目链接&#xff1a;https://leetcode.cn/problems/longest-common-prefix/description/1.2 题目分析&#xff1a;1.3 思路讲解&#xff1a;1.4 代码实现&#xff1a; 第二章&#xff1a;最长回文子串2.1 题目链接&#xff1a…

GET 和 POST 请求的详细区别及代码示例

文章目录 前言一、请求参数的处理方式二、安全性和幂等性三、缓存机制四、数据类型支持五、请求体的区别六、示例代码结语 前言 GET 和 POST 是 HTTP 协议中两种最常用的请求方法&#xff0c;它们在如何发送数据、安全性、幂等性等方面有着显著的不同。下面将更深入地探讨这两…

android framework.jar 在应用中使用

在开发APP中&#xff0c;有时会使用系统提供的framework.jar 来替代 android.jar, 在gradle中配置如下&#xff1a; 放置framework.jar 依赖配置 3 优先级配置 gradle.projectsEvaluated {tasks.withType(JavaCompile) {Set<File> fileSet options.bootstrapClasspat…