博客
关于我
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/

你可能感兴趣的文章
OpenCV中遇到Microsoft C++ 异常 cv::Exception
查看>>
opencv之cv2.findContours和drawContours(python)
查看>>
opencv之namedWindow,imshow出现两个窗口
查看>>
opencv之模糊处理
查看>>
Opencv介绍及opencv3.0在 vs2010上的配置
查看>>
OpenCV使用霍夫变换检测图像中的形状
查看>>
opencv保存图片路径包含中文乱码解决方案
查看>>
OpenCV保证输入图像为三通道
查看>>
OpenCV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
opencv图像分割2-GMM
查看>>
opencv图像分割3-分水岭方法
查看>>
opencv图像切割1-KMeans方法
查看>>
OpenCV图像处理篇之阈值操作函数
查看>>
opencv图像特征融合-seamlessClone
查看>>
OpenCV图像的深浅拷贝
查看>>
OpenCV在Google Colboratory中不起作用
查看>>
OpenCV学习(13) 细化算法(1)(转)
查看>>
OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
查看>>
OpenCV学堂 | CV开发者必须懂的9种距离度量方法,内含欧氏距离、切比雪夫距离等(建议收藏)
查看>>
OpenCV学堂 | OpenCV中支持的人脸检测方法整理与汇总
查看>>