饭饭TXT > 学习管理 > 《30天打造专业红客》作者:翟羽佳【完结】 > 30天打造专业红客.txt

第 3 页

作者:翟羽佳 当前章节:15373 字 更新时间:2026-6-27 13:03

5 清除日志

可以手动或利用软件,如果不太会就去找相关教材吧,在这里我不详细介绍了。(上一篇我讲过一点)

好了,基本上就这么多了,今天就到这了,希望能给大家一些帮助

[第7天]继续讲,从克隆帐号 讲起

前2天基本的一些东西都讲过了,今天我觉得得把克隆帐号这个问题讲清楚了

什么叫克隆帐号 ?

前辈说:在注册表中有两处保存了帐号的SID相对标志符,一处是SAM\Domains\Account \Users下的子键名,另一处是该子键的子项F的值中。这里微软犯了个不同步它们的错误,登陆时用的是后者,查询时用前者。当用admin的F项覆盖其他帐号的F项后,就造成了帐号是管理员权限但查询还是原来状态的情况 。即所谓的克隆帐号。(我想这个很明白的,如果还有这个问题,你去网络技术版块问吧)

明白原理后就可以手动或者用现成的工具克隆帐号,用什么呢?

克隆ca.exe 下载(找了许久 啊)http://www.hejie.net/xz/list.asp?id=926

注意手动克隆需要SYSTEM权限(这句话大家应该能明白吧)

用什么呢?psu.exe

还是很棒的,下载:www.sometips.com/soft/psu.exe

[第8天]从回答一个朋友的问题说起

有个朋友发了短信给我问怎么判断对方主机的操作系统呢?今天我们就先说说这个问题。我先从最简单的PING看主机操作系统说起

一、用ping来识别操作系统

C:\>ping 10.1.1.2

Pinging 10.1.1.2 with 32 bytes of data:

Reply from 10.1.1.2: bytes=32 time<10ms TTL=128

Reply from 10.1.1.2: bytes=32 time<10ms TTL=128

Reply from 10.1.1.2: bytes=32 time<10ms TTL=128

Reply from 10.1.1.2: bytes=32 time<10ms TTL=128

Ping statistics for 10.1.1.2:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\>

C:\>ping 10.1.1.6

Pinging 10.1.1.6 with 32 bytes of data:

Request timed out.

Reply from 10.1.1.6: bytes=32 time=250ms TTL=237

Reply from 10.1.1.6: bytes=32 time=234ms TTL=237

Reply from 10.1.1.6: bytes=32 time=234ms TTL=237

Ping statistics for 10.1.1.6:

Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),

Approximate round trip times in milli-seconds:

Minimum = 234ms, Maximum = 250ms, Average = 179ms

我们跟据ICMP报文的TTL的值,我们就可以大概知道主机的类型。如:TTL=125左右的主机应该是windows系列的机子,TTL=235左右的主机应该是UINX系列的机子。如上面的两个例子,10.1.1.2就是win2000的机子,而10.1.1.6则是UINX(Sunos 5.8)的机子。这是因为不同操作系统的机子对ICMP报文的处理与应答是有所不同的,TTL值每过一个路由器会减1。所以造成了TTL回复值的不同。对于TTL值与操作系统类型的对应,还要*大家平时多注意观察和积累。

二、直接通过联接端口根据其返回的信息来判操作系统

这种方法应该说是用得最多的一种方法,下面我们来看几个实例。

1、如果机子开了80端口,我们可以telnet它的80端口。

C:\>telnet 10.1.1.2 80

输入get 回车(注意这里是盲打)

如果返回,

HTTP/1.1 400 Bad Request

Server: Microsoft-IIS/5.0

Date: Fri, 11 Jul 2003 02:31:55 GMT

Content-Type: text/html

Content-Length: 87

<html><head><title>Error</title></head><body>The parameter is incorrect. </body>

</html>

遗失对主机的连接。

C:\>

