① 如何使用sql
掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。
练掌握SQL是数据库用户的宝贵财 富。掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。
在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。
SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。
INSERT语句
用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:
INSERT INTO EMPLOYEES VALUES
('Smith','John','1980-06-10',
'Los Angles',16,45000);
通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。
我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。
如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。这是因为SQL提供对事务的支持。一次事务将数据库从一种一致性转移到另一种一致性。如果事务的某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到此事务之前的状态。
回到原来的INSERT的例子,请注意所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。为了增加可读性而在数字间插入逗号将会引起错误。记住,在SQL中逗号是元素的分隔符。
同样要注意输入文字值时要使用单引号。双引号用来封装限界标识符。
对于日期类型,我们必须使用SQL标准日期格式(yyyy-mm-dd),但是在系统中可以进行定义,以接受其他的格式。当然,2000年临近,请你最好还是使用四位来表示年份。
既然你已经理解了INSERT语句是怎样工作的了,让我们转到EMPLOYEES表中的其他部分:
INSERT INTO EMPLOYEES VALUES
('Bunyan','Paul','1970-07-04',
'Boston',12,70000);
INSERT INTO EMPLOYEES VALUES
('John','Adams','1992-01-21',
'Boston',20,100000);
INSERT INTO EMPLOYEES VALUES
('Smith','Pocahontas','1976-04-06',
'Los Angles',12,100000);
INSERT INTO EMPLOYEES VALUES
('Smith','Bessie','1940-05-02',
'Boston',5,200000);
INSERT INTO EMPLOYEES VALUES
('Jones','Davy','1970-10-10',
'Boston',8,45000);
INSERT INTO EMPLOYEES VALUES
('Jones','Indiana','1992-02-01',
'Chicago',NULL,NULL);
在最后一项中,我们不知道Jones先生的工薪级别和年薪,所以我们输入NULL(不要引号)。NULL是SQL中的一种特殊情况,我们以后将进行详细的讨论。现在我们只需认为NULL表示一种未知的值。
有时,像我们刚才所讨论的情况,我们可能希望对某一些而不是全部的列进行赋值。除了对要省略的列输入NULL外,还可以采用另外一种INSERT语句,如下:
INSERT INTO EMPLOYEES(
FIRST_NAME, LAST_NAME,
HIRE_DATE, BRANCH_OFFICE)
VALUE(
'Indiana','Jones',
'1992-02-01','Indianapolis');
这样,我们先在表名之后列出一系列列名。未列出的列中将自动填入缺省值,如果没有设置缺省值则填入NULL。请注意我们改变了列的顺序,而值的顺序要对应新的列的顺序。如果该语句中省略了FIRST_NAME和LAST_NAME项(这两项规定不能为空),SQL操作将失败。
让我们来看一看上述INSERT语句的语法图:
INSERT INTO table
[(column { ,column})]
VALUES
(columnvalue [{,columnvalue}]);
和前一篇文章中一样,我们用方括号来表示可选项,大括号表示可以重复任意次数的项(不能在实际的SQL语句中使用这些特殊字符)。VALUE子句和可选的列名列表中必须使用圆括号。
SELECT语句
SELECT语句可以从一个或多个表中选取特定的行和列。因为查询和检索数据是数据库管理中最重要的功能,所以SELECT语句在SQL中是工作量最大的部分。实际上,仅仅是访问数据库来分析数据并生成报表的人可以对其他SQL语句一窍不通。
SELECT语句的结果通常是生成另外一个表。在执行过程中系统根据用户的标准从数据库中选出匹配的行和列,并将结果放到临时的表中。在直接SQL(direct SQL)中,它将结果显示在终端的显示屏上,或者将结果送到打印机或文件中。也可以结合其他SQL语句来将结果放到一个已知名称的表中。
SELECT语句功能强大。虽然表面上看来它只用来完成本文第一部分中提到的关系代数运算“选择”(或称“限制”),但实际上它也可以完成其他两种关系运算—“投影”和“连接”,SELECT语句还可以完成聚合计算并对数据进行排序。
SELECT语句最简单的语法如下:
SELECT columns FROM tables;
当我们以这种形式执行一条SELECT语句时,系统返回由所选择的列以及用户选择的表中所有指定的行组成的一个结果表。这就是实现关系投影运算的一个形式。
让我们看一下使用图1中EMPLOYEES表的一些例子(这个表是我们以后所有SELECT语句实例都要使用的。而我们在图2和图3中给出了查询的实际结果。我们将在其他的例子中使用这些结果)。
假设你想查看雇员工作部门的列表。那下面就是你所需要编写的SQL查询:
SELECT BRANCH_OFFICE FROM EMPLOYEES;
以上SELECT语句的执行将产生如图2中表2所示的结果。
由于我们在SELECT语句中只指定了一个列,所以我们的结果表中也只有一个列。注意结果表中具有重复的行,这是因为有多个雇员在同一部门工作(记住SQL从所选的所有行中将值返回)。要消除结果中的重复行,只要在SELECT语句中加上DISTINCT子句:
SELECT DISTINCT BRANCH_OFFICE
FROM EMPLOYEES;
这次查询的结果如表3所示。
现在已经消除了重复的行,但结果并不是按照顺序排列的。如果你希望以字母表顺序将结果列出又该怎么做呢?只要使用ORDER BY子句就可以按照升序或降序来排列结果:
SELECT DISTINCT BRANCH_OFFICE
FROM EMPLOYEES
ORDER BY BRANCH_OFFICE ASC;
这一查询的结果如表4所示。请注意在ORDER BY之后是如何放置列名BRANCH _OFFICE的,这就是我们想要对其进行排序的列。为什么即使是结果表中只有一个列时我们也必须指出列名呢?这是因为我们还能够按照表中其他列进行排序,即使它们并不显示出来。列名BRANCH_ OFFICE之后的关键字ASC表示按照升序排列。如果你希望以降序排列,那么可以用关键字DESC。
同样我们应该指出ORDER BY子句只将临时表中的结果进行排序;并不影响原来的表。
假设我们希望得到按部门排序并从工资最高的雇员到工资最低的雇员排列的列表。除了工资括号中的内容,我们还希望看到按照聘用时间从最近聘用的雇员开始列出的列表。以下是你将要用到的语句:
SELECT BRANCH_OFFICE,FIRST_NAME,
LAST_NAME,SALARY,HIRE_DATE
FROM EMPLOYEES
ORDER BY SALARY DESC,
HIRE_DATE DESC;
这里我们进行了多列的选择和排序。排序的优先级由语句中的列名顺序所决定。SQL将先对列出的第一个列进行排序。如果在第一个列中出现了重复的行时,这些行将被按照第二列进行排序,如果在第二列中又出现了重复的行时,这些行又将被按照第三列进行排序……如此类推。这次查询的结果如表5所示。
将一个很长的表中的所有列名写出来是一件相当麻烦的事,所以SQL允许在选择表中所有的列时使用*号:
SELECT * FROM EMPLOYEES;
这次查询返回整个EMPLOYEES表,如表1所示。
下面我们对开始时给出的SELECT语句的语法进行一下更新(竖直线表示一个可选项,允许在其中选择一项。):
SELECT [DISTINCT]
(column [{, columns}])| *
FROM table [ {, table}]
[ORDER BY column [ASC] | DESC
[ {, column [ASC] | DESC }]];
定义选择标准
在我们目前所介绍的SELECT语句中,我们对结果表中的列作出了选择但返回的是表中所有的行。让我们看一下如何对SELECT语句进行限制使得它只返回希望得到的行:
SELECT columns FROM tables [WHERE predicates];
WHERE子句对条件进行了设置,只有满足条件的行才被包括到结果表中。这些条件由断言(predicate)进行指定(断言指出了关于某件事情的一种可能的事实)。如果该断言对于某个给定的行成立,该行将被包括到结果表中,否则该行被忽略。在SQL语句中断言通常通过比较来表示。例如,假如你需要查询所有姓为Jones的职员,则可以使用以下SELECT语句:
SELECT * FROM EMPLOYEES
WHERE LAST_NAME = 'Jones';
LAST_NAME = 'Jones'部分就是断言。在执行该语句时,SQL将每一行的LAST_NAME列与“Jones”进行比较。如果某一职员的姓为“Jones”,即断言成立,该职员的信息将被包括到结果表中(见表6)。
使用最多的六种比较
我们上例中的断言包括一种基于“等值”的比较(LAST_NAME = 'Jones'),但是SQL断言还可以包含其他几种类型的比较。其中最常用的为:
等于 =
不等于 <>
小于 <
大于 >
小于或等于 <=
大于或等于 >=
下面给出了不是基于等值比较的一个例子:
SELECT * FROM EMPLOYEES
WHERE SALARY > 50000;
这一查询将返回年薪高于$50,000.00的职员(参见表7)。
逻辑连接符
有时我们需要定义一条不止一种断言的SELECT语句。举例来说,如果你仅仅想查看Davy Jones的信息的话,表6中的结果将是不正确的。为了进一步定义一个WHERE子句,用户可以使用逻辑连接符AND,OR和NOT。为了只得到职员Davy Jones的记录,用户可以输入如下语句:
SELECT * FROM EMPLOYEES
WHERE LAST_NAME = 'Jones' AND FIRST_NAME = 'Davy';
在本例中,我们通过逻辑连接符AND将两个断言连接起来。只有两个断言都满足时整个表达式才会满足。如果用户需要定义一个SELECT语句来使得当其中任何一项成立就满足条件时,可以使用OR连接符:
SELECT * FROM EMPLOYEES
WHERE LAST_NAME = 'Jones' OR LAST_NAME = 'Smith';
有时定义一个断言的最好方法是通过相反的描述来说明。如果你想要查看除了Boston办事处的职员以外的其他所有职员的信息时,你可以进行如下的查询:
SELECT * FROM EMPLOYEES
WHERE NOT(BRANCH_OFFICE = 'Boston');
关键字NOT后面跟着用圆括号括起来的比较表达式。其结果是对结果取否定。如果某一职员所在部门的办事处在Boston,括号内的表达式返回true,但是NOT操作符将该值取反,所以该行将不被选中。
断言可以与其他的断言嵌套使用。为了保证它们以正确的顺序进行求值,可以用括号将它们括起来:
SELECT * FROM EMPLOYEES
WHERE (LAST_NAME = 'Jones'
AND FIRST_NAME = 'Indiana')
OR (LAST_NAME = 'Smith'
AND FIRST_NAME = 'Bessie');
SQL沿用数学上标准的表达式求值的约定—圆括号内的表达式将最先进行求值,其他表达式将从左到右进行求值。
以上对逻辑连接符进行了说明,在对下面的内容进行说明之前,我们再一次对SELECT语句的语法进行更新:
SELECT [DISTINCT]
(column [{, column } ] )| *
FROM table [ { , table} ]
[ORDER BY column [ASC] | [DESC
[{ , column [ASC] | [DESC } ] ]
WHERE predicate [ { logical-connector predicate } ];
NULL和三值逻辑
在SQL中NULL是一个复杂的话题,关于NULL的详细描述更适合于在SQL的高级教程而不是现在的入门教程中进行介绍。但由于NULL需要进行特殊处理,并且你也很可能会遇到它,所以我们还是简略地进行一下说明。
首先,在断言中进行NULL判断时需要特殊的语法。例如,如果用户需要显示所有年薪未知的职员的全部信息,用户可以使用如下SELECT语句:
SELECT * FROM EMPLOYEES
WHERE SALARY IS NULL;
相反,如果用户需要所有已知年薪数据的职员的信息,你可以使用以下语句:
SELECT * FROM EMPLOYEES
WHERE SALARY IS NOT NULL;
请注意我们在列名之后使用了关键字IS NULL或IS NOT NULL,而不是标准的比较形式:COLUMN = NULL、COLUMN <> NULL或是逻辑操作符NOT(NULL)。
这种形式相当简单。但当你不明确地测试NULL(而它们确实存在)时,事情会变得很混乱。
例如,回过头来看我们图1中的EM-PLOYEES表,可以看到Indiana Jones的工薪等级或年薪值都是未知的。这两个列都包含NULL。可以想象运行如下的查询:
SELECT * FROM EMPLOYEES
WHERE GRADE <= SALARY;
此时,Indiana Jones应该出现在结果表中。因为NULL都是相等的,所以可以想象它们是能够通过GRADE小于等于SALARY的检查的。这其实是一个毫无疑义的查询,但是并没有关系。SQL允许进行这样的比较,只要两个列都是数字类型的。然而,Indiana Jones并没有出现在查询的结果中,为什么?
正如我们早先提到过的,NULL表示未知的值(而不是象某些人所想象的那样表示一个为NULL的值)。对于SQL来说意味着这个值是未知的,而只要这个值为未知,就不能将其与其他值比较(即使其他值也是NULL)。所以SQL允许除了在true 和false之外还有第三种类型的真值,称之为“非确定”(unknown)值。
如果比较的两边都是NULL,整个断言就被认为是非确定的。将一个非确定断言取反或使用AND或OR与其他断言进行合并之后,其结果仍是非确定的。由于结果表中只包括断言值为“真”的行,所以NULL不可能满足该检查。从而需要使用特殊的操作符IS NULL和IS NOT NULL。
UPDATE语句
UPDATE语句允许用户在已知的表中对现有的行进行修改。
例如,我们刚刚发现Indiana Jones的等级为16,工资为$40,000.00,我们可以通过下面的SQL语句对数据库进行更新(并清除那些烦人的NULL)。
UPDATE EMPLOYEES
SET GRADE = 16, SALARY = 40000
WHERE FIRST_NAME = 'Indiana'
AND LAST_NAME = 'Jones';
上面的例子说明了一个单行更新,但是UPDATE语句可以对多行进行操作。满足WHERE条件的所有行都将被更新。如果,你想让Boston办事处中的所有职员搬到New York,你可以使用如下语句:
UPDATE EMPLOYEES
SET BRANCH_OFFICE = 'New York'
WHERE BRANCH_OFFICE = 'Boston';
如果忽略WHERE子句,表中所有行中的部门值都将被更新为'New York'。
UPDATE语句的语法流图如下面所示:
UPDATE table
SET column = value [{, column = value}]
[ WHERE predicate [ { logical-connector predicate}]];
DELETE语句
DELETE语句用来删除已知表中的行。如同UPDATE语句中一样,所有满足WHERE子句中条件的行都将被删除。由于SQL中没有UNDO语句或是“你确认删除吗?”之类的警告,在执行这条语句时千万要小心。如果决定取消Los Angeles办事处并解雇办事处的所有职员,这一卑鄙的工作可以由以下这条语句来实现:
DELETE FROM EMPLOYEES
WHERE BRANCH_OFFICE = 'Los Angeles';
如同UPDATE语句中一样,省略WHERE子句将使得操作施加到表中所有的行。
DELETE语句的语法流图如下面所示:
DELETE FROM table
[WHERE predicate [ { logical-connector predicate} ] ];
现在我们完成了数据操作语言(DML)的主要语句的介绍。我们并没有对SQL能完成的所有功能进行说明。SQL还提供了许多的功能,如求平均值、求和以及其他对表中数据的计算,此外SQL还能完成从多个表中进行查询(多表查询,或称之为连接)的工作。这种语言还允许你使用GRANT和REVOKE命令控制使用者的数据访问权限
② sql2000安装教程
1、先把SQL解压,找到“CHS_MSDE2000A”。
③ 如何学习SQL语句,才能达到精通的标准
SQL语言,数据库基础电子资料:
SQL语法大全中文版
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148128
SQL语言案头完全参考手册
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146159
SQL - A Practical Introction
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148095
O'Reilly SQL Tuning
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=159156
O'Reilly The Art of SQL
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=163611
数据库综合资料库
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146238
数据库设计指南
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148082
Wrox Beginning Database Design
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=145206
SQL Puzzles and Answers
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=160834
SQL Queries for Mere Mortals
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=162978
SQL Puzzles and Answers
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=160834
Apress出版 The Berkeley DB Book
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=168290
The Handbook of Data Mining
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=176600
数据库系统概论 浙江大学张军教授主讲(全32讲)
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=154299
MS SQL Server电子资料:
Transact-SQL Cookbook
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=163150
SQL Server 2005宝典
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=149644
Microsoft SQL Server 2005完全参考
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152872
O'Reilly Learning SQL on SQL Server 2005
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=163464
Beginning SQL Server 2005 Programming
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=153216
Pro SQL Server 2005 High Availability
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=162981
Beginning SQL Server 2005 Administration
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152863
SQL Server 2005 Management and Administration
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=176845
SQL Server 2005 Unleashed
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152874
Pro SQL Server 2005
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152325
A Developer's Guide to SQL Server 2005
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=145565
Pro T-SQL 2005 Programmer's Guide
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=154245
Beginning Transact-SQL with SQL Server 2000 and 2005
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152868
SQL Server 2005报表服务
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148376
Wrox Professional SQL Server 2005 Programming
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=151270
Scaling Out SQL Server 2005权威指南
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=162785
Sql Server 2005 Performance Optimiztion and Tuning Handbood
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=165048
Microsoft SQL Server 2005编程傻瓜书
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152864
Pro SQL Server 2005 Assemblies
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=151269
MS SQL Server 2005 Reporting Essentials
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=147862
SQL Server 2005工具箱内幕
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152321
SQL Server 2005管理员手册
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152347
SQL Server 2005工具箱内幕
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152321
SQL Server 2005数据挖掘
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148099
Pro SQL Server 2005 Service Broker
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=159656
Pro SQL Server 2005 Replication
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=160606
Sql server 2005的XML最佳实施策略
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152278
Microsoft SQL Server Black Book
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=163457
MS SQL Server2000 宝典
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=145853
SQL Server 2000存储过程和XML编程
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152873
SQL Server 2005高级数据分析视频教程系列
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=162737
SQL Server 2005盛宴系列视频 全52讲
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=151642
MySQL电子资料:
MySQL宝典
http://bbs.topsage.com/dispbbs_122_159157_1.html
SQL for MySQL Developers
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152862
MySQL教程
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146824
Teach Yourself MySQL in 10 Minutes
http://bbs.topsage.com/dispbbs_122_174432_1.html
O'Reilly MySQL Pocket Reference 第二版 PDF
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=175014
MySQL 5 权威指南(第三版)
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148867
MySQL培训经典教程
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146795
MySQL Cookbook 第二版
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=175972
The Definitive Guide to MySQL
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=175382
O'Reilly MySQL Pocket Reference 第二版
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=175014
MySQL Essential Skills
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146749
MySQL Administrators Guide
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=146580
MySQL权威指南 中文版+英文版
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148870
MySQL 4.1.0 中文参考手册
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148869
MySQL in a Nutshell
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=148868
Export MySQL
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152865
MySQL and PHP from Scratch
http://bbs.topsage.com/dispbbs.asp?boardID=122&ID=152162
④ 怎么开始学习sql2000
软件入门与提高丛书——SQL Server 2000中文版入门与提高
http://book.jqcq.com/advanced_search_result.php?keywords=sql%202000
http://book.jqcq.com/proct/800530.html
本书针对Microsoft公司最新推出的大型关系数据库管理系统SQL Server 2000编写,循序渐进地介绍了从入门到深入掌握SQL Server 2000所需的各方面知识。内容包括SQL Server 2000的新特点;安装、配置SQL Server 2000的方法;SQL Server 2000日常管理方法和技巧;Transact-SQL语言程序设计;存储过程,触发器等数据库对象的设计方法和使用策略;SQL Server 2000分布式管理、自动管理和数据舆服务等高级应用;应用高级程序开发语言开发基于SQL Server 2000的应用程序;使用Web向导快速生成HTML页面。
本书介绍了大量SQL Server的使用经验,对使用中的重点、难点进行了专门的讲解,是一本有效实用的入门指南。本书的提高部分,内容有一定深度,对有SQL Server使用基础但希望进一步提高的读者来说也有一定帮助。
目录: 第1章 SQL Server 2000概述
1.1 SQL Server的发展简史
1.2 SQL Server 2000的特点
1.3 SQL Server 2000的体系结构
1.4 SQL Server 2000的新特点
1.5 本章小结
第2章 关系数据库基础
2.1 关系数据库的基本概念
2.2 SQL Server的数据库对象
2.3 SQL和Transact-SQL
2.4 本章小结
第3章 安装SQL Server 2000
3.1 SQL Server实例
3.2 安装SQL Server 2000所需的软硬件配置
3.3 安装SQL Server 2000必须注意的若干事项
3.4 远程安装SQL Server 2000
3.5 本地安装SQL Server 2000软件
3.6 升级到SQL Server 2000
3.7 企业管理器介绍
3.8 本章小结
第4章 SQL Server的系统组成
4.1 SQL Server 2000的系统数据库
4.2 SQL Server 2000的系统表
4.3 SQL Server 2000的系统存储过程
4.4 SQL Server 2000的示例数据库
4.5 本章小结
第5章 SQL Server服务器管理与使用
5.1 管理SQL Server服务器组
5.2 SQL Server服务器的连接和注册
5.3 注册SQL Server服务器的注意事项
5.4 配置SQL Server服务器
5.5 启动和关闭SQL Server服务
5.6 本章小结
第6章 查询分析器使用方法
6.1 登录到服务器
6.2 查询分析器的菜单命令
6.3 配置查询分析器
6.4 对象浏览器的使用
6.5 模板的使用
6.6 本章小结
第7章 SQL Server数据库管理
7.1 文件和文件组
7.2 创建数据库
7.3 查看数据库的信息
7.4 管理数据库
7.5 删除SQL Server数据库
7.6 数据库的存储结构
7.7 本章小结
第8章 SQL Server的命名规则
8.1 SQL Server的标识符
8.2 对象命名规则
8.3 关于实例的命名习惯
8.4 本章小结
第9章 表的管理和使用
9.1 创建表
9.2 删除表格
9.3 修改表格定义
9.4 查看表属性
9.5 表格重命名
9.6 索引
9.7 本章小结
第10章 Transact-SQL查询基础
10.1 简单的SELECT查询
10.2 使用TOP关键字
10.3 使用DISTINCT关键字
10.4 使用计算列
10.5 操作查询的列名
10.6 使用WHERE子句
10.7 使用LIKE子句进行模糊查询
10.8 使用ORDER BY给数据排序
10.9 本章小结
第11章 编辑维护表格数据
11.1 使用INSERT添加表格数据
11.2 使用RPDATE实现数据的修改
11.3 使用DELETE删除表中数据
11.4 使用TRUNCATE TABLE清空表格
11.5 使用企业管理器管理表格数据
11.6 本章小结
第12章 视图
12.1 视图的优点
12.2 视图的创建与删除
12.3 修改视图的定义
12.4 浏览视图信息
12.5 使用视图来简化查询
12.6 在视图上使用INSERT语句
12.7 使用UPDATE更新视图中的数据
12.8 删除视图中的数据
12.9 WITH CHECK OPTION的视图
12.10 对视图进行加密
12.11 使用视图加强数据安全
12.12 本章小结
第13章 SQL Server的数据类型
13.1 3种新的数据类型
13.2 整数数据类型
13.3 货币数据类型
13.4 数字数据类型
13.5 浮点数据类型
13.6 日期/时间数据类型
13.7 字符数据类型
13.8 二进制数据类型
13.9 统一码数据类型
13.10 图像、文本数据的使用
13.11 sql_variant数据类型及使用
13.12 table数据类型及使用
13.13 用户自定义数据类型及使用
13.14 本章小结
第14章 Transact-SQL高级查询
14.1 多表查询和笛卡儿乘积
14.2 使用表格别名
14.3 使用UNION子句
14.4 使用统计函数
14.5 使用GROUP BY子句
14.6 使用COMPUTE和COMPUTE BY子句
14.7 使用嵌套查询
14.8 本章小结
第15章 设计数据完整性
15.1 数据完整性基础
15.2 使用约束实施数据完整性
15.3 使用规则
15.4 使用默认值
15.5 使用IDENTITY列
15.6 本章小结
第16章 SQL Server编程结构
16.1 程序注释语句
16.2 批处理
16.3 局部变量
16.4 全局变量
16.5 IF…ELSE条件判断结构
16.6 BEGIN…END语句块
16.7 WHILE循坏结构
16.8 CASE
16.9 RETURN
16.10 游标
16.11 事务
16.12 本章小结
第17章 SQL Server函数
17.1 SQL Server的数学函数
17.2 SQL Server的字符串函数
17.3 SQL Server的日期函数
17.4 SQL Server的系统函数
17.5 其他常用函数
17.6 设置查询属性
17.7 用户自定义函数
17.8 本章小结
第18章 存储过程与触发器
18.1 存储过程概述
18.2 存储过程的使用和管理
18.3 触发器概述
18.4 触发器使用与管理
18.5 触发器的特殊功能
18.6 利用存储过程和触发器维护数据完整性
18.7 本章小结
第19章 管理SQL Server的安全性
19.1 SQL Server的安全性机制
19.2 SQL Server标准登录模式
19.3 SQL Server集成登录模式
19.4 使用企业管理器建立登录账户
19.5 SQL Server数据库安全性
19.6 角色
19.7 权限
19.8 本章小结
第20章 备份与恢复
20.1 数据库备份概念
20.2 数据库备份策略与规划
20.3 执行数据备份与恢复
20.4 本章小结
第21章 SQL Server的数据传输服务
21.1 DTS概述
21.2 数据转换服务导入向导和数据转换服务导出向导
21.3 使用DTS设计器
21.4 本章小结
第22章 SQL Server自动化管理
22.1 SQL Server自动化管理基础
22.2 使用SQL邮件
22.3 创建操作员
22.4 设置警报
22.5 创建作业
22.6 本章小结
第23章 SQL Server分布式数据管理
23.1 复制技术概述
23.2 配置出版服务器
23.3 创建出版物
23.4 设计订阅
23.5 本章小结
第24章 通过Web助手发布数据
24.1 SQL Server与Web页的交互
24.2 使用SQL Server Web助手建立Web页
24.3 本章小结
第25章 SQL Server 2000应用编程
25.1 SQL Server 2000应用编程概述
25.2 ADO概述
25.3 SQL Server 2000与ADO编程举例
25.4 SQL-DMO概述
25.5 使用SQL-DMO对象
25.6 SQL-DMO应用举例
25.7 本章小结
你得采纳啊!
⑤ 怎样学习sql
先入门:找一本入门的书,多操作,(首先肯定自己要装个数据库)多练习,可以先看书上的例子!
等到熟练以后可以看一些深一点的书籍,记住要多练习
⑥ SQL进阶教程
网络网盘地址:https://pan..com/s/1cZIHvO43AJRhaXDxmCfaMg
解压码:rzy2
封面图片
⑦ SQL语法:一些最重要的 SQL 命令
SQL语法
数据库表
一个数据库通常包含一个或多个表。每个表由一个名字标识(例如:Websites),表包含带有数据的记录(行)。
在本教程中,我们在 MySQL 的 RUNOOB 数据库中中创建了 Websites 表,用于存储网站记录。
我们可以通过以下命令查看 Websites 表的数据:
mysqluseRUNOOB;;QueryOK,0rowsaffected(0.00sec)mysqlSELECT*FROMWebsites;+----+--------------+---------------------------+-------+---------+|id|name|url|alexa|country|+----+--------------+---------------------------+-------+---------+|1|Google|
解析
use RUNOOB;命令用于选择数据库。
set names utf8;命令用于设置使用的字符集。
SELECT * FROM Websites;读取数据表的信息。
上面的表包含五条记录(每一条对应一个网站信息)和5个列(id、name、url、alexa 和country)。
SQL 语句
您需要在数据库上执行简仔的大部分工作都由 SQL 语句完成。
下面的 SQL 语句从 Websites 表中选取所有记录:
实盯咐昌例
SELECT * FROM Websites;
在本教程中,我们将为您讲解各种不同的 SQL 语句。
请记住...
SQL 对大小写不敏感:SELECT 与 select 是相同的。
SQL 语句后面的分号?
某些数据库系统要求在每条 SQL 语句的末端使用分号。
分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。
在本教程中,我们将在每条 SQL 语句的末端使用分号。
一些最重要的 SQL 命令
SELECT- 从数据库中提取数据
UPDATE- 更新数据库中的数据
DELETE- 从数据库中删除数据
INSERT INTO- 向数据库中插入新数据
CREATE DATABASE- 创建新数据库
ALTER DATABASE- 修改数据库
CREATE TABLE- 创建新表
ALTER TABLE- 变更(改变)数据库表
DROP TABLE- 删除表
CREATE INDEX- 创建索引(搜索键)凯扒
DROP INDEX- 删除索引
⑧ sql入门新手教程是什么
在关系数据库实现过程中,第一步是建立关系模式,定义基本表的结构,即该关系模式是哪些属性组成的,每一属性的数据类型及数据可能的长度、是否允许为空值以及其它完整性约束条件。
定义基本表:
CREATE TABLE([列级完整性约束条件]
[,[列级完整性约束条件]]…
[,[列级完整性约束条件]]
[,表列级完整性约束条件]);
说明:
1、中是SQL语句必须定义的部分,[]中是SQL语句可选择的部分,可以省略的。
2、CREATE TABLE表示是SQL的关键字,指示本SQL语句的功能。
3、是所要定义的基本表的名称,一个表可以由一个或若干个属性(列)组成,但至少有一个属性,不允许一个属性都没有的表,这样不是空表的含义。
多个属性定义由圆括号指示其边界,通过逗号把各个属性定义分隔开,各个属性名称互不相同,可以采用任意顺序排列,一般按照实体或联系定义属性的顺序排列,关键字属性组在最前面,这样容易区分,也防止遗漏定义的属性。
4、每个属性由列名、数据类型、该列的多个完整性约束条件组成。其中列名一般为属性的英文名缩写,在Microsoft Access 2010中也可以采用中文,建议不要这样做,编程开发时不方便。
5、完整性约束条件,分为列级的完整性约束和表级的完整性约束,如果完整性约束条件涉及该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。
这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由RDBMS自动检查该操作是否违背这些完整性约束,如果违背则RDBMS拒绝本次操作;
这样保持了数据库状态的正确性和完整性,不需要用户提供检查,提高了编程的效率,降低了编程难度。列级的完整性通常为主关键字的定义、是否允许为空。表级的完整性约束条件一般为外码定义。
数据操纵
数据操纵语言是完成数据操作的命令,一般分为两种类型的数据操纵。
1、数据检索(常称为查询):寻找所需的具体数据。
2、数据修改:插入、删除和更新数据。
数据操纵语言一般由 INSERT(插入)、 DELETE(删除)、 UPDATE(更新)、 SELECT(检索,又称查询)等组成。由于 SELECT经常使用,所以一般将它称为查询(检索)语言并单独出现。