第六章基本的SQL
SQL Server数据库应用开发技术 第六章

6.2 使用约束
6.2.1 空约束(NULL)、非空约束(NOT NULL)
1. 用SQL Server Management Studio实现 【例6.1】设置学生表中字段学号、姓名、性别、入学 时间不允许为空。 1)打开SQL Server Management Studio,在对象资源管理 器中展开教务管理系统,展开“表”结点。 2)选择“学生表”,单击右键,选择“修改”进入表设计 器进行表结构设计,如图6.1所示,分别将学号、姓名 、性别、入学时间字段后的允许空复选框去掉对勾。 3)修改完毕后单击工具栏上的“保存”图标或选择菜单“ 文件”下的“保存”项,关闭窗口即可。
第6章 数据完整性实施
6.1 数据完整性实施方法 6.2 使用约束
6.3 使用默认
6.4 使用规则
6.5 使用标识列
小结
6.1 数据完整性实施方法
有两种方式可以实现数据完整性,即声明数据完 整性和过程数据完整性。 1.声明数据完整性 使用声明数据完整性就是通过在对象定义中来实 现,即定义数据必须满足的条件作为对象定义的一部 分。它包括使用各种约束、默认和规则。 实现数据完整性的首选方法是使用声明完整性。 2.过程完整性 过程数据完整性是通过在脚本语言中定义来实现 的。当执行这些脚本时,就可以强制完整性的实现。 过程数据完整性的方式包括使用触发器和存储过程。 也可以在客户机或服务器上使用其他的编程语言和工 具实现。
【例6.7】创建学生表,对字段身份证号设置唯一约束。
返回目录
6.2 使用约束
6.2.3 唯一约束(UNIQUE)
由于一个表只能定义一个主键,而实际应用中表中 不止一列希望值是唯一的,例如身份证号一般不会做主 键,但它的值也应确保是唯一的,这时就可使用唯一约 束来确保唯一性了。与主键不同的是一个表可以定义多 个 UNIQUE 约束,且定义 UNIQUE 约束列允许空值。不 过由于唯一性,空值也只能出现一次。
基本SQL语句

基本S Q L语句-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN习题习题是基于如下的三张表Student表结构Course表结构Sc表结构Student 是学生信息表,保存的是学生的基本信息。
Course是课程信息表保存的是课程的信息。
Sc保存的是学生选课的信息。
1.创建上述的三张表2.向表中添加如下数据表2.23 Student表中数据表2.24 Course表数据表2.25 Sc表数据3.删除表Student4.为Sc表添加“选课类别”,此列的定义为XKLB CHAR(4).5.将新添加的XKLB的类型改为char(6)6.删除Course表的period7.查询全体学生的学号与姓名8.查询计算机系全体学生的姓名9.查询所有年龄在20岁以下的学生的姓名及年龄。
10.查询年龄在20~23岁之间的学生的姓名、所在系和年龄11.查询信息系、数学系和计算机系学生的姓名和性别。
12.查询姓‘张’的学生的详细信息。
13.查询学生表中姓‘张’、姓‘李’和姓‘刘’的学生的情况。
Select *from Student Where sname like ‘张%’or sname like ‘李%’or sname like ‘刘%’这里得用OR 不是 AND14.查询名字中第2个字为‘小’或‘大’字的学生的姓名和学号。
Select *from StudentWhere sname like ‘_小%’ orsname like ‘_大%’15.查询所有有考试成绩的学生的学号和课程号。
16.查询计算机系年龄在20岁以下的学生姓名。
17.查询选修了‘c02’号课程的学生的学号及其成绩,查询结果按成绩降序排列。
18.查询全体学生的信息,查询结果按所在系的系名升序排列,同一系的学生按年龄降序排列。
19.统计选修了课程的学生的人数。
Select count(distinct sno) from Sc20.计算9512101号学生的考试总成绩之和。
sql 基础语法

