数据库必会必知 之 SQL四种语言:DDL DML DCL TCL

哈喽,小伙伴们!今天咱们来聊聊SQL这玩意儿。
SQL,就是Structured Query Language,说白了就是跟数据库对话的语言。
这语言还挺有意思,分成了四种主要类型,分别是DDL、DML、DCL和TCL。
每一种都有它独特的用武之地和命令。

1 . DDL(数据定义语言)
说到DDL,这可是个定义和管理数据库中数据结构的“大人物”。
你可以用它来创建、修改和删除数据库里的各种对象,比如表、索引、视图等等。
DDL的主要命令有:

CREATE:这可是个创建高手。
比如,CREATE DATABASE test;这行命令,就是在数据库世界里建了一个名叫test的新数据库。

ALTER:这个命令负责修改现有数据库对象的结构。
比如说,ALTER TABLE test ADD birthday DATE;就是在test表里加了个新的生日列。

DROP:这命令有点“暴力”,负责删除数据库对象。
比如,DROP DATABASE test;就是要把test数据库给干掉。

TRUNCATE:这个命令能快速清空表里的所有数据,但表的结构还留着。

COMMENT:这个命令可以给数据字典加备注,方便理解和维护数据库对象。

需要注意的是,DDL命令执行时通常不需要提交(commit),因为它们直接修改数据库的结构,这些更改会立即生效。
所以,在执行DDL命令时可得特别小心,别一不小心把数据库结构给破坏了。

2 . DML(数据操作语言)
DML,顾名思义,是处理数据库中数据的“老手”。
它包括了数据的插入、更新、删除和查询等操作。
DML的主要命令有:

SELECT:这是查询数据的利器。
比如,SELECT FROM test;就是查询test表中的所有数据。

INSERT:这个命令负责向数据库中插入新数据。
比如,INSERT INTO test (id, name) VALUES (1 , 'Alice');就是向test表中插入一条新记录。

UPDATE:这个命令用来修改数据库中的现有数据。
比如,UPDATE test SET name = 'Bob' WHERE id = 1 ;就是将test表中id为1 的记录的name字段修改为Bob。

DELETE:这个命令负责删除数据库中的数据。
比如,DELETE FROM test WHERE id = 1 ;就是删除test表中id为1 的记录。

DML命令执行时需要提交(commit),以确保更改被永久保存到数据库中。
此外,DML还支持事务处理,允许用户将多个操作组合成一个事务,以便在需要时进行回滚(rollback)。

3 . DCL(数据控制语言)
DCL,全称是Data Control Language,它是控制对数据库访问权限的“大管家”。
DCL的主要命令有:

GRANT:这个命令用来给用户或角色授予访问权限。
比如,GRANT SELECT ON test TO user1 ;就是授予用户user1 对test表的SELECT权限。

REVOKE:这个命令用来撤销用户或角色的访问权限。
比如,REVOKE SELECT ON test FROM user1 ;就是撤销用户user1 对test表的SELECT权限。

DCL命令允许数据库管理员灵活地管理用户对数据库的访问权限,从而确保数据库的安全性和完整性。

4 . TCL(事务控制语言)
TCL,全称是Transaction Control Language,它是管理数据库事务的“指挥官”。
TCL的主要命令有:

COMMIT:这个命令用来提交事务,将事务中的所有更改永久保存到数据库中。

ROLLBACK:这个命令用来回滚事务,撤销事务中的所有更改。
比如,在事务执行过程中发生错误时,可以使用ROLLBACK命令将数据库恢复到事务开始之前的状态。

SAVEPOINT:这个命令用来在事务中设置保存点,以便在需要时回滚到该保存点。
比如,SAVEPOINT sp1 ;就是在事务中设置一个名为sp1 的保存点。
之后,如果需要使用ROLLBACK命令回滚到该保存点,可以使用ROLLBACK TO SAVEPOINT sp1 ;命令。

SET TRANSACTION:这个命令用来设置事务的选项,比如事务的隔离级别等。

TCL命令允许用户更灵活地控制事务的执行过程,从而确保数据的一致性和完整性。

总结
总的来说,DDL、DML、DCL和TCL是SQL中的四种主要语言类型,它们各自承担着不同的职责和功能。
DDL用于定义和管理数据库结构;DML用于处理数据库中的数据;DCL用于控制对数据库的访问权限;TCL用于管理数据库事务。
通过合理使用这四种语言类型,用户可以更有效地管理和操作数据库。
希望这篇文章能帮到大家,如果还有其他问题,欢迎继续提问!

如何创建sqli

嗨小伙伴们,想要轻松创建一个SQLite数据库吗?跟着我一步步来吧!首先,你得下载一个适合你电脑的SQLite.exe文件,一定要选官方的哦,这样才能保证我们的数据库既稳又安全。
下载完之后,别忘了解压,然后用命令行进入那个存放SQLite3 .exe的文件夹。

