星乐seo网站关键词排名优化,网页版梦幻西游奔波儿灞,腾云网,阿里云服务器的网站备案流程图做到哪一步才算精通SQL-Structured Query Language 数据定义语言 DDL for StructCREATE#xff1a;用来创建数据库、表、索引等对象ALTER#xff1a;用来修改已存在的数据库对象DROP#xff1a;用来删除整个数据库或者数据库中的表TRUNCATE#xff1a;用来删除表中所有的行… 做到哪一步才算精通SQL-Structured Query Language 数据定义语言 DDL for StructCREATE用来创建数据库、表、索引等对象ALTER用来修改已存在的数据库对象DROP用来删除整个数据库或者数据库中的表TRUNCATE用来删除表中所有的行但不删除表本身RENAME用来重命名数据库或者表COMMENT用来为数据库对象如表、列添加注释 数据操作语言 DML for DataMERGE合并两张表或更改其中一张表的数据CALL调用一个存储过程EXPLAIN PLAN提供一条查询语句的执行计划 - 工作中未用到待学习中LOCK TABLE对数据库表进行锁定以控制并发读写 - 工作中未用到待学习中 数据控制语言 DCL for permissionGRANT该命令用于授予用户对数据库对象例如表格的访问权限REVOKE该命令用于撤回已经授予用户的某些权限 数据查询语言 DQL事务控制语言 TCLCOMMIT用于提交事务将所有数据库修改保存到数据库中ROLLBACK用于回滚事务撤销所有未经提交的数据库修改AVEPOINT为事务中的一系列操作设定保存点 ref [基础语法与操作](https://blog.csdn.net/pantouyuchiyu/article/details/135937701)数据定义语言 DDL for Struct
DDLData Definition Language数据库定义语言用于定义或改变数据表结构、数据类型、表之间的关系、库的索引、约束、视图、存储过程、触发器等。CREATE、ALTER、DROP、TRUNCATE、RENAME、COMMENT等命令一旦执行就无法被撤销因为它们改变了数据库的结构。
CREATE用来创建数据库、表、索引等对象
CREATE DATABASE testDB; -- 创建一个名为testDB的数据库
CREATE TABLE Students (ID INT, Name TEXT); -- 创建一个名为Students的表包含ID和Name两个字段
CREATE INDEX index_name ON Students (Name desc); -- 常见简单索引 name 逆序
CREATE UNIQUE INDEX index_id on Students (ID); -- 常见唯一索引 idALTER用来修改已存在的数据库对象
ALTER TABLE Students ADD Grade INT; --在Students表中添加一个名为Grade的字段
ALTER TABLE Students DROP COLUMN Grade; --在Students表中删除名为Grade的字段DROP用来删除整个数据库或者数据库中的表
DROP DATABASE testDB; --删除名为testDB的数据库
DROP TABLE Students; --删除Students表TRUNCATE用来删除表中所有的行但不删除表本身
TRUNCATE TABLE Students; --删除Students表中的所有数据但不删除表本身RENAME用来重命名数据库或者表
ALTER TABLE Students RENAME TO Pupils; --将Students表重命名为PupilsCOMMENT用来为数据库对象如表、列添加注释
COMMENT ON COLUMN Students.Name IS Student Name; --在Students表的Name列上添加注释Student Name数据操作语言 DML for Data
DMLData Manipulation Language是数据操作语言用于管理和检索数据库中的数据。 适用于对数据库中的数据进行一些简单操作比如增删改查表中的数据。常用的语句关键字有SELECT、INSERT、UPDATE、DELETE、MERGE、CALL、EXPLAIN PLAN、LOCK TABLE。作用于数据本身如果执行了错误的操作可以通过回滚机制来取消这些操作。
SELECT * FROM Students; --选择Students表中的所有数据
SELECT Name, Grade FROM Students; --选择Students表中的Name和Grade数据# 在Students表中插入一条新的数据
INSERT INTO Students (ID, Name, Age) VALUES (1, Tom, 18); # 将Students表中ID为1的记录的Age设置为19
UPDATE Students SET Age 19 WHERE ID 1;# 删除Students表中ID为1的数据
DELETE FROM Students WHERE ID 1;MERGE合并两张表或更改其中一张表的数据
# 根据ID进行匹配向Students中更新或插入来自Enrolled_Students中的数据
MERGE INTO Students AS Target
USING (SELECT ID, Name FROM Enrolled_Students) AS Source
ON Target.ID Source.ID
WHEN MATCHED THEN UPDATE SET Name Source.Name
WHEN NOT MATCHED THEN INSERT (ID, Name) VALUES (Source.ID, Source.Name); # MySQL 在 8.0 之前不支持 MERGE 语句
# 需要使用 INSERT ... ON DUPLICATE KEY UPDATE 来实现类似的功能CALL调用一个存储过程
CALL Update_Students_Age(18); -- 调用名为“Update_Students_Age”的存储过程EXPLAIN PLAN提供一条查询语句的执行计划 - 工作中未用到待学习中
EXPLAIN PLAN FOR SELECT * FROM Students; -- 显示查询所有学生数据的执行计划LOCK TABLE对数据库表进行锁定以控制并发读写 - 工作中未用到待学习中
LOCK TABLE Students IN EXCLUSIVE MODE; -- 对Students表施加独占锁数据控制语言 DCL for permission
DCLData Control Language数据控制语言主要用于控制用户对数据库的访问权限以及对数据的执行权限。使用DCL数据库管理员可以精细化管理数据库的访问权限保护数据的安全性。常见的DCL语句包括GRANT、REVOKE等。
GRANT该命令用于授予用户对数据库对象例如表格的访问权限
GRANT SELECT, INSERT, UPDATE ON Students TO hugh;
# 给 hugh 授予了对 Students 表进行 SELECT、INSERT 和 UPDATE 的权限REVOKE该命令用于撤回已经授予用户的某些权限
REVOKE UPDATE ON Students FROM hugh;
撤回了 hugh 对 Students 表的 UPDATE 权限。数据查询语言 DQL
DQLData Query Language数据查询语言主要用来查询数据。 实际上DQL在操作中主要体现为SQL的SELECT语句。
事务控制语言 TCL
TCL (Transaction Control Language) 是事务控制语言主要用来管理和控制数据库中的事务Transaction以保证数据库操作的完整性和一致性。TCL命令往往和DML数据操作语言命令一起使用以确保一系列的数据库操作要么全部成功要么全部不成功可回滚至操作前的状态。
COMMIT用于提交事务将所有数据库修改保存到数据库中
INSERT INTO Students (ID, Name, Age) VALUES (1, Tom, 18);
COMMIT; -- 提交事务将插入的数据保存到数据库中ROLLBACK用于回滚事务撤销所有未经提交的数据库修改
INSERT INTO Students (ID, Name, Age) VALUES (1, Tom, 18);
COMMIT; -- 提交事务将插入的数据保存到数据库中AVEPOINT为事务中的一系列操作设定保存点
设立保存点后可以选择只回滚到保存点的部分而不需要全部回滚
SAVEPOINT SP1; -- 创建保存点 SP1
INSERT INTO Students (ID, Name, Age) VALUES (1, Tom, 18);
ROLLBACK TO SP1; -- 回滚至保存点 SP1不会撤销保存点后的操作