SQL-sql2000.ppt_第1页
SQL-sql2000.ppt_第2页
SQL-sql2000.ppt_第3页
SQL-sql2000.ppt_第4页
SQL-sql2000.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL语言,CREATE DATABASE 创建一个新的数据库 例子: CREATE DATABASE Forum;,SQL语言,CREATE TABLE 在当前数据库中创建一个表 例子: CREATE TABLE Users( UserId int IDENTITY(1,1) NOT NULL, UserName varchar(10), UserPassword varchar(20), UserAge tinyint default 0 );,SQL语言,SQL语言,SQL语言,DROP TABLE 在当前数据库中删除一个存在的表 例子: DROP TABLE Temp;,SQL语言,C

2、REATE INDEX 在指定的表上构造一个索引。索引主要用来提高数据库性能。但是如果不恰当的使用将导致性能的下降。另外一个可能的用途是用 来 强制一个表的某个子集的唯一性。,SQL语言,例子: CREATE UNIQUE INDEX userid_idx ON Users (UserId); CREATE INDEX name_idx ON Users (UserName);,SQL语言,DROP INDEX 从数据库中删除一个现存的索引。 例子: DROP INDEX name_idx;,SQL语言,INSERT INTO INSERT INTO向表中插入新行。 我们可以一次插入用值表达式

3、声明的一行或者一个查询结果的多个行。,SQL语言,INSERT INTO Users VALUES (张三, abcd, 20); INSERT INTO Users (UserName, UserPassword) VALUES (李四, 123456); INSERT INTO Users SELECT * FROM tmp_users;,SQL语言,UPDATE UPDATE 改变满足条件的所有行的声明了的列(字段)的值。 只有要更改的列(字段)需要在 SET 子句中出现,没有明确修改的字段保持它们原来的数值。,SQL语言,UPDATE Users SET UserPassword =

4、aaaaaa WHERE UserName = 张三; UPDATE Users SET UserAge = UserAge + 1 WHERE UserName = 张三;,SQL语言,DELETE DELETE 从指明的表里删除满足 WHERE 子句的行。 如果 WHERE 子句不存在, 效果是删除表中所有行,结果是一个有效的空表。,SQL语言,DELETE Users WHERE UserName = 张三; DELETE Users;,SQL语言,SELECT SELECT 从零个或更多表中返回满足条件的记录行。SELECT是SQL中使用的最多,功能最强,使用最复杂的语句。下面我们将逐

5、步学习。,SQL语言,现在有以下表: employee(雇员) Jobs(职务),SQL语言,SELECT后面列出需要返回的字段名称,如果需要全部返回的话则使用 * 表示。在字段之前加上DISTINCT表示返回的记录行必须是唯一的。 FROM子句表示从哪个表中获取原始数据。INTO表示将返回的结果创建一个新表。 SELECT * FROM employee; SELECT * INTO newtable FROM employee; SELECT emp_id, fname, lname FROM employee; SELECT DISTINCT job_id FROM employee;,

6、SQL语言,如果在FROM子句中列出了多个源表,那么结果就是所有源表的笛卡儿积(交叉连接)。 但是通常我们会添加一些条件,把返回行限制成笛卡儿积的一个小的结果集。表名可以通过AS重新命名以方便访问。 SELECT * FROM employee AS e, jobs AS j SELECT * FROM employee AS e, jobs AS j WHERE e.job_id = j.job_id,SQL语言,WHERE子句后面加上条件把所有不满足条件的记录排除。条件之间可以使用AND表示条件都要满足或者是OR表示条件之中只要其中一个满足。 SELECT * FROM employee

7、WHERE emp_id = PMA42628M; SELECT * FROM employee WHERE emp_id IN (PMA42628M, PSA89086M); SELECT * FROM employee WHERE job_lvl 200 AND hire_date 1990-1-1,SQL语言,当需要模糊查找的时候可以使用LIKE。LIKE运算字串中的以下字符有特殊含义: _(下划线)表示可以和任意的单个字符匹配 %表示可以和任意长的字符匹配 其他的字符则代表自己。 SELECT * FROM employee WHERE fname LIKE P%; SELECT *

