博客
关于我
MySQL与SQL语言基础学习(三)
阅读量:389 次
发布时间:2019-03-05

本文共 2430 字,大约阅读时间需要 8 分钟。

DML、DDL 和 TCL 语言学习指南

一、DML(Data Manipulate Language)语言学习

DML 是数据操作语言,用于对数据库中的数据进行操作,主要包括插入、修改和删除数据的操作。

1. 插入数据

在数据库中插入数据,可以通过两种方式实现:

方式一:插入多行数据

insert into employees (employee_id, first_name, last_name) values ('101100S', 'LIHU', 'A'), ('101100S', 'LIHU', 'A'), ...;
  • 要求值的类型与字段类型须一致或兼容。
  • 字段名省略则表示默认所有列。
  • 可以通过省略字段或值使用 null 的方式插入 null 值。

方式二:插入单行数据

insert into employees set employee_id = '155861A', first_name = 'asdcasc';
  • 支持一次插入多行数据。
  • 支持子查询:
insert into employees (select * from employees where employee_id = 100);

2. 修改数据

修改数据操作可以针对单表或多表执行。

修改单表记录

update employees set employee_id = 1000 where employee_id = 100;

修改多表记录

update employee e join departments d on e.department_id = d.department_idset e.first_name = 'wuaksd', d.department_title = 'asd'where employee_id = 100;

3. 删除数据

删除数据操作同样可以针对单表或多表执行。

方式一:使用 delete 语句

delete from employees where salary < 10000;

方式二:使用 truncate 语句

truncate table employees;

两种方式的区别:

  • truncate 删除后,再进行数据插入时,表示列从 1 开始,而 delete 从断点开始。
  • truncate 不能添加筛选条件,而 delete 可以。
  • truncate 效率高且没有返回值,delete 可以返回受到影响的行数。
  • truncate 不能回滚,delete 可以回滚。

二、DDL(Data Define Language)语言学习

DDL 是数据定义语言,用于对数据库中的数据进行定义和管理,主要包括创建、修改和删除数据库、表以及数据类型的操作。

1. 库的管理

  • 创建库:
create database if not exists mydb character set gbk;
  • 修改库字符集:
alter database myemployees character set gbk;
  • 删除库:
drop database if exists mydb;

2. 表的管理

  • 创建表:
create table if not exists employees (    employee_id int,    first_name varchar(20),    last_name char(10));
  • 添加字段:
alter table employees add column department_id int after employee_id;
  • 修改字段:
alter table employees modify column first_name varchar(50);
  • 删除字段:
alter table employees drop column department_id;
  • 修改表名:
alter table employees rename to new_employees;
  • 删除表:
drop table if exists employees;
  • 复制表结构:
create table new_employees like employees;

3. 数据类型

  • 数值型:
    • 整型:tinyint, smallint, mediumint, int, bigint
    • 浮点型:float(M,D), double(M,D)
    • 定点数:decimal(M,D)
  • 字符型:char(M), varchar(M), binary(M), varbinary(M)
  • 日期型:year, date, time, datetime

4. 约束

  • 非空(not null)
  • 唯一(unique)
  • 默认值(default)
  • 主键(primary key)
  • 外键(foreign key)
  • 检查(check,MySQL 不支持)

三、TCL(Transaction Control Language)语言学习

TCL 是事务控制语言,用于管理数据库事务,确保数据一致性。

1. 事务特点(ACID)

  • 原子性(A):事务不可再分割。
  • 一致性(C):事务确保数据状态的完整性。
  • 隔离性(I):事务相互隔离,避免干扰。
  • 持久性(D):事务提交后数据持久化。

2. 事务的创建

  • 隐式事务:默认的事务处理方式,不需要显式开启。
  • 显式事务:
set autocommit = 0;start transaction;

3. 并发事务问题

  • 脏读:读取未提交的数据。
  • 不可重复读:同一事务多次读取数据结果不同。
  • 幻读:读取未提交的数据。

4. 隔离级别

  • 读未提交(read uncommitted)
  • 读已提交(read committed)
  • 可重复读(repeatable read)
  • 串行化(serializable)

转载地址:http://bweg.baihongyu.com/

你可能感兴趣的文章
Python基于RESTful风格的接口自动化测试实战
查看>>
python基于flask搭建http服务(四)—— Docker容器化部署
查看>>
python基于flask搭建http服务(二)—— 实现Excel上传、数据清洗、入库
查看>>
python基于flask搭建http服务(三)—— 使用gunicorn部署项目
查看>>
python基于flask搭建http服务(一)—— 实现数据查询和Excel导出
查看>>
Python块键盘/鼠标输入
查看>>
python在心理学研究中的应用有哪些_心理学在线研究可用平台简介和应用进展
查看>>
python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
查看>>
python在gpu上运行_【python】python开启GPU加速
查看>>
Python在def函数中使用for循环
查看>>
Python在def函数中使用for循环
查看>>
Python在Conda环境中,但在Windows虚拟环境中没有激活
查看>>
python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
查看>>
python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
查看>>
Python图像处理:从内存加载jpeg
查看>>
python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
查看>>
python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
查看>>
python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
查看>>
python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
查看>>
Python哪个版本最稳定好用2023.10.19
查看>>