SQL(DDL、DML、TCL)
2021/8/19 2:06:25
本文主要是介绍SQL(DDL、DML、TCL),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、数据定义语言(DDL)
用于建立、修改、删除数据库对象,包括创建语句(create)、修改语句(alter)、删除语句(drop),比如使用CREATE TABLE创建表,使用ALTER TABLE修改表,使用DROP TABLE删除表等动作。这类语言不需要事务的参与,自动提交
二、数据操作语言(DML)
用于改变数据库数据,包括insert、update、delete三条语句。其中,insert语句用于将数据插入到数据库中,update语句用于更新数据库中已存在的数据,delete用于删除数据库中已存在的数据。DML语言和事务是相关的,执行完DML操作后必须经过事务控制语句提交后才真正的将改变引用到数据库中。
三、事务控制语言(TCL)
用来维护数据一致性的语句,包括提交(COMMIT)、回滚(ROLLBACK)、保存点(SAVEPOINT)三条语句,其中COMMIT用来确认已经进行的数据库改变, ROLLBACK语句用来取消已经进行的数据库改变,当执行DML操作后(也就是上面说的增加、修改、删除等动作),可以使用COMMIT语句来确认这种改变,或者使用ROLLBACK取消这种改变。SAVEPOINT语句用来设置保存点,使当前的事务可以回退到指定的保存点,便于取消部分改变。
public int AddUserInfo(UserInfo userInfo) { try { //一、通过EF完成添加 //db.UserInfo.Add(userInfo); //return db.SaveChanges(); //二、通过SQL语句完成添加 //二-1、防止SQL注入 //二-2、SqlQuery 只能执行 select 类型的语句 //以下这种 不防SQL注入 //return db.Database.ExecuteSqlCommand($"insert into UserInfo values ('{userInfo.Uname}','{userInfo.Upwd}','{userInfo.Udell}','{userInfo.Usex}','{userInfo.Email}','{userInfo.Utime}')"); //以下这种 防SQL注入 SqlParameter[] sqls = { new SqlParameter("@Uname",userInfo.Uname), new SqlParameter("@Upwd",userInfo.Upwd), new SqlParameter("@Udell",userInfo.Udell), new SqlParameter("@Usex",userInfo.Usex), new SqlParameter("@Email",userInfo.Email), new SqlParameter("@Utime",userInfo.Utime) }; return db.Database.ExecuteSqlCommand("insert into UserInfo values(@Uname,@Upwd,@Udell,@Usex,@Email,@Utime)",sqls); //三、通过存储过程添加 } catch (Exception) { throw; } }
这篇关于SQL(DDL、DML、TCL)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用
- 2025-01-03混合搜索:用LanceDB实现语义和关键词结合的搜索技术(应用于实际项目)
- 2025-01-03停止思考数据管道,开始构建数据平台:介绍Analytics Engineering Framework
- 2025-01-03如果 Azure-Samples/aks-store-demo 使用了 Score 会怎样?
- 2025-01-03Apache Flink概述:实时数据处理的利器
- 2025-01-01使用 SVN合并操作时,怎么解决冲突的情况?-icode9专业技术文章分享
- 2025-01-01告别Anaconda?试试这些替代品吧