接下来,创建数据库超级简单,只要在命令行里输入sqlite3 .exe 数据库名.db就ok了,比如sqlite3 .exe test.db,一个名为test.db的数据库就诞生啦!小贴士:数据库文件名后缀可以自己定,不过要注意,创建表之前,数据库文件可能不会直接出现在文件夹里哦。

进入数据库后,管理数据就变得轻松了。
比如,创建个表就用CREATE TABLE tablename,SQLite很贴心地允许你不指定字段类型,这可是它和其他数据库的区别之一。
插入数据用INSERT INTO tablename VALUES,删除用DELETE FROM tablename WHERE 条件,更新数据用UPDATE tablename SET 字段=值 WHERE 条件,查询数据就用SELECT FROM tablename WHERE 条件。

不过,小细节还是要留意一下的。
SQLite的语法虽然和别的数据库有点像,但也有自己独特的规则,比如字段类型和数据插入的写法。
所以,在使用SQLite之前,记得要搞清楚它的语法和限制,别让小错误影响了大数据哦!

建立数据库“TEST”并利用SQL命令建立3个表:tyy1、tyy2、tyy的具体步骤

好的,看我的:
哈喽大家好,今天跟大家分享一个小小的数据库创建过程。
首先,咱们用 createdatabasetest 这条命令,轻松搞定一个名为 test 的新数据库。
这一步走完,数据库的大小、存储路径这些基础设置都是系统给咱们自动安排好的,不用咱们操心太多细节。

接下来,数据库建好了,咱们得给它里面加点“内容”也就是表。
第一条命令是 createtabletyy1 (字段1 数据类型,字段2 数据类型),这样就在 test 数据库里成功创建了一个叫 tyy1 的新表,里面就定义了两个字段,分别是 字段1 和 字段2 ,并且指定了它们各自的数据类型。

然后呢,咱们再执行一次类似的操作:createtabletyy2 (字段1 数据类型,字段2 数据类型)。
这条命令会再创建一个新表,名字叫做 tyy2 ,结构跟 tyy1 一样,也是包含 字段1 和 字段2 这两个字段。

最后,我们再来创建一个名为 tyy 的表,使用命令:createtabletyy(字段1 数据类型,字段2 数据类型)。
同样地,这个 tyy 表也包含两个字段,字段1 和 字段2
这样,通过这三步,我们就在 test 数据库里成功创建了三个结构相似但名称不同的表:tyy1 、tyy2 和 tyy。
是不是很简单?

怎样使用SQL SERVER新建立一个数据库

嗨,小伙伴们!想要在数据库里搞点新花样?那就先来点实际的操作吧!首先,轻轻一点【新建查询】按钮,就能召唤出那神秘的代码编写面板。
在这个面板上,你就可以挥洒你的编程才华,轻松创建数据库,执行各种数据库操作啦!
创建数据库嘛,通常得有个数据文件和日志文件,这咱们之前用鼠标操作的时候已经见识过了。
今天,我要给大家揭晓一下创建数据库的神秘面纱。
创建数据库的命令格式是【createdatabase数据库名】,别看它名字长,其实很简单对吧?数据文件通常有个.mdf的后缀,日志文件则是.ldf结尾。
下面这张图就能让你一目了然。

接下来,让我来展示一下创建数据库的源代码吧:createdatabasetestonprimary(name='test', filename='E:\test\test.mdf', size=4 mb, maxsize=1 0mb, filegrowth=2 mb) logon(name='testlog', filename='E:\test\testlog.ldf', size=1 mb, maxsize=5 mb, filegrowth=1 mb)。
这么一写,一个全新的数据库就诞生啦!快来试试吧,保证让你玩转数据库!

如何使用命令在navicat中创建数据库及表

Hey,各位数据库管理达人们!在Navicat里,用命令行来建数据库和表可是个高效又灵活的技能哦!来吧,跟我一起看看怎么玩转它吧。
首先,点击菜单栏上的“工具”,然后选择“命令行界面”。
到了那里,你就可以直接输入SQL命令了。
比如,想要建个叫“test_db”的数据库,就输入“CREATEDATABASEtest_db;”。
再来,给这个数据库里加个“users”表,SQL语句是“CREATETABLEusers(idINTPRIMARYKEY,nameVARCHAR(1 00),emailVARCHAR(1 00));”。
你说为啥有图形界面还要命令行呢?因为图形界面虽然简单,但有时候命令行能给你更多控制,比如处理复杂查询或批量操作时。
而且,命令行还能让你写脚本,自动完成任务,这多方便啊!Navicat提供了多种方法来建库建表,命令行只是其中之一。
根据自己的喜好和需求,选个最适合你的方式吧!