那么这台就肯定是windows的机子。

如果返回,

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>501 Method

Not Implemented</TITLE> </HEAD><BODY> <H1>Method Not Implemented</H1> get to / not

supported.<P> Invalid method in request get<P><HR> <ADDRESS>Apache/1.3.27 Server at gosiuniversity.com Port 80</ADDRESS>

</BODY></HTML>

遗失对主机的连接。

C:\>

那么多数就是UINX系统的机子了。

2、如果机子开了21端口,我们可以直接FTP上去

C:\>ftp 10.1.1.2

如果返回,

Connected to 10.1.1.2.

220 sgyyq-c43s950 Microsoft FTP Service (Version 5.0).

User (10.1.1.2:(none)):

那么这就肯定是一台win2000的机子了,我们还可以知道主机名呢,主机名就是sgyyq-c43s950。这个FTP是windows的IIS自带的一个FTP服务器。

如果返回,

Connected to 10.1.1.3.

220 Serv-U FTP Server v4.0 for WinSock ready...

User (10.1.1.3:(none)):

也可以肯定它是windows的机子,因为Serv-U FTP是一个专为windows平台开发的FTP服务器。

如果返回,

Connected to 10.1.1.3.

220 ready, dude (vsFTPd 1.1.0: beat me, break me)

User (10.1.1.3:(none)):

那么这就是一台UINX的机子了。

3、如果开了23端口,这个就简单了,直接telnet上去。

如果返回,

Microsoft ? Windows ? Version 5.00 (Build 2195)

Welcome to Microsoft Telnet Service

Telnet Server Build 5.00.99201.1

login:

那么这肯定是一台windows的机子了

如果返回,

SunOS 5.8

login:

不用说了,这当然是一台UINX的机子了,并且版本是SunOS 5.8的

三、利用专门的软件来识别

这种有识别操作系统功能的软件,多数采用的是操作系统协议栈识别技术。这是因为不同的厂家在编写自己操作系统时,TCP/IP协议虽然是统一的,但对TCP/IP协议栈是没有做统一的规定的,厂家可以按自己的要求来编写TCP/IP协议栈,从而造成了操作系统之间协议栈的不同。因此我们可以通过分析协议栈的不同来区分不同的操作系统,只要建立起协议栈与操作系统对应的数据库,我们就可以准确的识别操作系统了。

下面是简单介绍两款有识别功能的软件,具体用法我就不说,你可以到网上去找找相应软件的说明使用

一是nmap,下载地址:http://www.linuxeden.com/download/indexsoft.php?category=syssecure 它采用的是主动式探测,探测时会主动向目标系统发送探测包,根据目标目标机回应的数据包来,叛断对方机的操作系统。

2、 天眼,采用的是被动式的探测方法。不向目标系统发送数据包,只是被动地探测网络上的通信数据,通过分析这些数据来判断操作系统的类型。配合supersan使用,较果很好。

下载地址 http://www.xfocus.net/tools/200206/天眼1.0.5.zip

『第9天』从FTP入侵到SQL

大家都知道FTP,但很多人都讲不好它具体指什么,FTP是指文件传输协议,因特网上常用的文件传输协议,它使用户能够在两个联网计算机间实现文件传输,是因特网上传递文件最主要的方法。在使用FTP进行文件传输时,首先启动FTP客户端程序与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后给予响应,并执行正确的命令。除此之外,FTP还提供登录、目录查询、文件操作及其他会话控制功能。 很详细了吧,别老是认为FTP就是传文件的软件,呵呵

因为FTP是一种文件传输方式,所以要入侵它就有点困难了,一般现在都没什么用了,因为即使你取得了上传权限也无法直接执行程序,在UNIX或是早期一些主机上或许有一些溢出或是越权的漏洞。今天我们说这个是因为很多FTP都是可以匿名登陆的(各个高校的至少对校内的都是吧,也有严格的好像科大的就是需要很严格的认证,晕^^^),这就有文章做了