8、FROM employee WHERE fname LIKE Fr_n%;,SQL语言,ORDER BY子句对目标表指定的字段顺序进行排序,并可以附加说明是升序还是降序。 SELECT * FROM employee ORDER BY job_lvl DESC, fname ASC,SQL语言,GROUP BY 子句是将表的行重新排列成一些组,每组中某些列的值相等。HAVING子句指出要提取的组的条件。 SELECT job_lvl, count(job_lvl) FROM employee GROUP BY job_lvl HAVING count(job_lvl) 1,SQL语言,JOIN

9、子句。 INNER JOIN子句提供了一种等效FROM子句中列出了多个源表的表达方式。 SELECT * FROM employee AS e INNER JOIN jobs AS j ON e.job_id = j.job_id SELECT * FROM employee AS e, jobs AS j WHERE e.job_id = j.job_id,SQL语言,练习3 把学生选课的表结构在数据库中创建出来并输入一些测试数据,然后完成以下SQL语句。 1、检索出选修课程名为数学的学生姓名和学号。 2、检索出所有不学数学课程的学生姓名。 3、检索出每个年龄有多少人?结果按人数升序排列,人

10、数相同按年龄降序排列。 4、把所有学数学课学生的成绩提高10%。,SQL语言,SQL中的常用函数 集合函数 转换函数 字符串函数 日期函数,SQL语言,集合函数COUNT() 函数COUNT()也许是最有用的集合函数。可以用这个函数来统计一个表中有多少条记录。,SQL语言,SELECT COUNT(au_lname) FROM authors; SELECT COUNT(*) FROM authors; SELECT COUNT(au_lname) FROM authors WHERE au_lname=Ringer; SELECT COUNT(DISTINCT au_lname) FROM

11、authors;,SQL语言,集合函数AVG() AVG()函数返回一个字段中所有值的平均值。他只能对数值型字段使用。这个函数在计算时忽略空值。 SELECT AVG(price) FROM titles;,SQL语言,集合函数SUM() SUM()函数返回一个字段中所有值的和。他只能对数值型字段使用。这个函数在计算时忽略空值。 SELECT SUM(price) FROM titles;,SQL语言,集合函数MAX() MAX()函数返回一个字段中所有值的最大值。他只能对数值型字段使用。这个函数在计算时忽略空值。 SELECT MAX(price) FROM titles;,SQL语言,集合

12、函数MIN() MIN()函数返回一个字段中所有值的最小值。他只能对数值型字段使用。这个函数在计算时忽略空值。 SELECT MIN(price) FROM titles;,SQL语言,转换函数CONVERT() CONVERT()函数可以将字符型数据和其他类型的数据进行转换。CONVERT()带有两个参数。第一个参数指定了数据的类型和长度,第二个参数指定了要进行转换的字段名。,SQL语言,SELECT title, CONVERT(CHAR(8),price) + 元 FROM titles; SELECT CONVERT(int, 12345);,SQL语言,字符串函数DIFFERENCE

13、() DIFFERENCE()函数按照发音比较两个字符串。当不知道一个名字的确切拼写,但多少知道一点他的发音的时候,使用这个函数将有助于你取出该记录。函数返回一个0-4之间的数字。如果函数返回4,表示发音非常接近;如果返回0,说明这两个字符串的发音相差很大。,SQL语言,SELECT * FROM authors WHERE DIFFERENCE(au_lname, smith) 3;,SQL语言,日期函数GETDATE() GETDATE()函数可以获取当前的日期和时间。并且该函数可以作为字段的默认值。在插入记录的时候保存当前的时间。 CREATE TABLE log( username V

14、ARCHAR(40), entrydate DATETIME DEFAULT GETDATE() ); SELECT GETDATE();,SQL语言,日期函数DATEPART() DATEPART()可以把日期中需要的部分单独提取出来。函数有两个参数,第一个参数指定要提取日期的哪一部分;第二个参数是实际的日期数据。,SQL语言,SELECT DATEPART(mm, GETDATE(); SELECT DATEPART(hh, GETDATE();,SQL语言,SQL语言,日期函数DATEDIFF() DATEDIFF()可以比较日期的早晚。函数有3个参数。第一个参数指定日期的某部分;第二个参数指定老的日期;第三个参数指定新的日期。 SELECT DATEDIFF(mm, hire_date, GETDATE() F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论