博客
关于我
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 manage.py syncdb Unknown command: 'syncdb'问题解决方法
查看>>
Python map() 函数 和 numpy mean()函数
查看>>
Python Matplotlib Box并排绘制两个数据集
查看>>
Python Matplotlib 中如何用 plt.savefig 存储图片
查看>>
Python matplotlib 中更换画布背景颜色
查看>>
Python进阶03 模块
查看>>
python matplotlib简单使用
查看>>
Python mock Patch os.environ 和返回值
查看>>
Python mock 修补另一个函数调用的函数
查看>>
python mqtt 客户端实现
查看>>
Python Multiprocessing - 将类方法应用于对象列表
查看>>
Python multiprocessing.Queue 与 multiprocessing.manager().Queue()
查看>>
Python multiprocessing使用详解
查看>>
python mysql 基于 sqlalvhrmy_Python操作MySQL:pymysql和SQLAlchemy
查看>>
python mysql 布尔类型_python语言的基础学习:基本类型,函数,面向对象,模块,mysql数据库...
查看>>
Python NLP完整项目实战教程(1)
查看>>
Python NLP自然语言处理详解
查看>>
python nltk nltk_data 离线安装,chatterbot
查看>>
Redis 限流的 3 种方式,还有谁不会?
查看>>
Python这么慢,为啥大公司还在用?
查看>>