sql 基础语法
摘要:
1.SQL 简介
2.SQL 的基本语法
2.1 数据定义
2.2 数据操作
2.3 数据查询
2.4 数据控制
正文:
【1.SQL 简介】
SQL(Structured Query Language,结构化查询语言)是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL 是高级的非过程化编程语言,可以使程序员忽略系统的具体实现细节,只需指定数据的存储位置和存储方式,而不需要指定具体的存储方式和存取路径。
【2.SQL 的基本语法】
SQL 的基本语法包括数据定义、数据操作、数据查询和数据控制。
【2.1 数据定义】
数据定义主要是对数据库中的表进行定义,包括表名、列名、数据类型、主键和外键等。
数据定义的常用SQL 语句有CREATE TABLE、ALTER TABLE 和DROP TABLE 等。
【2.2 数据操作】
数据操作主要是对数据库中的数据进行添加、修改和删除等操作。
数据操作的常用SQL 语句有INSERT、UPDATE 和DELETE 等。
【2.3 数据查询】
数据查询是SQL 语言中最重要的功能之一,可以查询数据库中的数据,包括SELECT 语句和子查询等。
SELECT 语句是最基本的数据查询语句,可以查询表中的所有数据或者某一列的数据,也可以使用WHERE 子句进行条件查询。
【2.4 数据控制】
数据控制主要是对数据库中的数据进行控制,包括数据的访问权限、数据的备份和恢复等。
数据控制的常用SQL 语句有GRANT、REVOKE 和BACKUP 等。
数据库原理及应用SQL-Server 第6章-SELECT数据查询

6/69
简单查询(2)
❖ 查询全部列
将表中的所有属性列都选出来,可以有两种方法。一种方法就是在 SELECT关键字后面列出所有列名;另一种方法是如果列的显示顺序与 其在基表中的顺序相同,也可以简单地将<目标列表达式>指定为“*”。
例 查询全体学生的详细记录。 USE JXGL GO SELECT * FROM S GO
2021/9/19
10/69
带有WHERE子句的查询 (2)
确定范围
语句BETWEEN…AND…和NOT BETWEEN…AND…可以用来查找 属性值在(或不在)指定范围内的元组,其中BETWEEN后是范围的下 限(即低值),AND后是范围的上限(即高值)。
例 查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、 系别和年龄。
基本语句SELECT—FROM—WHERE的含义是:根据WHERE子句 的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的 元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形 成结果表。
2021/9/19
5/69
简单查询(1)
❖ 查询指定列
在很多情况下,用户只对表中的一部分属性列感兴趣,这时可以通 过在SELECT子句的<目标列表达式>中指定要查询的属性列。
USE JXGL GO SELECT SNAME,SEX FROM S WHERE SDEPT IN('CS','MA','IS') GO
2021/9/19
12/69
带有WHERE子句的查询 (4)
字符匹配
运算符LIKE可以用来进行字符串的匹配。其一般语法格式如下: [NOT] LIKE ’<匹配串>’[ESCAPE ’<换码字符>’]
第六章SQL——结构化查询语言

2. SELECT查询语句完整格式是: SELECT [ALL|DISTINCT]<字段列表> [INTO 新表名] FROM <表名列表> [WHERE <查询条件>] [GROUP BY <字段名>[HAVING <条件表达式>]] [ORDER BY <字段名>[ASC|DESC]]
2013-7-30 14:02 21
(2)区间控制运算符——BETWEEN...AND 判断所指定的值是否在给定的区间,返回逻辑值。格式为: 表达式 [NOT] BETWEEN 表达式1 AND 表达式2 “表达式1”是区间的下限,“表达式2”是区间的上限。 若省略NOT,则表示表达式的值在指定的区间内即返回逻辑真。 若选择NOT,则表示表达式的值不在指定的区间内即返回逻辑真。 【例题6.10】查询出1990年1月1日至1991年12月31日出生的学 生的学号、姓名、出生日期。 能用别的方 SELECT student_id, student_name, born_date 法实现吗? FROM student WHERE born_date BETWEEN '1990-1-1' AND '1991-12-31'
IS [NOT] NULL
LIKE [NOT ] IN EXISTS
2013-7-30
检测字段值为空或不为空
字符匹配操作符 检查一个字段值属于或不属于一个集合 检查某一字段是否存在值
表6-3
特殊运算符
14:02
19
(1)字符匹配操作符——LIKE LIKE关键字的作用是用于指出一个字符串是否与指定的字 符串相匹配,其运算对象可以是char、text、datetime等数据 类型,返回逻辑值。LIKE表达式的格式为: 字符表达式1 [NOT] LIKE 字符表达式2
SQL语言C

