数据库SQL语句宝典.ppt
《数据库SQL语句宝典.ppt》由会员分享,可在线阅读,更多相关《数据库SQL语句宝典.ppt(51页珍藏版)》请在三一办公上搜索。
1、SQL 语句数据库设计,本章重点内容:1:使用SQL语句创建和删除数据库、表以及约束。2:学会使用SQL Server文档,回顾,第一学期T-SQL语句的数据操作语法 1.添加数据 语法:INSERT INTO 表名(列1,列2,)VALUES(值1,值2)例如:INSERT INTO Student(StuName,StuNo,BornDate)VALUES(张三,1000,1990-2-9)2.修改数据 语法:UPDATE 表名 SET 列1=值1,列2=值2,WHERE(条件)例如:UPDATE Student SET BornDate=1991-2-28 WHERE StudentNa
2、me=张三,回顾,第一学期T-SQL语句的数据操作语法 3.查询数据 语法:SELECT 列1,列2,FROM 表名 WHERE(条件)ORDER BY 列名 例如:SELECT StuName,StuNo FROM Student WHERE BornDate=1990-1-1 ORDER BY StuNo 4.删除数据 语法:DELETE FROM 表名 WHERE(条件)例如:DELETE FROM Student WHERE BornDate 1990-1-1,知识点一:使用SQL语句创建和删除数据库,回顾 数据库文件由以下三部分组成:1:主数据文件:.mdf。2:次要数据文件:.nd
3、f。3:日志文件:.ldf。每个数据库至少要包含两个文件:一个数据文件和一个日志文件。数据文件中包含了数据库的数据和对象,如表、视图和索引等,日志文件中包含有用于恢复数据库所需的信息。创建数据库时,次要数据文件可选。一个数据库可以有多个数据库文件和多个日志文件。,知识点一:使用SQL语句创建和删除数据库,创建数据库 语法:CREATE DATABASE 数据库名 ON PRIMARY(,n)LOG ON(,n),知识点一:使用SQL语句创建和删除数据库,示例-sysdatabases存储在Master数据库中-创建数据库 CREATE DATABASE MySchool ON(-主数据文件NA
4、ME=MySchool,FILENAME=D:appleMySchool.mdf,SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=10%)LOG ON(-日志文件NAME=MySchool_log,FILENAME=D:appleMySchool_log.ldf,SIZE=3MB,MAXSIZE=20MB,FILEGROWTH=10%),知识点一:使用SQL语句创建和删除数据库,删除数据库 如果SQL Server中已存在MySchool数据库,再次运行示例中的创建数据库的语句,就会发现系统提示错误:该数据库已存在,创建失败。SQL Server 将数据库的清单存放在mas
5、ter系统数据库的sysdatabases表中,只需要借组SELECT语句查看sysdatabases表中是否存在数据库MySchool的记录就可以了。,知识点一:使用SQL语句创建和删除数据库,删除数据库 所以,示例1完整的T-SQL语句即如下所示。USE master GO IF EXISTS(SELECT*FROM sysdatabases WHERE name=MySchool)DROP DATABASE MySchool CREATE DATABASE MySchool ON()LOG ON()GO EXISTS(查询语句)检测某个查询是否存在。如果查询语句返回的记录结果不为空,则表
6、示存在;否则表示不存在。,知识点二:使用SQL语句创建和删除表,创建表 语法:CREATE TABLE 表名(列1 数据类型 列的特征,列2 数据类型 列的特征,)其中,“列的特征”包括该列是否为空(NULL),是否是标识列(自动编号),是否有默认值以及是否为主键等。考虑各种开发语言的兼容性,表中各列名称推荐使用英文缩写。,知识点二:使用SQL语句创建和删除表,示例 CREATE TABLE stuMarks(marksId INT PRIMARY KEY IDENTITY(1,1)NOT NULL,mathScore INT NOT NULL,chineseScore INT NOT NUL
7、L,sId INT NOT NULL)同创建数据库一样,如果当前数据库中已存在stuMarks表,再次创建时系统将提示错误。我们需要预先检测当前数据库中是否存在该表,如果存在,则先删除,然后,再创建。删除表的语法如下:DROP TABLE 表名 例如:DROP TABLE stuMarks,知识点三:使用SQL语句创建和删除约束,添加约束 在创建表时,我们可以在列后添加各种约束,但一般不这样混合使用,推荐将添加约束和创建表的语句分开编写。添加约束的语法如下。语法:ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型 具体的约束说明,知识点三:使用SQL语句创建和删除约束
8、,示例-创建主键约束 ALTER TABLE student ADD CONSTRAINT PK_stuID PRIMARY KEY(stuID)-添加唯一约束。特点:不允许相同,但允许有一个空值 ALTER TABLE student ADD CONSTRAINT UQ_stuCardNo UNIQUE(stuCardNo)-添加默认约束 ALTER TABLE student ADD CONSTRAINT DF_stuAddress DEFAULT(北京海淀中关村)FOR stuAddress-添加检查约束 ALTER TABLE student ADD CONSTRAINT CK_stu
9、Sex CHECK(stuSex=男 OR stuSex=女)-添加主外键关系FOREIGN KEY(stuID)中的stuID是子表中的stuID-添加主外键的步骤:-1、确定谁是主表、子表-2、在子表当中添加一个字段,用来跟主表中的主键建立关系 ALTER TABLE stuMarks ADD CONSTRAINT FK_Id FOREIGN KEY(sId)REFERENCES student(stuID),知识点三:使用SQL语句创建和删除约束,删除约束 如果错误地添加了约束,则可以删除约束。删除约束的语法如下:语法:ALTER TABLE 表名 DROP CONSTRAINT 约束名
10、 例如,删除Student表中地址列默认约束的语句如下。ALTER TABLE Student DROP CONSTRAINT DF_stuAddress,知识点二:使用SQL Server 文档,如何查看SQL Server F1,第二章总结,1:数据库的物理实现一般步骤如下。(1)创建数据库。(2)创建表。(3)添加各种约束。(4)创建数据库的登录账户并授权。2:创建数据库或表时一般需要预先检测是否存在该对象,SQL Server中的哪些数据库可以从master系统数据库的sysdatabases表中查询,而一个数据库中的哪些表可以从该数据库的 系统表sysobjects中查询。3:使用C
11、REATE DATABASE语句可以创建数据库,使用DROP DATABASE语句可以删除数据库。4:使用CREATE TABLE语句可以创建数据库的表结构,使用DROP TABLE语句可以删除表结构。5:使用ALTER TABLE 语句可以创建以下约束。(1)主键约束(Primary Key Constraint)。(2)唯一约束(Unique Constraint)。(3)检查约束(Check Constraint)。(4)默认约束(Default Constraint)。(5)外键约束(Foreign Key Constraint)。,第三章目标,本章重点内容:1:T-SQL中变量的声明
12、与赋值2:PRINT、SELECT输出语句3:逻辑控制语句和批处理指令,知识点一:使用变量,T-SQL中的变量分为局部变量和全局变量。局部变量的使用也是先声明,再赋值。而全局变量由系统定义和维护,我们可以直接使用,但一般不自定义全局变量。一:局部变量 T-SQL中,局部变量的名称必须以标记作为前缀。语法如下:DECLARE 局部变量名称 数据类型 例如:DECLARE name VARCHAR(8)DECLARE number INT,知识点一:使用变量,T-SQL语言中,为局部变量赋值语句有SET语句和SELECT语句。其中:1:SET赋值语句一般用于赋给变量指定的数据常量 2:SELECT
13、赋值语句一般用于从表中查询数据,然后再赋给变量。SELECT语句需要确保筛选的记录不多于一条,如果查询的记录 多于一条,将把最后一条记录的值赋给变量。SET语句与SELECT的区别 1:SELECT支持同时对多个变量赋值,而SET语句不支持。2:表达式返回多个值时,SET将出错,而SELECT将返回的最后一个值赋给变量。3:表达式未返回值时,SET语句变量被赋NULL值,SELECT语句变量保持原值。,知识点一:使用变量,二:全局变量 SQL Server中的所有全局变量都使用两个标志作为前缀。常用的全局变量如下所示:1:ERROR 最后一个T-SQL错误的错误号 2:IDENTITY 最后一
14、次插入的标识值 3:LANGUAGE 当前使用的语言的名称 4:MAX_CONNECTIONS 可以创建的同时连接的最大数目 5:ROWCOUNT 受上一个SQL语句影响的行数 6:SERVERNAME 本地服务器的名称 7:SERVICENAME 该计算机上的SQL服务的名称 8:TIMETICKS 当前计算机上每刻度的微妙数 9:TRANSCOUNT 当前连接打开的事务数 10:VERSION SQL Server的版本信息,知识点二:输出语句,T-SQL中支持输出语句,用于输出显示处理的数据结果。常用的输出语句有两种,它们的语法分别如下:语法:1:PRINT 局部变量或字符串 2:SEL
15、ECT 局部变量 AS 自定义列名 与C#语言类似,T-SQL语言中,数据类型的转换也分为隐式转换和显式转换。在T-SQL语言中除了我们在第一学期中学习的CONVERT()函数能够实现数据类型显式转换功能之外,T-SQL还提供了CAST()函数。语法:CAST(表达式 AS 数据类型)CONVERT(数据类型(长度),长度,样式)CAST()函数用于将某种数据类型的表达式显式转换为另一种数据类型。CONVERT()函数的功能是将某种数据类型的表达式显式转换为另一种数据类型,第三个参数只限于对日期格式的转换。,知识点三:逻辑控制语句,在T-SQL语言中,常用的逻辑控制语句有以下几种。1:顺序机构
16、控制语句:BEGIN-END语句2:分支结构控制语句:IF-ELSE语句和CASE-END语句3:循环结构控制语句:WHILE语句一:BEGIN-END语句 语法:BEGIN 语句或语句块 END BEGIN-END语句的作用类似于C#语言的“”符号,它经常在分支结构语句和循环语句中出现,表示语句块的开始和结束。在一个语句块中可以包含另一个语句块,知识点三:逻辑控制语句,二:IF-ELSE条件语句 IF-ELSE语句属于分支结构,它与C#编程语言的IF语句类似,也是根据条件是否成立来确定程序的执行方向。语法:IF(条件)语句或语句块1 ELSE 语句或语句块2 当IF语句中的条件表达式为tru
17、e时,执行语句或语句块1的代码;否则执行语句或语句块2.同C#语言类似,ELSE为可选。,知识点三:逻辑控制语句,三:WHILE循环语句 WHILE循环语句可以根据某些条件重复执行一条SQL语句或一个语句块。通过使用WHILE关键字,可以确保只要指定的条件为true,就会重复执行语句,直至指定条件为false为止。语法:WHILE(条件)BEGIN 语句或语句快 BREAK|CONTINUE END,知识点三:逻辑控制语句,四:CASE多分支语句 CASE-END语句计算一组条件表达式,并返回其中一个符合条件的结果。语法:CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN
18、 结果2 ELSE 其他结果 END CASE语句表示如果“条件1”成立,则执行“结果1”,其余类推。如果WHEN的条件都不匹配,则执行ELSE后面的结果。ELSE可以省略。如果省略ELSE并且WHEN的条件表达式的结果都不为TRUE,则CASE-END语句返回NULL。,知识点三:批处理,GO指令GO就是批处理的标志。它是一条或多条SQL语句的集合,SQL Server 将批处理指令编译成一个可执行单元,此单元称为执行计划。批处理的主要好处是能够简化数据库的管理。,第三章总结,1:变量的使用是先声明,再赋值。局部变量前必须有“”作为前缀,全局变量必须有两个“”作为前缀。2:变量的赋值有两种方
19、式:SET语句和SELECT语句。3:输出结果也有两种方式:PRINT语句和SELECT语句。4:数据类型转换的两个函数:CAST()和CONVERT()。5:控制流语句提供了条件操作所需的顺序和逻辑。6:语句快使用BEGIN-END。7:批处理可以提高语句执行的效率,批处理结束的标志是“GO”。,第四章目标,本章重点内容:介绍子查询的概念,讨论简单子查询,研究 EXISTS 和 IF 子查询的用法。,知识点一:子查询,语法:SELECT FROM 表1 WHERE 列1(子查询)子查询语句必须放置在一对圆括号内。在列1后面除了“”运算符外,还可以使用其他运算符号。习惯上,外面的查询称为父查询
20、,圆括号中嵌入的查询称为子查询。SQL Server执行时,先执行子查询部分,求出子查询部分的值,然后再执行整个父查询,返回最后的结果。因为子查询作为WHERE条件的一部分,所以还可以和UPDATE、INSERT、DELETE一起使用。示例:SELECT StuNo,StuName,StuSex,BornDate,Address FROM Student WHERE BornDate(SELECT BornDate FROM Student WHERE StuName=张三),知识点一:IN和NOT IN子查询,1:IN 子查询 使用=、等比较运算符时,要求子查询只能返回一条或空的记录。在SQ
21、L Server中,当子查询跟随在=、!=、和=之后,不允许子查询返回多条记录。所以,只需将“=”改为“IN”就可以了。示例:SELECT StuName FROM Student WHERE StuNo IN(SELECT StuNo FROM Result WHERE SubjectNo=(SELECT SubjectNo FROM Subject WHERE SubjectName=Java)AND StuScore=60),知识点一:IN和NOT IN子查询,2:NOT IN 子查询 如何查询得到没有参加Java课程考试的在读学生名单?在上示例代码的IN关键字之前加上否定的NOT就能获
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 SQL 语句 宝典
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6578402.html