[科大讯飞] SQL数据库复习资料_第1页
[科大讯飞] SQL数据库复习资料_第2页
[科大讯飞] SQL数据库复习资料_第3页
[科大讯飞] SQL数据库复习资料_第4页
[科大讯飞] SQL数据库复习资料_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、Ø DATABASE语句创建数据库:CREATE DATABASE 数据库名称 删除数据库:DROP DATABASE 数据库名 称Ø TABLE语句创建表:CREATE TABLE 表名称 ( 列名称 1 数据类型 , 列名称 2 数据类型 , 列名称 3 数 据类型 , . 增加列:ALTER TABLE table_name ADD column_name datatype删除列:ALTER TABLE table_name DROP COLUMN column_name修改列:ALTER TABLE table_name ALTER COLUMN column_na

2、me datatype删除表:DROP TABLE 表名称删除表中数据:A 、 DELETE FROM表名称B 、 TRUNCATE TABLE 表名称Ø INSERT INTO语句INSERT INTO 表名称 V ALUES (值 1, 值 2,. 说明:默认所有列,所以 V ALUES 中值需 要对应列数和列顺序例:INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing'INSERT INTO table_name (列 1, 列

3、2,. VALUES (值 1, 值 2,.说明:列名和值一一对应 例:INSERT INTO Persons (LastName, Address VALUES ('Wilson', 'Champs-Elysees'Ø Update 语句UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值说明:修改多列时, 之间用逗号隔开, 另外通常加上 WHERE 子句, 否则修改表中所有行。 例 :UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing

4、' WHERE LastName = 'Wilson'Ø DELETE 语句DELETE FROM 表名称 WHERE 列名称 = 值 说明:通常加上 WHERE 子句,否则删除 所有的行。 例:DELETE FROM Person WHERE LastName = 'Wilson'Ø RDBMS 指的是关系型数据库管理系统。比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。Ø SELECT 语句:SELECT 列名称 FROM 表名称SELECT *

5、FROM 表名称Ø SELECT DISTINCT 语句:关键词 DISTINCT 用于返回唯一不同的值SELECT DISTINCT 列名称 FROM 表名称说明:列名称若有多个,多列数据必须全部一样,才认为是重复。Ø WHERE 子句SELECT 列名称 FROM 表名称 WHERE 列 运算符 值例:SELECT * FROM Persons WHERE City='Beijing' SQL使用单引号来环绕文本值(大部分数据库系统也接受双引号 。如果是数值,请不要使用引号。Ø AND和 OR 运算符例:SELECT * FROM Person

6、s WHERE FirstName='Thomas' AND LastName='Carter'例:SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'Ø ORDER BY语句升序:ASC (默认降序:DESC例:SELECT Company, OrderNumber FROM Orders ORDER BY Company例:SELECT Company, OrderNumber FROM Orders ORDER BY Company

7、DESC例 :SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC先按 Company 降序排列,遇到 Company 相同的列时,这些列再按 OrderNumber 升序排列, 若 Company 没有相同项时,则 OrderNumber 无意义。Ø TOP子句:用于规定要返回的记录的数目SELECT TOP number|percent column_name(s FROM table_name通常和 ORDER BY 一起使用Ø LIKE操作符例:SELECT *

8、FROM Persons WHERE City LIKE 'N%'例:SELECT * FROM Persons WHERE City LIKE '%lon%'Ø IN 操作符SELECT column_name(s FROM table_name WHERE column_name IN (value1,value2,. 例:SELECT * FROM Persons WHERE LastName IN ('Adams','Carter'例:SELECT * FROM Persons WHERE LastName IN

9、 (SELECT LastName FROM Users 说明:IN 后面的 SELECT 子句只能查询一列Ø BETWEEN 操作符例:SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'Ø INNER JOIN关键字SELECT column_name(s FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_nameØ LEFT JO

10、IN 关键字SELECT column_name(s FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_nameØ UNION 操作符:用于合并两个或多个 SELECT 语句的结果集。请注意, UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据 类型。同时,每条 SELECT 语句中的列的顺序必须相同。另外, UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。 SELECT column_name(

11、s FROM table_name1 UNION SELECT column_name(s FROM table_name2Ø SQL 系统函数 :A VG 、 COUNT 、 MAX 、 MIN 、 SUMØ GROUP BY 语句SELECT column_name, aggregate_function(column_name FROM table_name WHERE column_name operator value GROUP BY column_nameØ 变量定义及赋值DECLARE 变量名 数据类型 如 DECLARE name varchar

12、(10 注意:不可缺少 符号A 、 SET name = feipeng B 、 SELECT name = Name FROM Users WHERE UserId = A101Ø 存储过程A 、不带参数:CREATE PROC sp_InsertUserBEGIN-SQL语句SELECT * FROM UserEND执行存储过程:EXEC sp_InsertUserB 、带参数:CREATE PROC sp_InsertUseruserId varchar(50,userName varchar(10BEGIN-SQL语句INSERT INTO User VALUES(userI

13、d,userNameEND执行存储过程:EXEC sp_InsertUser A101,feipengEXEC sp_InsertUser userId=A101,userName=feipengEXEC sp_InsertUser userName=feipeng, userId=A101C 、带输出参数:CREATE PROC sp_InsertUseruserId varchar(50,userName varchar(10,userCount OUTPUTBEGIN-SQL语句INSERT INTO User VALUES(userId,userNameSELECT userCount

14、 = COUNT(* FROM UserEND执行存储过程:DECLARE uc INTEXEC sp_InsertUser A101,feipeng,uc OUTPUTEXEC sp_InsertUseruserId=A101,userName=feipeng,userCount=uc OUTPUTEXEC sp_InsertUser userName=feipeng, userId=A101,userCount=uc OUTPUT优点:A 、模块化设计 像其他程序语言的函数一样,单独出来,可以调用它 n 次,并 且可以独立于源代码,单独修改储存过程。B 、更快执行 如果执行大量 SQL 代

15、码或重复执行,储存过程比 SQL 批代码执行 要快。C 、减少网络流量 一条 SQL 语句就可以执行上千条 SQL 代码。Ø 事务BEGIN TRANDECLARE SumError INTSET SumError = 0INSERT INTO User VALUES('A1001','feipeng'SET SumError = SumError + ERRORDELETE FROM Class WHERE ClassId = 'B110'SET SumError = SumError + ERRORIF SumError <&

16、gt; 0BEGINROLLBACK TRANENDELSEBEGINCOMMIT TRANENDØ触发器CREATE TRIGGER 触发器名称ON 表名称AFTER INSERT,DELETE,UPDATEASBEGIN- Insert statements for trigger hereEND两张逻辑表:inserted 、 deleted删除操作:deleted插入操作:inserted更新操作:deleted 、 insertedØ游标示例代码declare cur_Employees SCROLLcursor forselect EmployeeID,Birt

17、hDatefrom HumanResources.Employee where EmployeeID <6FOR READ ONLYopen cur_Employeesdeclare EmployeeID intdeclare BirthDate datetimefetch NEXT from cur_Employees into EmployeeID,BirthDatewhile fetch_status = 0beginprint convert(char(3,EmployeeID+' | '+convert(varchar,BirthDate fetch next

18、from cur_Employees into EmployeeID,BirthDateendclose cur_Employeesdeallocate cur_EmployeesØ 创建临时表CREATE TABLE #表名称 ( 列名称 1 数据类型 , 列名称 2 数据类型 , 列名称 3 数据类 型 , . 注意:表名称前加 # Ø 执行自定义的 SQL 语句 DECLARE sql VARCHAR(1000 SET sql = 'SELECT * FROM Class' SET sql = 'SELECT * FROM User WHERE Name like ''%' + name + '%''' EXEC (sql Ø 索引 微软的 SQL SERVER 提供了两种索引:聚集索引、非聚集索引。 注意:每个表只能有一个聚集索引 索引是对数据库表中一列或多列的值进行排序的一种结构, 使用索引可快速访问数据库表中 的特定信息。 大多数情况下,聚集索引的速度比非聚集索引要略快一些。因为聚集索引的 B 树叶子节点 直接存储数据,而非聚集索引还需要额外通过叶子节点的指针找到数据。 我最喜欢的一句话是”everything has

温馨提示

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

评论

0/150

提交评论