数据库基本术语DDL,DML, DCL

在这里插入图片描述

DB 数据库(database): 存储数据的“仓库”。它保存了一系列有组织的数据。

DBMS: 数据库管理系统(Database Management System)。数据库是通过DBMS创 建和操作的容器

SQL : 结构化查询语言(Structure Query Language)专门用来与数据库通信的语 言。

注意以下code 是基于mysql 数据操作的。

1、DDL(Data Definition Language):数据定义语句,用于库和 表的创建、修改、删除。

DDL用于定义数据库的结构,比如创建、修改或删除 数据库对象,包括如下SQL语句:

✔ CREATE DATABASE:创建数据库

#CREATE DATABASE 数据库名;
CREATE DATABASE demo1;

✔ CREATE TABLE:创建数据库表

CREATE TABLE `beauty` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `sex` char(1) DEFAULT '女',
  `borndate` datetime DEFAULT '1987-01-01 00:00:00',
  `phone` varchar(11) NOT NULL,
  `photo` blob,
  `boyfriend_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

✔ ALTER TABLE:更改表结构、添加、删除、修改列长度

#使用了 ALTER 命令及 DROP 子句来删除以上创建表的 photo 字段
ALTER TABLE beauty DROP photo;
#使用 ADD 子句来向数据表中添加列,如下实例在表 beauty 中添加 photo 字段,并定义数据类型:
ALTER TABLE beauty ADD photo blob;
#还有很多使用方法这里就不详述了

✔ DROP TABLE:删除表

DROP beauty;

✔ CREATE INDEX:在表上建立索引

#CREATE INDEX indexName ON table_name (column_name)
CREATE INDEX idIndex ON beauty (id);

✔ DROP INDEX:删除索引

# DROP INDEX [indexName] ON mytable; 
DROP INDEX idIndex ON beauty; 
2、DML(Data Manipulation Language):数据操纵语句,用于添 加、删除、修改、查询数据库记录,并检查数据完整性

DML用于查询与修改数据记录,包括如下SQL语句:

✔ INSERT:添加数据到数据库中

insert  into `beauty`(`id`,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`) 
values 
(1,'柳岩','女','1988-02-03 00:00:00','18209876577',NULL,8),
(3,'Angelababy','女','1989-02-03 00:00:00','18209876567',NULL,3),
(4,'热巴','女','1993-02-03 00:00:00','18209876579',NULL,2),
(5,'周冬雨','女','1992-02-03 00:00:00','18209179577',NULL,9),
(6,'周芷若','女','1988-02-03 00:00:00','18209876577',NULL,1),
(7,'岳灵珊','女','1987-12-30 00:00:00','18219876577',NULL,9),
(8,'小昭','女','1989-02-03 00:00:00','18209876567',NULL,1),
(9,'双儿','女','1993-02-03 00:00:00','18209876579',NULL,9),
(10,'王语嫣','女','1992-02-03 00:00:00','18209179577',NULL,4),
(11,'夏雪','女','1993-02-03 00:00:00','18209876579',NULL,9),
(12,'赵敏','女','1992-02-03 00:00:00','18209179577',NULL,1);

✔ UPDATE:修改数据库中的数据

UPDATE beauty set name="胡歌",sex="男" where id=1;

✔ DELETE:删除数据库中的数据

DELETE FROM beauty WHERE id = 3;

✔ SELECT:选择(查询)数据

SELECT * FROM beauty where id=4;
3、DCL(Data Control Language):数据控制语句,用于定义用 户的访问权限和安全级别。

DCL用来控制数据库的访问,包括如下SQL语句:

✔ CREATE USER:创建用户

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
flush privileges; # 刷新权限

# 可以在任何电脑上登录 mysql 服务器
CREATE USER 'Tom'@'%' IDENTIFIED BY '123456';
flush privileges;

✔ GRANT:授予访问权限

# GRANT 权限 1, 权限 2... ON 数据库名.表名 TO '用户名'@'主机名';
# Tom 用户分配对 demo1 这个数据库操作的权限:创建表,修改表,插入记录,更新记录,查询
grant create,alter,insert,update,select on demo1.* to 'Tom'@'%';

# 用户名和主机名要与上面创建的相同,要加单引号。

#给 Tom 用户分配所有权限,对所有数据库的所有表
grant all on *.* to 'Tom'@'%';

✔ SHOW GRANTS FOR ‘用户名’@‘主机名’;

#SHOW GRANTS FOR '用户名'@'主机名';
SHOW GRANTS FOR 'Tom'@'%';

✔ DROP USER:删除用户

# DROP USER '用户名'@'主机名';
DROP USER 'Tom'@'%';

✔ REVOKE:撤销访问权限

# REVOKE 权限 1, 权限 2... ON 数据库.表名 revoke all on test.* from 'user1'@'localhost'; '用户名'@'主机名';

-- 撤销 Tom 用户对 demo1 数据库所有表的操作的权限

revoke all on demo1.* from 'Tom'@'%';

✔ COMMIT:提交事务处理

✔ ROLLBACK:事务处理回退

✔ SAVEPOINT:设置保存点

# 首先开启事务
START TRANSACTION;
# 插入语句
insert  into beauty VALUES (13,'赵敏','女','1992-02-03 00:00:00','18209179577',1,1);
# 设置一个保存点 beautyAddress
SAVEPOINT beautyAddress;
# 提交事务处理 
commit;

# 这里设置的保存的作用是,当我们提交事物出错了后,我们可以根据 保存点回滚事务
# 假设 beautyAddress 保存点提交事物出错就可以执行一下语句
rollback to SAVEPOINT a;

博客参照

MySQL基础:DCL语句 - 不羁的罗恩 - 博客园 (cnblogs.com)

(5条消息) MySQL之DCL(数据控制语言)_嘉禾嘉宁papa的博客-CSDN博客_dcl语言

MySQL 临时表 | 菜鸟教程 (runoob.com)

[(5条消息) MySQL事务保存点_一枚萌新程序员的博客-CSDN博客_mysql设置保存点](

posted @ 2022-05-14 11:53  茶凡_Matrix  阅读(33)  评论(0编辑  收藏  举报  来源