2 系统权限与角色的授予与收回 •.1 系统权限与角色的授予 •SQL语言使用GRANT语句为用户授予系统权限,其语法格式为: GRANT <系统权限>|<角色> [,<系统权限>|<角色>]… TO <用户名>|<角色>|PUBLIC[,<用户名>|<角色>]… [WITH ADMIN OPTION] •其语义为:将指定的系统权限授予指定的用户或角色。 •其中: –PULBIC代表数据库中的全部用户。 –WITH ADMIN OPTION 为可选项,指定后则允许被授权的用户 将指定的系统特权或角色再授予其他用户或角色。 例: 为用户ZHANGSAN授予CREATE TABLE的系统权限。 GRANT CREATE TABLE TO ZHANGSAN
• 权限机制的基本思想是给用户授予不同类型的权限,在 必要时,可以收回授权。 • 使用户能够进行的数据库操作以及所操作的数据限定在 指定的范围内,禁止用户超越权限对数据库进行非法的 操作,从而保证数据库的安全性。
在SQL SERVER中,权限可分为系统权限和对象权限。 • 系统权限由数据库管理员授予其他用户,是指数据库用 户能够对数据库系统进行某种特定的操作的权力。 –如创建一个基本表(CREATE TABLE) • 对象权限由创建基本表、视图等数据库对象的用户授予 其他用户,是指数据库用户在指定的数据库对象上进行 某种特定的操作的权力。 –如查询(SELECT)、插入(INSERT)、修改(UPDATE) 和删除(DELETE)等操作。
visual foxpro第六章sql知识点

••ຫໍສະໝຸດ 第六章 关系数据库标准语言 sql
• 1.sql的语言动词:数据查询select 数据定义create drop alter 数据操纵insert update delete 数 据控制grant revoke 2.简单查询:select all、distinct 选项 as 显示列名from 数据库名 where条件1and、or条件2 【all输出所有记录,包括重复记录,distinct可去掉重复记录。 *可表示全部字段。】 3.几个特殊运算符 a.确定范围运算符(not)between下界表达式and上界表达式.。b.字符 匹配运算符:字段名 like 字符表达式(字符类型必须是字符型).通配符:%表示任意长度的字符 串.-表示任意一个字符.注意:在vfp中,一个汉字用一个字符-表示.c.空值运算符is null is not null 4.连接查询:select查询列from表一join表2on连接条件and查询条件. 5.嵌套连接:selectfrom-where(select-from-where) 6.排序:order by asc(升序)desc(降序)默认值为升序, 位于其他字句之后. 7.合并查询:union. Select命令1.【union【all】select命令2】 8.计算与分 组查询:avg按列计算平均值 sum按列计算值总和 count(*)按列统计个数 min求一列最 小值 max求一列最大值 9.round(m,n) N为保留小数个数 10.分组group by having count (*) 11.查询结果处理 a.放到永 久表into dbf表名 table表名 b. 放到临时文件:into cursor文件名 c.放到文本文件:to file d.放到数组:into array 12.数据定义功能a.建立表结构creata table b.create database建 立数据库 b.修改表结构:alter table +add字段+alter字段+drop字段+rename修改字段名 c. 增加字段时定义数据完整性alter table表名 add字段 check 逻辑表达式 d.修改字段时定义数据完 整性 alter table表名 alter字段set check逻辑表达式 11.删除表:drop table表名 13.数据操纵 功能 a.插入记录insert into 表名 values表达式 b.修改记录update 表名 set字段名 where逻 辑表达式 c.删除记录:delete from表名 where条件(没有从物理删除)
初学者必读的SQL数据库基础教程

