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

你可能感兴趣的文章
php时间戳知识点,php 时间戳函数总结与示例
查看>>
php更新数据库失败,php – 无法更新MySQL数据库
查看>>
php机器人聊天对话框,基于AIML的PHP聊天机器人
查看>>
PHP查找数组中最大值与最小值
查看>>
php查最大值,在PHP数组中查找最大值
查看>>
php标签筛选,关于PHP CodeIgniter框架中通过<a>标签和url做多条件分类筛选
查看>>
php根据年月日计算年龄
查看>>
RabbitMQ - 单机部署(超详细)
查看>>
php检查注册,PHP检查注册的电子邮件地址是一个’school.edu’地址
查看>>
php模拟发送GET和POST请求
查看>>
RabbitMQ - 以 MQ 为例,手写一个 RPC 框架 demo
查看>>
php模板引擎smarty
查看>>
php正则表达式模式
查看>>
php正则表达式的特殊字符含义
查看>>
PHP正则表达式获取武汉市的实时pm2.5数据并邮件发送phpmailer
查看>>
RabbitMQ + JMeter组合,优化你的中间件处理方式!
查看>>
PHP水仙花问题解法之一
查看>>
php没有解析是怎么回事,linux下php文件没有被剖析怎么办?_后端开发
查看>>
php注册页面实现注册后跳转页面
查看>>
PHP消息队列的实现方式与详解,值得一看
查看>>