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

你可能感兴趣的文章
Objective-C实现基于事件对象实现线程同步(附完整源码)
查看>>
Objective-C实现基于信号实现线程同步(附完整源码)
查看>>
Objective-C实现基于数据流拷贝文件(附完整源码)
查看>>
Objective-C实现基于文件流拷贝文件(附完整源码)
查看>>
Objective-C实现基于模板的双向链表(附完整源码)
查看>>
Objective-C实现基于模板的顺序表(附完整源码)
查看>>
Objective-C实现基本二叉树算法(附完整源码)
查看>>
Objective-C实现堆排序(附完整源码)
查看>>
Objective-C实现填充环形矩阵(附完整源码)
查看>>
Objective-C实现声音录制播放程序(附完整源码)
查看>>
Objective-C实现备忘录模式(附完整源码)
查看>>
Objective-C实现复制粘贴文本功能(附完整源码)
查看>>
Objective-C实现复数的加减乘除(附完整源码)
查看>>
Objective-C实现复数类+-x%(附完整源码)
查看>>
Objective-C实现外观模式(附完整源码)
查看>>
Objective-C实现多启发式a star A*算法(附完整源码)
查看>>
Objective-C实现多尺度MSR算法(附完整源码)
查看>>
Objective-C实现多种方法求解定积分(附完整源码)
查看>>
Objective-C实现多组输入(附完整源码)
查看>>
Objective-C实现多行输入(附完整源码)
查看>>