当前位置: 首页 > article >正文

创建和管理表

第十章: 创建和管理表

1.基础知识

1.1一条数据的存储规则

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

1.2标识符命名规则

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

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

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

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

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

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

2.创建和管理数据库

2.1 创建数据库

  • 方式1:创建数据库

CREATE DATABASE 数据库名
  • 方式2: 创建数据库并指定字符集

CREATE DATABASE 数据库名 CHARACTER SET 字符集
  • 方式3: 判断数据库是否已经存在,不存在则创建数据库(推荐)

CREATE DATABASE IF NOT EXISTS 数据库名

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

2.2 管理数据库

  • 查看当前连接中的数据库都有哪些

    show databases;

  • 切换数据库

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
as
    select 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.kler.cn/a/488906.html

相关文章:

  • 实训云上搭建集群
  • 20250110_ PyTorch中的张量操作
  • 【GlobalMapper精品教程】093:将tif影像色彩映射表(调色板)转为RGB全彩模式
  • stringRedisTemplate.execute执行lua脚本
  • java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
  • idea全局替换显示不全(ctrl+shift+R)
  • Vue3的reactive、ref、toRefs、toRef、toRaw 和 markRaw处理响应式数据区别
  • 科技盛宴CES Asia 2025,企业创新活力尽显
  • uniapp路由跳转+二级页面详情跳转保留当前页方法教程
  • Win11远程桌面怎么设置?
  • CAS操作的底层原理(总线锁定机制和缓存锁定机制 )
  • SpringBoot 原理篇(day14)
  • 【python自写包模块的标准化方法】
  • 「sql之窗口函数」
  • MongoDB中的索引是提高查询效率的重要工具
  • win32汇编环境,窗口程序中对按钮控件常用操作的示例
  • Redis:持久化机制
  • Golang 并发之 Goroutine
  • Django管理后台实现ECS服务管理:权限控制与重启功能
  • (vue)el-table-column type=“selection“表格选框怎么根据条件添加禁选
  • 【PyCharm】PyCharm CE免费版下载
  • ubuntu22.04 gcc,g++从10.5切换到低版本9.5
  • openwrt 常见编译问题及编译提速
  • 多台PC共用同一套鼠标键盘
  • STM32U575按键转换及设备驱动
  • 【2025 Rust学习 --- 12 实用工具特型02】