对了,说到这我想说一下FTP的一些基本命令,大家可能都知道,还是说一下 (以人为本嘛)很长的,希望大家耐性看

FTP命令:

FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,

其中 -v 显示远程服务器的所有响应信息;

-n 限制ftp的自动登录,即不使用;.n etrc文件;

-d 使用调试方式;

-g 取消全局文件名。

FTP使用的内部命令如下(中括号表示可选项):

1.![cmd[args>:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip

2.$ macro-ame[args]: 执行宏定义macro-name。

3.account[password]: 提供登录远程系统成功后访问系统资源所需的补充口令。

4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。

5.ascii:使用ascii类型传输方式。

6.bell:每个命令执行完毕后计算机响铃一次。

7.bin:使用二进制文件传输方式。

8.bye:退出ftp会话过程。

9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。

10.cd remote-dir:进入远程主机目录。

11.cdup:进入远程主机目录的父目录。

12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。

13.close:中断与远程服务器的ftp会话(与open对应)。

14.cr:使用asscii方式传输文件时,将回车换行转换为回行。

15.delete remote-file:删除远程主机文件。

16.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。

17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件

18.disconnection:同close。

19.form format:将文件传输方式设置为format,缺省为file方式。

20.get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file。

21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。

22.hash:每传输1024字节,显示一个hash符号(#)。

23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。

24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。

25.image:设置二进制传输方式(同binary)。

26.lcd[dir]:将本地工作目录切换至dir。

27.ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本地文件local-file。

28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。

29.mdelete[remote-file]:删除远程主机文件。

30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如 :mdir *.o.*.zipoutfile 。

31.mget remote-files:传输多个远程文件。

32.mkdir dir-name:在远程主机中建一目录。

33.mls remote-file local-file:同nlist,但可指定多个文件名。

34.mode[modename]:将文件传输方式设置为modename, 缺省为stream方式。

35.modtime file-name:显示远程主机文件的最后修改时间。

36.mput local-file:将多个文件传输至远程主机。

37.newer file-name: 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。

38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。

39.nmap[inpattern outpattern]:设置文件名映射机制, 使得文件传输时,文件中的某些字符相互转换, 如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。 该命令特别适用于远程主机为非UNIX机的情况。

40.ntrans[inchars[outchars>:设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。

41.open host[port]:建立指定ftp服务器连接,可指定连接端口。

42.passive:进入被动传输方式。

43.prompt:设置多个文件传输时的交互提示。

44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令, 该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。

45.put local-file[remote-file]:将本地文件local-file传送至远程主机。

46.pwd:显示远程主机的当前工作目录。

47.quit:同bye,退出ftp会话。

48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.

49.recv remote-file[local-file]:同get。

50.reget remote-file[local-file]:类似于get, 但若local-file存在,则从上次传输中断处续传。

51.rhelp[cmd-name]:请求获得远程主机的帮助。

52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态, 否则显示文件状态。

53.rename[from][to]:更改远程主机文件名。

54.reset:清除回答队列。

55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。

56.rmdir dir-name:删除远程主机目录。

57.runique:设置文件名只一性存储,若文件存在,则在原文件后加后缀.1, .2等。

58.send local-file[remote-file]:同put。

59.sendport:设置PORT命令的使用。

60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。

61.size file-name:显示远程主机文件大小,如:site idle 7200。

62.status:显示当前ftp状态。

63.struct[struct-name]:将文件传输结构设置为struct-name, 缺省时使用stream结构。

64.sunique:将远程主机文件名存储设置为只一(与runique对应)。

65.system:显示远程主机的操作系统类型。

66.tenex:将文件传输类型设置为TENEX机的所需的类型。

67.tick:设置传输时的字节计数器。

68.trace:设置包跟踪。

69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。

70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3

71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。

72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp 服务器的所有响 应都将显示给用户,缺省为on.

73.?[cmd]:同help.

上面的命令我建议大家最好下下来,背熟了很有用的。上面说到很多FTP都有提供匿名FTP的服务,而方便和安全性却是鱼与熊掌不能两得的!!很多

系统管理员都为了避免麻烦就用系统的预设设定来提供FTP这个服务.而anonymous ftp却

是有许多漏洞的,这样我们就有的说了啊。

允许用户使用Anonymous或FTP作为用户名以用户信箱做为口令(确切的说是任何带@的口令)登陆到系统。虽说匿名FTP本身 并不是个漏洞,因为匿名区域里放置有/etc/passwd和/etc/group文件,往往可能因为管理员配置上的大意造成潜在的安全隐患。使用匿名的FTP,用户可以匿名登陆FTP服务器。登陆时需要用户提供完整的E-mail地址做为passwd,其实在很多站点上这个要求形同虚设,你只要在其中包含有@字节看起来像个E-mail地址就行了,主机不会对口令做任何效验的。

远程所提供FTP服务的主机在处理匿名用户的命令时,一般都会执行一个chroot命令让匿名者进入主机所允许的匿名FTP区域。然而为了支持匿名FTP和用户FTP,FTP服务器要访问所有文件,也就证明了FTP服务器不是总在chroot环境中运行的。(一位前辈说的,我不知道还有哪个说的能比这还精辟)这个环节会让一些管理员不知所为而未曾理会,很容易被我们利用而得到一个匿名FTP用户所不能得到的权限。当然解决也很简单,可以通过修改inetd的配置来替代直接启动FTP服务器,它执行chroot(就类似于chrootuid的程序),然后再启动服务器就可以了。

一般情况下,FTP只限于在匿名用户下访问,匿名用户有其正常的权限,在启动服务器前执行chroot就意味着匿名用户将受到限制。如果说一个匿名用户在FTP服务器的匿名区域获得了一份不应该是匿名用户获得的文件,那么就说明了可能有内部客户将这个文件放置在匿名的FTP区域了。 匿名用户可以阅读到/etc/passwd文件这就是管理员很大错误表现。还有隐患是telnet到ftp21如果允许执行SITE CHMOD和SITE EXEC、/home的所有者是匿名FTP的用户,那么随便就可把权限设置成****或者更多的进行修改等等。

为了方便我们用个小软件,其实不要软件也可以,但用一下方便大家嘛 FTP scanner(下载:http://sorry.vse.cz/~xmicm08/FTPScanner/)

安装好后,我们从开始菜单中的程序中找到FTP Scanner并运行它。 我们熟悉一下我们要使用的软件的界面。 打开软件我们可以看到 :Host 主机 ,Beginning ,开始IP 下面有几个文本框 我们在这里填入我们要开始扫描的IP. Ending 结束IP .我们在这里填入我们结束扫描的IP. 在下面有一个 Threads 线程 。我们可以根据网速来选择这里的线程数. 通常Moden上网选为50--70左右. 更快的话选到100个线程. 然后我们选择菜单Session 里的Begin FTP scan 就可以开始了扫描了.. 】

注意:我们可以在View 里的options选项里选择我们的扫描参数.

在Login config里

里的UserName 和 Password我们通常不用更改.

但你也可以改动他. 比如你想扫描特定的帐号.比如扫描用户 Oracle密码也是Oracle的话 就改动这里的 UserName 和 Password

在IP Logging里

我们可以更改扫描结果存放的位置.

随便选择一个位置和文件名就可以了.

默认是存放在安装目录下面的iplog.txt文件.

下面我想大家也会用吧,就是找个主机试试,注意和命令一起用,如果在打开的网页里不能写权限,那就把密码档先当下来. ftp> get /etc/passwd ,然后用小榕的流光提取用户,再找个一个可以利用的shell,就OK了,用找到的用户名和密码登陆,想干什么就干什么了,建议大家装个后门,因为一般管理员很快就会发现的。当然,很多主机更离谱的是.anonymous竟然有到根目录和写的权限

好了,就说到这大家找几个IP段练练吧,国内这样的主机很多的

『第10天』说SQL

先说说什么叫SQL?大家反正都觉得这SQL和数据库有关,其实也不是这样的。SQL是一种结构化数据库查询语言,其发音为“sequel”或“S-Q-L”。尽管MICROSOFT以其特有的方式加入了所有权声明,但它在大多数据库应用中近乎成为一种标准。简言之,它是一种使用你选择的标准从数据库记录中选择某些记录的方法。

因为它的重要所以我将会花一定的时间来讲它,前面的东西大家不说可能用这就会了,但这个一定要仔细的说。先回答大家一个疑问,学了SQL有什么用呢?现在常用的数据库软件是ms-sql,一般的服务器上都由它提供数据库服务,但哟于具有管理权限的帐号SA的默认密码是空的,且低版本的SQL由漏洞能直接获得密码。所以它也成为入侵的一种捷径(如果由漏洞的话)。介绍个软件MS-SOL Brower(SQL远程入侵软件),以后会由用的。

在使用它时,只需要发出“做什么”的 命令,“怎么做”是不用使用者考虑的。

SQL数据库数据体系结构

SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。

在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存

储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row)

;属性称为“列”(column)。名称对称如^00100009a^:

SQL语言的组成

在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的

组成:

1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。

2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。

3.一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图

是由若干基本表或其他视图构成的表的定义。

4.一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。

每个存储文件与外部存储上一个物理文件对应。

5.用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本

表是一样的,没有区别,都是关系(表格)。

6.SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使

用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独

立的用户接口,供交互环境下的终端用户使用。

(这个内容好像很难懂,大家如果实在不行,了解就行了)

对数据库进行操作

SQL包括了所有对数据库的操作,主要是由4个部分组成:

1.数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据

库、基本表、视图和索引4部分。

2.数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操

作,其中数据更新又包括插入、删除和更新三种操作。

3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务

控制语句等。

4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则

下面我们就 简单介绍一下数据定义

SQL数据定义功能包括定义数据库、基本表、索引和视图。

首先,让我们了解一下SQL所提供的基本数据类型:(如^00100009b^)

1.数据库的建立与删除

(1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:

CREATE DATABASE <数据库名> [其它参数]

其中,<数据库名>在系统中必须是唯一的,不能重复,不然将导致数据存取失误。[其

它参数]因具体数据库实现系统不同而异。

例:要建立项目管理数据库(xmmanage),其语句应为:

CREATE DATABASE xmmanage

(2) 数据库的删除:将数据库及其全部内容从系统中删除。

其语句格式为:DROP DATABASE <数据库名>

例:删除项目管理数据库(xmmanage),其语句应为:

DROP DATABASE xmmanage

2.基本表的定义及变更

本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的

定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。

(1)基本表的定义:基本表是非导出关系,其定义涉及表名、列名及数据类型等,其语

句格式为:

CREATE TABLE[<数据库名>.]<表名>

(<列名> 数据类型 [缺省值] [NOT NULL / NULL]

[,<列名> 数据类型 [缺省值] [NOT NULL / NULL]]......

[,UNIQUE (列名[,列名]......)]

[,PRIMARY KEY(列名)]

[,FOREIGN KEY(列名[,列名]......)REFERENCE <表名>(列名[,列名]

......)]

[,CHECK(条件)] [其它参数])

其中,〈数据库名〉.]指出将新建立的表存放于该数据库中;

新建的表由两部分组成:其一为表和一组列名,其二是实际存放的数据(即可在定义表

的同时,直接存放数据到表中);

列名为用户自定义的易于理解的名称,列名中不能使用空格;

数据类型为上面所介绍的几种标准数据类型;

[NOT NULL/NULL]指出该列是否允许存放空值,SQL语言支持空值的概念,所谓空值是

“不知道”或“无意义”的值,值得注意的是数据“0”和空格都不是空值,系统一般

默认允许为空值,所以当不允许为空值时,必须明确使用NOT NULL;

[,UNIQUE]将列按照其规定的顺序进行排列,如不指定排列顺序,则按列的定义顺序

排列;

[PRIMARY KEY]用于指定表的主键(即关系中的主属性),实体完整性约束条件规定:

主键必须是唯一的,非空的;

[,FOREIGN KEY (列名[,列名]......) REFERENCE<表名>(列名[,列名]

......)]是用于指定外键参照完整性约束条件,FOREIGN KEY指定相关列为外键,其参

照对象为另外一个表的指定列,即使用REFERENCE引入的外表中的列,当不指定外表列

名时,系统将默认其列名与参照键的列名相同,要注意的是:使用外键时必须使用参

照,另外数据的外键参照完整性约束条件规定:外键的值要么与相对应的主键相同,要

么为空值(具体由实现系统不同而异)

[,CHECK]用于使用指定条件对存入表中的数据进行检查,以确定其合法性,提高数

据的安全性。

2)基本表的删除:用以从数据库中删除一个基本表及其全部内容,其语句格式为:

DROP TABLE[<数据库名>.]表名

(3)基本表的修改:在基本表建立并使用一段时间后,可能需要根据实际要求对基本表

的结构进行修改,即增加新的属性或删除属性。

增加属性的语句格式为:

ALTER TABLE [<数据库名>.]表名 ADD

(<列名> 数据类型 [缺省值] [NOT NULL / NULL]

[,<列名> 数据类型[缺省值][NOT NULL / NULL]]......

[,UNIQUE (列名[,列名]......)]

[,PRIMARY KEY(列名)]

[,FOREIGN KEY(列名[,列名]......) REFERENCE <表名>(列名[,列名]

......)]

[,CHECK(条件)][其它参数])

例如:在基本表student中加入列stborn出生日期,数据类型为DATE,且不能为空值

ALTER TABLE student ADD (stborn DATE NOT NULL)

删除属性的语句格式为:

ALTER TABLE [<数据库名>.]表名 DROP

( <列名> 数据类型 [缺省值][NOT NULL / NULL]

[,<列名> 数据类型 [缺省值][NOT NULL / NULL]]......)

3.视图定义与删除

在SQL中,视图是外模式一级数据结构的基本单位。它是从一个或几个基本表中导出的

表,是从现有基本表中抽取若干子集组成用户的“专用表”。这种构造方式必须使用

SQL中的SELECT语句来实现。在定义一个视图时,只是把其定义存放在系统的数据中,

而并不直接存储视图对应的数据,直到用户使用视图时才去求得对应的数据。

(1)视图的定义:定义视图可以使用CREATE VIEW语句实现,其语句格式为:

CREATE VIEW 视图名 AS SELECT语句

(2)视图的删除:用于删除已不再使用的视图,其语句格式如下: DROP VIEW 视图名

数据控制

由于数据库管理系统是一个多用户系统,为了控制用户对数据的存取权利,保持数据的

共享及完全性,SQL语言提供了一系列的数据控制功能。其中,主要包括安全性控制、

完整性控制、事务控制和并发控制。这个我就不详细说明了,大家如果有兴趣可以参阅相关书籍

大概需要掌握的SQL基本类容就是这样,因为里面涉及到一些语法和语言,如果你没有一点语言基础的我想会很困难的,我只能建议你去至少看看C语言。明天我们将开始讲MY-SQL

[第11天]mySQL简单介绍

目录
设置
设置
阅读主题
字体风格
雅黑 宋体 楷书 卡通
字体大小
适中 偏大 超大
保存设置
恢复默认
手机
手机阅读
扫码获取链接,使用浏览器打开
书架同步,随时随地,手机阅读
首 页 < 上一章 章节列表 下一章 > 尾 页