初学者必读的SQL数据库基础教程SQL数据库是一种常用的数据库管理系统,广泛应用于各种软件开发和数据管理领域。
对于初学者来说,掌握SQL数据库的基础知识是非常重要的。
本文将从数据定义语言、数据操作语言、数据查询语言和数据控制语言等方面,为初学者提供一份必读的SQL数据库基础教程。
第一章数据定义语言(DDL)数据定义语言(DDL)是SQL数据库中用来定义数据库结构的语言。
它包括创建、修改和删除数据库、表、列以及其他对象的操作。
在SQL中,创建数据库使用CREATE DATABASE语句,创建表使用CREATE TABLE语句,修改表结构使用ALTER TABLE语句,删除表使用DROP TABLE语句等。
初学者在学习时应该了解这些常用的DDL语句,并能够正确地使用它们。
第二章数据操作语言(DML)数据操作语言(DML)是SQL数据库中用来对数据库中的数据进行操作的语言。
它包括插入、更新和删除数据的操作。
在SQL中,插入数据使用INSERT INTO语句,更新数据使用UPDATE语句,删除数据使用DELETE FROM语句等。
初学者需要熟悉这些基本的DML语句,并能够通过它们来操作数据库中的数据。
第三章数据查询语言(DQL)数据查询语言(DQL)是SQL数据库中用来查询数据库中的数据的语言。
它包括SELECT语句和一些用于过滤、排序和聚合数据的函数。
初学者需要掌握SELECT语句的基本用法,了解如何使用WHERE子句进行条件过滤,如何使用ORDER BY子句进行排序,以及如何使用GROUP BY子句进行数据聚合。
第四章数据控制语言(DCL)数据控制语言(DCL)是SQL数据库中用来控制数据库访问权限和事务处理的语言。
它包括GRANT和REVOKE语句用于授权和撤销权限,以及BEGIN TRANSACTION、COMMIT和ROLLBACK语句用于管理事务。
初学者需要了解如何使用DCL语句来管理数据库的安全性和事务一致性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
資料定義語言(DDL) 資料處理語言(DML) 資料控制語言(DCL)
黃三益2007
6-3
資料庫的核心理論與實務第三版
SQL的資料定義語言 (CREATE TABLE )
CREATE TABLE Member
CREATE TABLE讓使 用者定義一個資料表, 包括
黃三益2007
6-8
資料庫的核心理論與實務第三版
SQL的資料定義語言 (CREATE TABLE )(Cont.)
設定處理方式如下:
ON DELETE RESTRICT (為預設處理方式)
一筆記錄只有沒被參考時才可被刪除
ON DELETE SET NULL
一筆記錄被刪除時,所有參考它的外部鍵值全部變成空值
level、和full level ) SQL99/SQL3 (物件導向與資料倉儲 )
本章介紹SQL99的基本語法,有些DBMS所支援的SQL語法與本章所介 紹的有一些差異,但基本觀念雷同
黃三益2007
6-2
資料庫的核心理論與實務第三版
SQL的關聯模式
為了好用性和執行效率,SQL的資料模式與關聯模式有以 下差別:
一筆記錄的主鍵值被修改時,所有參考它的外部鍵值全部跟著修改
黃三益2007
6-9
第六章 基本的SQL
目的
SQL的關聯模式 SQL的資料定義語言
CREATE TABLE DROP TABLE ALTER TABLE
基本的SQL查詢
SELECT…FROM…WHERE SQL的更新
INSERT UPDATE DELETE
黃三益2007
CHECK (SALES_TYPE > 100) ;
作用在單一欄位的完整限制:定義該欄位時 一併設定
NOT NULL:不得為空值。 DEFAULT:設定預設值
黃三益2007
6-7
資料庫的核心理論與實務第三版
SQL的資料定義語言 (CREATE TABLE )
作用在數個欄位的完整限制:
6-1
資料庫的核心理論與實務第三版
目的
關聯模式定義嚴謹簡潔,但好用性和執行效率必須 被考量
IBM SYSTEM R (DB2)根據關聯模式、關聯代數、 關聯邏輯計算法提出 SEQUEL語言
ANSI和ISO共同制訂資料庫電腦語言的標準, 依 SEQUEL為藍本,命名為SQL
SQL/86 SQL/89 (完整限制語法) SQL/92或SQL2 (包括四層:entry level、transitional level、intermediate
SQL所提供的定義域型態
INT DECIMAL(i, j)
DECIMAL(3, 1) DECIMAL(2) DECIMAL CHAR(n) VARCHAR(n) BIT(n) VARBIT(n)
黃三益2007
6-5
資料定義語言 (CREATE TABLE )(Cont.)
DATE
標準的日期欄位是yyyy-mm-dd TIME
標準的時間欄位是hh:mm:ss TIME(2) (13:25:50:30 ) TIME WITH TIME ZONE (13:20:50+08:00) TIMESTAMP(或稱DATETIME)
2003-07-10 13:27:50
資料表名稱
(mId CHAR(8) NOT NULL,
pId CHAR(10) NOT NULL,
name VARCHAR(8) NOT NULL,
birthday DATE,
phone
VARCHAR(10),
欄位 完整限制
address VARCHAR(40), email VARCHAR(20), introducer CHAR(8),
BLOB:表示是儲存大型的二元型態物件 CLOB:表示是儲存大型的文字型態物件
黃三益2007
6-6
資料庫的核心理論與實務第三版
SQL的資料定義語言 (CREATE TABLE )
自訂定義域 ( CREATE DOMAIN)
CREATE DOMAIN PID_TYPE CHAR(10); CREAE DOMAIN SALES_TYPE INT
SQL 利用較通俗的名詞來稱呼關聯模式所定義的嚴謹數學名詞
不稱關聯(Relation),改稱資料表(Table) 不稱序列值(Tuple),改稱記錄(Record)或列(Row) 不稱屬性(Attribute),改稱欄位(Field)或行(Column)
SQL的資料表可以不需定義主鍵 SQL的資料表中可以有兩筆記錄是一模一樣的 資料表中的記錄是有次序的
PRIMARY KEY:用來設定一資料表的主鍵 UNIQUE:該欄位值為唯一,通常是用來設定次要鍵 FOREIGN KEY:用來設定外部鍵
一筆記錄被刪除或其主鍵值被修改時,其相對應的外部鍵值會 受影響。FOREIGN KY裡的語法可以設定這些外部鍵值的處理 方式
E.g. FOREIGN KEY pNo REFERENCES Product(pNo) FOREIGN KEY pNo REFERENCES Product
ON DELETE SET DEFULT
一筆記錄被刪除時,所有參考它的外部鍵值全部變成預設值
ON DELETE CASCADE
一筆記錄被刪除時,所有參考它的記錄全部跟著被刪除
ON UPDATE RESTRICT (為預設處理方式)
一筆記錄的主鍵值只有沒被參考時才可被修改
ON UPDATE CASCADE
PRIMARY KEY (mId),
UNIQUE (pId),
FOREIGN KEY(introducer) REFERENCES Member(mId)
ON DELETE SET NULL ON UPDATE CASCADE);
黃三益2007
6-4
資料庫的核心理論與實務第三版
SQL的資料定義語言 (CREATE TABLE )