SQL语言-数据定义

合集下载

sql 基础语法

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 等。

第6讲SQL语言基础及数据定义功能

第6讲SQL语言基础及数据定义功能

3、简洁易用
SQL功能极强,完成核心功能只需9个动词。
表 3.1 SQL 语言的动词 SQL 功 能 数 据 查 询 数 据 定 义 数 据 操 纵 数 据 控 制 动 词 SELECT CREATE, DROP, ALTER INSERT,UPDATE DELETE GRANT,REVOKE
4、面向集合的操作方式
PRIMARY KEY ( Sno, Cno ),
FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ), FOREIGN KEY ( Cno ) REFERENCES Course ( Cno ) )
二、删除表
删除表的语句格式为: DROP TABLE <表名> 例:删除test表的语句为: DROP TABLE test { [, <表名> ] „ }
课程号 Cno 1 2 3 4 5 6 7
课程名 Cname 数据库 数学 信息系统 操作系统 数据结构 数据处理 PASCAL语言
先行课 Cpno 5 1 6 7 6
学分 Ccredit 4 2 4 3 4 2 4
4、SC表数据
学号 Sno 200215121 200215121 200215121 200215122 200215122
第6讲 SQL语言基础及数据定义功能

本讲内容
1 2 3 4
SQL概述
学生课程数据库简介
SQL语言功能概述
数据定义
6.1 SQL概述
SQL(Structured Query Language)
结构化查询语言,是关系数据库的标准语言 SQL是一个通用的、功能极强的关系数据库语言 现在所有的关系数据库管理系统都支持SQL,就连 个人计算机上使用的数据库也不例外。

数据库第4章 SQL语言基础及数据定义功能

数据库第4章 SQL语言基础及数据定义功能

第4章SQL语言基础及数据定义功能用户使用数据库时需要对数据库进行各种各样的操作,如查询数据,添加、删除和修改数据,定义、修改数据模式等。

DBMS必须为用户提供相应的命令或语言,这就构成了用户和数据库的接口。

接口的好坏会直接影响用户对数据库的接受程度。

数据库所提供的语言一般局限于对数据库的操作,它不是完备的程序设计语言,也不能独立地用来编写应用程序。

SQL(Structured Query Language,结构化查询语言)是用户操作关系数据库的通用语言。

虽然叫结构化查询语言,而且查询操作确实是数据库中的主要操作,但并不是说SQL只支持查询操作,它实际上包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。

SQL已经成为关系数据库的标准语言,所以现在所有的关系数据库管理系统都支持SQL。

本章将主要介绍SQL语言支持的数据类型以及定义基本表和索引的功能。

4.1 SQL语言概述SQL语言是操作关系数据库的标准语言,本节介绍SQL语言的发展过程、特点以及主要功能。

4.1.1 SQL语言的发展最早的SQL原型是IBM的研究人员在20世纪70年代开发的,该原型被命名为SEQUEL (Structured English QUEry Language)。

现在许多人仍将在这个原型之后推出的SQL语言发音为“sequel”,但根据ANSI SQL委员会的规定,其正式发音应该是“ess cue ell”。

随着SQL语言的颁布,各数据库厂商纷纷在其产品中引入并支持SQL语言,尽管绝大多数产品对SQL语言的支持大部分是相似的,但它们之间还是存在一定的差异,这些差异不利于初学者的学习。

因此,我们在本章介绍SQL时主要介绍标准的SQL语言,我们将其称为基本SQL。

从20世纪80年代以来,SQL就一直是关系数据库管理系统(RDBMS)的标准语言。

最早的SQL标准是1986年10月由美国ANSI(American National Standards Institute)颁布的。

SQL语言详解

SQL语言详解

TypeYourNameHere TypeDateHereSQL语言详解简介SQL(Structured Query Language):结构化查询语言,是一种数据库查询和程序设计语言。

SQL语言得到了广泛的应用;如:Oracle,Sybase, DB2, Informix, SQL Server等大型数据库管理系统;Visual Foxpo, PowerBuilder等PC数据库开发系统。

SQL包含4个部分:1. 数据定义语言(DDL), 例如:CREATE, DROP, ALTER等。

2. 数据操作语言(DML), 例如:INSERT, UPDATE, DELETE等。

3. 数据查询语言(DQL), 例如:SELECT等。

4. 数据控制语言(DCL), 例如:GRANT, REVOKE, COMMIT, ROLLBACK等。

SQL语言DDLCREA TE TA BLE:用来建立数据表。

例如:创建一个空的数据表Customer_Data。

CREATE TABLE Customer_Data(customer_id smallint,first_name char(20),last_name char(20),phone char(20))ALTER TA BLE:修改数据表的定义与属性。

例如:在Customer_Data中新增middle_initial数据行。

ALTER TABLE Customer_DataADD middle_initial char(1)DROP TA BLE:删除数据表以及所有的数据,索引,触发程序,条件约束以及权限。

例如:删除Customer_Data数据表DROP TABLE Customer_DataDMLINSERT:向数据表插入一行数据。

例如:在Customer_Data中新增一个客户。

INSERT INTO Customer_Data(customer_id, first_name, last_name, phone)VALUES (777, ‘Frankie’, ‘Stein’, ‘4895873900’)注意:(customer_id, first_name, last_name, phone)列表数据行名称的顺序决定了数据数值将被放在哪个数据列。

数据库—SQL语言

数据库—SQL语言

数据库—SQL语⾔1 SQL 基本概念1.1 SQL 概念及分类定义:SQL是Structured Query Language的缩写,意思是结构化查询语⾔,是⼀种在数据库管理系统中查询或对数据库⾥⾯的数据进⾏更改的语⾔主流数据库管理系统关系型数据库MySQLOraclePostgre SQLSQL Server⾮关系型数据库redismongo DB数据定义语⾔DDL(Data Ddefinition Language)SQL 数据定义语⾔主要⽤来定义逻辑结构,包括定义基表,视图和索引删除表定义表修改表数据查询语⾔DQL(Data Query Language)SQL 的数据查询语⾔主要⽤来对数据库中的各种数据对象进⾏查询数据操纵语⾔DML(Data Manipulation Language)SQL 的数据操纵语⾔,⽤于改变数据库中的数据,包括插⼊,删除,修改数据控制功能DCL(Data Control Language)SQL 的数据控制语⾔,对表和视图的授权,完整性规则的描述以及事务开始和结束等控制语句1.2 SQL 语⾔的特点综合统⼀:独⽴完成数据库⽣命周期中的全部活动,包括定义关系模式、录⼊数据、建⽴数据库、査询、更新、维护、数据库重构、数据库安全⾼度⾮过程化:⽤户只需提出“做什么”,⽽不必指明“怎么做⾯向集合的操作⽅式:SQL 采⽤集合操作⽅式以同⼀种语法结构提供两种使⽤⽅式:SQL既是⾃含式语⾔,⼜是嵌⼊式语⾔,SQL语句能够嵌⼊到⾼级语⾔程序中语⾔简洁,易学易⽤:SQL 语⾔语法简单,接近英语⼝语1.3 SQL 基本语法1 SQL 数据类型数据类型含义CHAR(n)CHARACTER(n)长度为 n 的定长字符串VARCHAR(n)CHARACTERVARYING(n)最⼤长度为 n 的变长字符串CLOB字符串⼤对象BLOB⼆进制⼤对象INTINTEGER长整数(4 字节)SMALLINT短整数(2 字节)BIGINT⼤整数(8 字节)数据类型含义NUMERIC(p, d)定点数,由 p 位数字(不包括符号、⼩数点)组成,⼩数点后边有 d 位数字DECIMAL(p, d)DEC(p, d)同 NUMERIC REAL取决于机器精度的单精度浮点数DOUBLE PRECISION取决于机器精度的双精度浮点数FLOAT(n)可选精度的浮点数,精度⾄少为 n 位数字FLOAT(n)可选精度的浮点数,精度⾄少为 n 位数字数据类型含义BOOLEAN逻辑布尔值DATE⽇期,包含年、⽉、⽇,格式为 YYYY-MM-DDTIME时间,包含⼀⽇的时、分、秒,格式为 HH:MM:SS TIMESTAMP时间戳类型TIMERVAL时间间隔类型2 模式的定义及删除模式定义语法:CREATE SCHEMA <模式名> AUTHORIZATION <⽤户名>例⼦:CREATE SCHEMA "S-T" AUTHORIZATION WANG;模式定义 + 视图语法:CREATE SCHEMA <模式名> AUTHORZATION <⽤户名> [<表定义⼦句>|<视图定义⼦句>|<授权定义⼦句>];模式删除语法:DROP SCHEMA <模式名><CASCADE|RESTRICT>;CASCADE、RESTRICT两者必须⼆选⼀VASCADE(级联):删除模式的同时也把给模式的所有数据库对象删除RESTRICT(限制):如果该模式下有下属对象(⽐如表视图),则拒绝该删除语句的执⾏3 表的增删改查创建表CREATE TABLE 表名 (字段名类型字段约束, 字段名类型字段约束, 字段名类型字段约束);CREATE TABLE Student (name VARCHAR(20),age INT,sex CHAR(1),);删除表DROP TABLE <表名> [RESTRICT|CASCADE];DROP TABLE Student RESTRICT;修改ALTER TABLE <表名>[ADD [COLUMN] <新列名><数据类型> [完整性约束]][ADD <表级完整性约束>]ALTER TABLE Student ADD S_entrance DATE;ALTER TABLE Student ALTER COLUMN S_age INT;4 索引的增删改查当数据库中数据量巨⼤时,建⽴索引可以减少查询时间,索引可以建⽴在⼀列或多列上建⽴索引CLUSTER:聚簇索引,物理顺序与索引的逻辑顺序相同UNIQUE:唯⼀索引CREATE [UNIQUE] [CLUSTER] INDEX <索引名>ON <表名>(<列名>[<次序>][,<列名> [<次序>]] ...);CREATE UNIQUE INDEX Stusno ON Student(Sno);修改索引ALTER INDEX <旧索引名> RENAME TO <新索引名>;ALTER INDEX SCno RENAME TO SCSno;删除索引DROP INDEX <索引名>DROP INDEX Stusno;2 SQL 的查询假设关系表Student、Course、SC如下:Student学号(Sno)姓名(Sname)性别(Ssex)年龄(Sage)院系(Sdept) 201215121李勇男20CS 201215122刘晨⼥19CS 201215123王敏⼥18MA 201215125张⼒男19ESCourse课程号(Cno)课程名(Cname)先⾏课(Cpno)学分(Ccredit) 1数据库542数学/23信息系统144操作系统635数据结构746数据处理/27Java语⾔64SC学号(Sno)课程号(Cno)成绩(Grade)2012151211922012151212852012151213882012151222902015151223802.1 查询所有列查询Student表中所有列SELECT * FROM Student;2.2 查询部分列查询Student表中的Sno、Ssex列SELECT Sno, Ssex FROM Student;2.3 列取别名查询Student表中的Sno、Ssex列,并将Sno命名为 “学号”,Ssex命名为 “性别”SELECT Sno 学号, Ssex 性别 FREOM Student;SELECT Sno AS 学号, Ssex AS 性别 FROM Student;2.4 表取别名查询Course表中的Cno列,并将查询结果命名为CCSELECT Cno FROM Course AS CC;2.5 查询结果去重查询SC中的Sno列,并将结果去重SELECT DISTINCT Sno AS 课程名 FROM SC;2.6 查询结果加条件查询条件如下:查询条件谓词⽐较=、>、<、<=、>=!=、<>、!>、!<、NOT确定范围BETWEEN ANDNOT BETWEEN AND确定集合IN、NOT IN字符匹配LIKE、NOT LIKE空值IS NULL、IS NOT NULL逻辑运算AND、OR、NOT 查询 SC 表中 Grade ⼤于 88 的信息SELECT * FROM SC WHERE Grade >= 88;查询 SC 表中 Grade 在 85 ~ 95 之间的信息SELECT * FROM SC WHERE Geade BETWEEN 85 AND 95;查询 1 是否包含在 (1,2) 之间SELECT 1 FROM (1, 2);查询 Course 表中包含 “系统” 的课程的课程号,课程名"%" 可以近似多个字符,"_" 只能近似⼀个字符SELECT Cno, Cname FROM Course WHERE Cname LIKE '%系统';查询 Course 中先⾏课为空的信息SELECT * FROM Course WHERE Cpno IS NULL;查询 Course 中学分为 4 分并且先⾏课为 1 的课程的课程名SELECT Cname FROM Course WHERE Ccredit = 3 AND Cpno = 1;查询 Course 中学分为 4 分或 3 分的课程的课程名SELECT Cname FROM Course WHERE Ccredit = 3 OR Ccredit = 4;2.7 聚集函数函数含义COUNT(*)统计元组个数COUNT([DISTINCT|ALL]<列名>)统计⼀列中值的个数SUM([DISTINCT|ALL]<列名>)计算⼀列值的总和AVG([DISTINCT|ALL]<列名>)计算⼀列值的平均值MAX([DISTINCT|ALL]<列名>)计算⼀列值中的最⼤值MIN([DISTINCT|ALL]<列名>)计算⼀列值中的最⼩值注:DISTINCT是去除重复的值查询 CS 表中 Grade 的个数(去重)、总和、平均值、最值SELECT COUNT(*) FROM SC;SELECT COUNT(DISTINCT Grade) FROM SC;SELECT SUM(Grade) FROM SC;SELECT AVG(Grade) FROM SC;SELECT MAX(Grade) FROM SC;SELECT MIN(Grade) FROM SC;2.8 分组查询将表 SC 按照 Sno 进⾏分组,然后筛选出分组中 Sno 为 "201215121" 的⼀组SELECT Sno FROM SC GROUP BY Sno HAVING Sno = '201215121';将 Student 与 SC 以 Sno 进⾏等值连接SELECT Student AS S, SC WHERE S.Sno = SC.Sno;2.10 ⾃⾝连接将 Student 表与⾃⽣进⾏连接SELECT Student AD S1, Student AS S2 WHERE S1.Sno = S2.Sno;2.11 外连接将 Course 与 SC 以 Cno 分别进⾏外连接、左外连接、右外连接SELECT * FROM Course OUTER JOIN SC ON o = o;SELECT * FROM Course LEFT OUTER JOIN SC ON o = o;SELECT * FROM Course RIGHT OUTER JOIN SC ON o = o;2.12 多表查询将 Student 与 SC 以 Sno 进⾏连接,并且将 Course 与 SC 以 Cno 进⾏等值连接SELECT *FROM Student JOIN SC ON Student.Sno = SC.SnoJOIN Course ON o = o;SELECT *FROM Student, Course, SCWHERE Student.Sno = SC.Sno AND o = o;2.13 嵌套查询查询 Grade > 90 的学⽣的学号(Sno)、姓名(Sname)、所在院系(Sdept)SELECT Sno, Sname, SdeptFROM StudentWHERE Sno IN (SELECT SnoFROM SCWHERE Grade > 90;);2.14 带有 ANY 的查询查询 Sage > 19 的所有学⽣的姓名(Sname)(结果满⾜⼦集中的任⼀值即可)SELECT SnameFROM StudentWHERE Sage > ANY (SELECT SageFROM StudentWHERE Sage > 19;);2.15 带有 ALL 的查询查询 Sage > 19 的所有学⽣的学号(Sno)(结果要满⾜⼦集中的所有值)SELECT SnoFROM StudentWHERE Sage > ALL (SELECT SageFROM StudentWHERE Sage > 19;);2.16 带 EXISTS 的查询查询没有⼀门课不选修的学⽣的姓名(Sname)SELECT SnameFROM StudentWHERE NOT EXISTS(SELECT *WHERE NOT EXISTS (SELECT *FROM SCWHERE Sno = Student.Sno AND Cno = o););)2.17 集合查询1 并集查询所在系(Sdept)为 "CS" 的学⽣与年龄(Sage)⼤于 19 的学⽣的并集SELECT * FROM Student WHERE Sdept = "CS"UNIONSELECT * FROM Student WHERE Sage > 19;2 交集查询所在系(Sdept)为 "CS" 的学⽣与年龄(Sage)⼤于 19 的学⽣的交集SELECT * FROM Student WHERE Sdept = "CS"INTERSECTSELECT * FROM Student WHERE Sage > 19;3 差集查询所在系(Sdept)为 "CS" 的学⽣与年龄(Sage)⼤于 19 的学⽣的差集SELECT * FROM Student WHERE Sdept = "CS"EXCEPTSELECT * FROM Student WHERE Sage > 19;3 SQL 的增删改3.1 数据的插⼊1 标准添加INSERT INTO Student(Sno, Sname, Ssex, Sage, Sdept)VALUES ('201215128', '⽯昊', '男', 25, 'IS');2 指定部分字段INSERT INTO Student (Sname, Sage, Sdept) VALUE ('叶凡', 22, 'CS');3 不指定字段-- 不指定字段时,需要⼀⼀对应添加且不能缺少项⽬INSERT INTO VALUE Student ('201215128', '⽯昊', '男', 25, 'IS');4 批量添加INSERT INTO Student VALUES('201215128', '⽯昊', '男', 25, 'IS'),('201215129', '叶凡', '男', 22, 'CS'),('201215130', '狠⼈', '⼥', 20, 'MX');3.2 修改将 Student 表中学号(Sno)为 "201215122" 的学⽣姓名(Sname)改为 “⽯昊”,年龄(Sage)改为 25 UPDATE Student SET Sname = "⽯昊", Sage = 25 WHERE Sno = "201215122";3.3 删除删除 Student 表中年龄(Sage)⼤于 18 的数据DELETE FROM Student WHERE Sage > 18;4 视图4.1 视图定义视图(VIEW)也被称作虚表,即虚拟的表,是⼀组数据的逻辑表⽰,其本质是对应于⼀条 SQL 语句,结果集被赋予⼀个名字视图本⾝并不包含任何数据,它只包含映射到基表的⼀个查询语句,当基表数据发⽣变化,视图数据也随之变化⽬的:⽅便,简化数据操作当我们业务需求要查出多张表的数据,这时我们可能会关联多张表查询处理,如果这个查询 SQL 复杂的话也影响了查询效率,这个时候就可以创建视图,查询时候只需要select * from view就可以4.2 创建视图-- 末尾的 WITH CHECK OPTION 作⽤如下:-- 当后续操作对视图进⾏增删改操作时,可能视图已经不满⾜⼦条件 S 的约束-- 加上该语句之后,后续对视图进⾏增删改的时,系统会⾃动在该⼦条件 S 下进⾏操作CREATE VIEW S_STUAS <⼦查询>[WITH CHECK OPTION];将 Student 表中学⽣年龄(Sage)> 18 的学⽣创建⼀个名为 S_NEW 的视图,该视图包含学⽣的学号(Sno)、姓名(Sname)、性别(Ssex)、所在院系(Sdept)CREATE VIEW S_NEWASSELECT Sno, Sname, Ssex, SdeptFROM StudentWHERE Sage > 18WITH CHECK OPTION;4.3 删除视图-- CASCADE 的作⽤如下:-- 当加上该语句时,会删除该视图以及其下的所有视图-- 当不加该语句时,若该视图下该有其他视图,会删除失败DROP VIEW <视图名> [CASCADE];删除 4.2 创建的视图 S_NEWDROP VIEW S_NEW CASCADE;4.4 查询视图查询 4.2 视图 S_NEW 中性别(Ssex)为 “⼥” 的学⽣的学号(Sno)SELECT SnoFROM S_NEWWHERE Ssex = "⼥";4.5 视图更新视图是虚拟的,不存在的,所以对于视图的操作,最终会反映到基本表上将 4.2 的视图 S_NEW 中所在系(Sdept)为 “CS” 学⽣的性别(Ssex)全改为 “男”-- 更新视图UPDATE S_NEWSET Ssex = "男"WHERE Sdept = "CS";-- 更新基本表-- 因为 4.2 的视图创建条件是 Sage > 18,因此更新基本表时要加上该条件UPDATE StudentSET Ssex = "男"WHERE Sdept = "CS" AND Sage > 18;。

SQL的数据定义功能

SQL的数据定义功能

• ቤተ መጻሕፍቲ ባይዱ如:ALTER TABLE S ADD ADDRESS CHAR(30);
该例为S表增加了一个ADDRESS(地址)列。
尽管SQL提供了为一个表增加一列的语句, 它并没有提供删除表的列、改变列名或改变列 的数据类型的语句。因此,如果要这么做,那 就必须生成一个新的表。
1.1 基本表的定义、修改和删除
• 视图名是要定义的视图的名字,同表名一样,要经 常用到。
• 语句中的SELECT语句作为子查询将以虚拟表的形 式得出结果。SELECT子查询中不能使用ORDER BY子句,也不能包含UNION(合并有类似结构的 表的关系代数并操作符)操作,子句FROM <表名 >中的表名既可以是表,也可以是视图,即视图既 可以根据表,也可以根据其他视图来定义。
数据。 • 视图机制对机密数据提供了自动的安全保护功能。
1.3 索引
• 索引是关系数据库非常重要的部分。它们被用作包含所关心 数据的表指针。通过一个索引,能从表中直接找到一个特定 的记录,而不必连续顺序地扫描这个表,一次一个记录地去 查找。对于大的表来说,索引是必要的。没有索引,要想得 到一个结果可能要等好几个小时、好几天,而不是几秒钟时 间。
1.1 基本表的定义、修改和删除
• 定义基本表的语句格式 CREATE TABLE <表名>(<列名1> < 数据类型1> [NOT NULL] [,<列名2> <数据类型2> [NOT NULL]……])
[其他参数];
其中CREATE TABLE后跟要定义的表 的名称,列名和数据类型中给出表的逻辑 数据结构定义,即表中的列命名、数据类 型选择并给出是否允许空值。各列名信息 之间用逗号相隔,列名与类型说明之间、 类型说明与是否允许空值之间用空格相隔。 任选项“其他参数”与具体系统有关,这 里不作说明。

常用数据库语言

常用数据库语言

常用数据库语言常用数据库语言数据库语言是指用来描述、操作和管理数据库的语言,常用的数据库语言包括结构查询语言(SQL)、存储过程语言(T-SQL/PL-SQL)、数据定义语言(DDL)和数据操作语言(DML)等。

1. 结构查询语言(SQL)SQL是一种标准的关系型数据库语言,它的功能包括查询指令、数据操作指令、数据定义指令、事务控制指令等。

SQL语言分为数据查询语言(DQL)和数据操作语言(DML)两类。

在DQL中,最常用的关键字包括SELECT、FROM、WHERE、GROUP BY、HAVING和ORDER BY等,它们可以帮助用户快速地查询数据。

在DML中,最常用的关键字包括INSERT、DELETE和UPDATE等,它们可以帮助用户对数据进行增加、删除和修改操作。

2. 存储过程语言(T-SQL/PL-SQL)存储过程是一种能够封装常用业务逻辑的编程语言,它可以实现复杂的事务处理、数据导入导出、数据转换等功能。

T-SQL和PL-SQL分别是SQL Server和Oracle数据库使用的存储过程语言。

在存储过程语言中,用户可以进行控制流语句、变量声明、条件分支和循环等操作,更加灵活地完成业务需求。

同时,存储过程也可以提高数据安全性,避免不必要的数据泄漏。

3. 数据定义语言(DDL)DDL是一种用来定义数据库对象的语言,它包括创建、修改和删除表、视图、索引、存储过程等对象。

DDL的关键字包括CREATE、ALTER和DROP等,用户可以通过这些关键字对数据库对象进行管理和维护。

4. 数据操作语言(DML)DML是一种用来操作数据库中数据的语言,它包括增加、删除、修改数据等操作。

DML的关键字包括INSERT、DELETE和UPDATE,用户可以使用这些关键字来对数据库中的数据进行操作。

总之,常用的数据库语言包括SQL、T-SQL、PL-SQL、DDL和DML 等,这些语言可以帮助用户快速、高效地操作数据库,完成业务需求。

SQL语言-数据类型+数据定义

SQL语言-数据类型+数据定义

例4.15 给book_manage 数据库中添加一个数据文件。 alter database book_manage add file ( name = book_manage_second, filename="c:\mydatabase\newfile.sdf" ) 例4.15 删除book_manage 数据库中的次要数据文件 alter database book_manage remove file book现方式做保护处理对用户上传分享的文档内容本身不做任何修改或编辑并不能对任何下载内容负责
第4讲 SQL语言
4.1 SQL概述 (P21教材2.1-2.2)
4.1 SQL概述
• SQL(Structured Query Language)
结构化查询语言,是关系数据库的标准语言
MAXSIZE:指定 文件可以增长到的最大大小。 可以使用千字节 (KB)、兆字节 (MB)、千兆字节 (GB) 或兆兆字节 (TB) 为单位。默认为 MB。指定一个整 数,不要包含小数位。如果没有指定 max_size,那么 文件将增长到磁盘变满为止。 UNLIMITED:指定文件将增长无上限,到磁盘变满 为止。
1.创建及修改数据库 (1) 创建新数据库 基本语法如下: CREATE DATABASE database_name [ ON [ PRIMARY ] [< filespec > [ ,...n ] ] ] [ LOG ON { < filespec > [ ,...n ] } ] 其中< filespec > 语法如下:
(2) 用系统存储过程显示数据库结构 可以使用系统提供的系统存储过程sp_helpdb 来显示 数据库信息,其语法如下: sp_helpdb [[@dbname=] 'name']

sql的数据定义

sql的数据定义

sql的数据定义
SQL的数据定义是指定义和管理数据库中的数据结构和数据类型。

在SQL中,数据定义语言(Data Definition Language,DDL)用于
定义和修改数据库中的表、视图、索引和其他对象。

常见的DDL语句包括CREATE、ALTER和DROP语句。

CREATE语句用于创建新的数据库对象,如表、视图、索引和存
储过程。

ALTER语句用于修改已有的数据库对象,如表结构、索引和约束。

DROP语句用于删除数据库对象。

除了DDL语句,SQL还提供了一些数据类型来定义数据的类型和大小。

常见的数据类型包括字符型、数值型、日期/时间型和布尔型等。

此外,SQL还支持约束(Constraints)来保证数据的完整性和
一致性,如主键约束、唯一约束、外键约束和检查约束等。

对于数据库管理员和开发人员来说,熟练掌握SQL的数据定义是非常重要的,可以帮助他们设计和管理高效、可靠的数据库系统。

- 1 -。

SQL数据定义与数据查询

SQL数据定义与数据查询

数据库上机报告——数据定义与数据查询一、写明实验所采用的实验环境:硬件环境:普通联网的PC机;操作系统:Windows 2000或者Windows XP;数据库管理系统:MS SQL Server 2005。

二、给出实验内容与完成情况:(一)使用命令行方式建立学生课程数据库(1) 用SQL语言建立学生课程数据库,数据库命名:SC_学号后四位及姓名,如SC_3112liyan;CREATE DATABASE SC_1224cxjON(NAME= SC_1224cxj_dat,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\SC_1224cxj_dat.mdf')LOG ON(NAME= SC_1224cxj_log,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\ SC_1224_log.ldf');(2) 用SQL语言在学生课程数据库中建立3个表,要求进行完整性定义:学生关系Student(Sno,Sname,Ssex,Sage,Sdept)其中Sno不能为空,值是唯一的,并且Sname取值也唯一,Sage自定义约束“大于16”课程关系Course(Cno,Cname,Cpno,Ccredit) 其中Cno不能为空,值是唯一的,并且Cname取值也唯一教师关系Teacher(Tno,Tname,Department,Email,Salary) 其中Tno不能为空,值是唯一的选修关系SC(Sno,Cno,Grade) 其中Sno和Cno不能为空,(Sno, Cno)为主码,Grade的数据类型为int建立Student表:CREATE TABLE Student(Sno CHAR(9)PRIMARY KEY,Sname CHAR(40)UNIQUE,Ssex CHAR(2),Sage SMALLINT CHECK(Sage>16),Sdept CHAR(20));建立Course表:CREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(40)UNIQUE,Cpno CHAR(4),Credit SMALLINT,CONSTRAINT FK_C FOREIGN KEY(Cpno)REFERENCES Course(Cno));建立Teacher表:CREATE TABLE Teacher(Tno CHAR(4)PRIMARY KEY,Tname CHAR(40),Department CHAR(20),Email CHAR(100),Salary INT);建立SC表:CREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),CONSTRAINT FK_SC1 FOREIGN KEY(Sno)REFERENCES Student(Sno),CONSTRAINT FK_SC2 FOREIGN KEY(Cno)REFERENCES Course(Cno));(3) 修改数据表:✓将SC表中Grade的数据类型改为float;ALTER TABLE SC ALTER COLUMN Grade FLOAT;✓在Student表中增加一个属性Scome记录学生的入学时间,其数据类型为DATETIME;ALTER TABLE Student ADD Scome DATETIME;✓删除Student表中新增加Scome属性;ALTER TABLE Student DROP COLUMN Scome;✓删除表Teacher表中的Email属性;ALTER TABLE Teacher DROP COLUMN Email;✓删除Student表中对Sname属性创建的Unique约束。

MySQL的sql语言分类DML、DQL、DDL、DCL、

MySQL的sql语言分类DML、DQL、DDL、DCL、

MySQL的sql语⾔分类DML、DQL、DDL、DCL、MySQL的sql语⾔分类DML、DQL、DDL、DCL、SQL语⾔⼀共分为4⼤类:数据定义语⾔DDL,数据操纵语⾔DML,数据查询语⾔DQL,数据控制语⾔DCL1.数据定义语⾔DDL(Data Definition Language) 对象:数据库和表 关键词: create alter drop truncate(删除当前表再新建⼀个⼀模⼀样的表结构) 创建数据库:create database school; 删除数据库:drop database school; 切换数据库:use school; 创建表:create table student( id int(4) primary key auto_increment, name varchar(20), score int(3) ); 查看数据库⾥存在的表:show tables; 注意: varchar类型的长度是可变的,创建表时指定了最⼤长度,定义时,其最⼤值可以取0-65535之间的任意值,但记录在这个范围内,使⽤多少分配多少,varchar类型实际占⽤空间为字符串的实际长度加1。

这样,可有效节约系统空间。

varchar是mysql的特有的数据类型。

char类型的长度是固定的,在创建表时就指定了,其长度可以是0-255之间的任意值。

虽然char占⽤的空间⽐较⼤,但它的处理速度快。

修改表:alter table student rename (to) teacher; alter table student add password varchar(20); alter table student change password pwd varchar(20); alter table student modify pwd int; alter table student drop pwd; 删除表:drop table student; 查看⽣成表的sql语句:show create table student; 查看表结构:desc student;2.数据操纵语⾔DML(Data Manipulation Language) 对象:纪录(⾏) 关键词:insert update delete 插⼊:insert into student values(01,'tonbby',99); (插⼊所有的字段) insert into student(id,name) values(01,'tonbby'); (插⼊指定的字段) 更新:update student set name = 'tonbby',score = '99' where id = 01; 删除:delete from tonbby where id = 01; 注意: 开发中很少使⽤delete,删除有物理删除和逻辑删除,其中逻辑删除可以通过给表添加⼀个字段(isDel),若值为1,代表删除;若值为0,代表没有删除。

第3章 SQL语言基础及数据定义功能

第3章 SQL语言基础及数据定义功能

Create Table SC (学号 char(7) References S(学号), 课程号 char(2) Not Null, 成绩 smallint Check(成绩>=0), Primary Key(学号, 课程号) Foreign Key(课程号) References C(课程号) ) (2)删除数据表 格式:Drop Table 表名, … 功能:删除数据表。 例:删除数据表text,语句为 Drop Table text
(3)删除数据库 格式:Drop DataBase 数据库名 功能:删除指定数据库。 例:删除学生管理数据库student 。 Drop DataBase student 3.3.1 数据表建立和删除 (1)建立数据表 格式:Create Table 数据表名 (列名 类型 [完整性约束] ,… [,完整性约束])
SQL语言的命令动词 SQL功能
数据查询 数据定义 数据操纵 数据控制 SELECT CREATE、DROP、ALTER INSERT、UPDATE、DELETE GRANT、REVOKE
命令动词
P27表3-1
3.2 SQL数据类型
在定义表结构时,每个字段都要指明它的数据类 型,SQL提供了丰富的数据类型。 每个数据类型都有它的特点和取值范围,用户使 用时可以根据实际需要进行选择。 3.2.1 数值型 1. 准确型 指在计算机中能精确存储的数据类型。 有bigint、int、smallint、tinyint、bit、nume ric(p,q)、decimal(p,q)等。
3.3.2 修改表结构 格式:Alter Table 表名 [Alter Column 列名 新类型 |Add 新列名 类型 [完整性约束] |Drop Column 列名] 功能:修改列类型、添加新列、删除列。 例2:为表SC添加新列修课类别。 Alter Table SC Add 修课类别 char(4) 例3:修改表SC中修课类别的类型。 Alter Table SC Alter Column 修课类别 char(6)

07_SQL-数据定义及操纵-25

07_SQL-数据定义及操纵-25

INTO子句 指定要插入数据的表名及属性列,属性列的顺序可与表定义中 的顺序不一致。 若未指定属性列:表示要插入的是一条完整的元组,且属性 若未指定属性列 列属性与表定义中的顺序一致。否则,若指定部分属性列 若指定部分属性列: 若指定部分属性列 插入的元组在其余属性列上取空值 VALUES子句 提供的值必须与INTO子句匹配
SQL数据定义语言
例:建立一个“学生选课”表SC,它由学号 Sno、课程号Cno,修课成绩Grade组成,其 中(Sno, Cno)为主码。
CREATE TABLE SC( Sno CHAR(7) , Cno CHAR(4) , Grade int, Primary key (Sno, Cno), Foreign key (Sno) References student(Sno), Foreign key (Cno) References Course(Cno));
Ssm
SQL数据定义语言
例:创建一个学生表 建立一个“学生”表Student,它由学号Sno、姓名 Sname、性别Ssex、年龄Sage、所在系Sdept五个 属性组成。其中学号不能为空,值是唯一的,并且姓 名取值也唯一。
CREATE TABLE Student( Sno CHAR(9) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(2), Sage NUMERIC(2,0), Sdept CHAR(20) );
ALTER TABLE student DROP unique(sname);
Ssm
数据操纵语言
插入数据 两种插入数据方式
¤ 插入单个元组 ¤ 插入子查询结果(参见子查询内容)
Ssm

sql的语句类型

sql的语句类型

sql的语句类型SQL(Structured Query Language)是用于管理关系数据库的标准编程语言。

以下是SQL中的一些主要语句类型:1. 数据定义语言 (DDL)`CREATE` - 用于创建数据库、表、视图等。

+ 例如:`CREATE DATABASE`, `CREATE TABLE`, `CREATE VIEW``ALTER` - 用于修改数据库、表等结构。

+ 例如:`ALTER TABLE``DROP` - 用于删除数据库、表、视图等。

+ 例如:`DROP DATABASE`, `DROP TABLE`, `DROP VIEW` `TRUNCATE` - 用于删除表中的所有数据,但不删除表本身。

2. 数据操纵语言 (DML)`INSERT` - 用于向表中插入数据。

`UPDATE` - 用于修改表中的数据。

`DELETE` - 用于从表中删除数据。

3. 数据查询语言 (DQL)`SELECT` - 用于从数据库表中检索数据。

4. 事务控制语言 (TCL)`COMMIT` - 用于提交事务。

`ROLLBACK` - 用于回滚事务。

`SAVEPOINT` - 用于设置保存点。

5. 其他`SET` - 用于设置SQL会话参数。

`SHOW` - 用于显示数据库、表、视图等的结构或状态。

`DESCRIBE` - 用于显示表的结构。

6. 组合和特定数据库的语句SQL包含许多子语句、关键字和函数,可以根据需要组合使用,以满足各种复杂的查询和操作需求。

此外,不同的数据库管理系统(如MySQL、Oracle、SQL Server等)可能有其特定的扩展和语法。

数据库系统概论:第4章 关系数据库标准语言——SQL语言1

数据库系统概论:第4章 关系数据库标准语言——SQL语言1
26
4)删除完整性约束
例:删除“Height”属性列上的CHECK约束。 ALTER TABLE Student DROP
CONSTRAINT Chk1;
27
5)删除属性列
例:删除Student表中新增加的“Height”属性列。 ALTER TABLE Student DROP COLUMN Height;
2
2、SQL语言应用情况
(1) Oracle、Sybase、Informix、Ingres、 DB2、SQL Server、Rdb等大型数据库管理系统 实现了SQL语言; (2) Dbase、Foxpro、Acess等PC机数据库管理 系统部分实现了SQL语言; (3)可以在HTML(Hypertext Markup Language, 超文本标记语言)中嵌入SQL语句,通过WWW访 问数据库; (4)在VC、VB、Delphi、PB也可嵌入SQL语句。
/*外键约束*/ Credit NUMBER);
21
例3:建立一个学生选课表SC,所有约束条件均为表
级完整性约束。
CREATE TABLE SC
( Sno CHAR(8),
Cno CHAR(8),
Grade NUMBER,
PRIMARY KEY(Sno,Cno),
/*主键约束*/
FOREIGN KEY(Sno) REFERENCES Student(Sno)
25
3)增加完整性约束
例:给Student表中“Height”属性列增加一 个CHECK约束,要求学生的身高要超过140厘 米才行。 ALTER TABLE Student ADD CONSTRAINT Chk1 CHECK(Height>140);

结构化查询语言SQL(2)——数据定义语言

结构化查询语言SQL(2)——数据定义语言

例2:建立一个“学生”表Student,它由学号 :建立一个“学生” ,它由学号Sno、姓名 、姓名Sname、 、 性别Ssex、年龄 五个属性组成。 性别 、年龄Sage、所在系 、所在系Sdept五个属性组成。其中学号不 五个属性组成 能为空,姓名取值唯一。 能为空,姓名取值唯一。 CREATE TABLE Student(Sno CHAR(5) NOT NULL, ( ( ) Sname CHAR(8)UNIQUE, ( ) 表名 Ssex CHAR(2), 数据类型 ( ) Sage INT, 列名(字段名) 列名(字段名) Sdept CHAR(20)); ( ));
SQL的数据定义语句 的数据定义语句
操作对象 表 视图 索引
操作方式 创建 create table create view create index 删除 drop table drop view drop index 修改 alter table
定义数据库 创建、 创建、修改和撤消数据库 定义基本表 定义、 定义、修改与删除基本表 定义索引 建立与删除索引
例6:建立一个“成绩”表chengji,它由学号 、课程号 :建立一个“成绩” ,它由学号sno、课程号cno、 、 成绩cj三个属性组成 定义此表并定义相应的主键和外键。 三个属性组成。 成绩 三个属性组成。定义此表并定义相应的主键和外键。 CREATE TABLE chengji (sno CHAR(5), cno CHAR(3), cj INT, primary key (sno,cno), foreign key (sno) references student(sno), foreign key (cno) references cullum(cno) );

SQL的数据定义语言(DDL)

SQL的数据定义语言(DDL)
EDA技术及其应用
SQL的数据定义语言(DDL)
SQL的数据定义功能包括定义模式、定义基本表、定义视图、 定义索引。
1.1 定义模式
1)模式的创建
在SQL中,一个模式定义为基本表的集合。模式由模式名和模式拥有 者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、 索引等)的定义。创建一个模式,可以理解为建立一个数据库,或定 义一个存储空间,其句法是
实例
CREATE TABLE Table_Student ( StudentID varchar (12) NOT NULL, CardID varchar(8), Sname varchar(8) , School varchar(8) NOT NULL, Sex char(1) CHECK ( Sex in ('M','F')), PRIMARY KEY (StudentID), FOREIGN KEY (CardID) REFERENCES Table_Card(CardID));
1.2 定Байду номын сангаас基本表
3)基本表的修改
在基本表建立使用一段时间后,可能由于分析设计不到位或应用需求的不断变化 等原因,需要对基本表结构进行修改,比如新增列和完整性约束、修改原有的列 定义和完整性约束定义等。
SQL语言使用ALTER TABLE 命令来完成这一功能,其基本格式为:
1.2 定义基本表
实例
CREATE TABLE Table_Card ( CardID varchar(8) PRIMARY KEY, Password varchar(8) NOT NULL, StartDate datetime NOT NULL, EndDate datetime , State char(1) NOT NULL CHECK (State in ('0','1','2')), Balance money NOT NULL CHECK (Balance>=0 ), CHECK (StartDate<EndDate));

数据定义语句

数据定义语句

数据定义语句
数据定义语句是一种在计算机编程中使用的语言,用于定义数据类型、变量、常量、函数等在程序中的具体表现形式和特性。

这些语句可以用于创建、修改或删除数据结构,如表格、索引、视图等。

在SQL语言中,数据定义语句通常用于创建和管理数据库对象,如表格、索引、视图、存储过程、触发器等。

这些语句包括CREATE、ALTER和DROP等操作。

在编程语言中,数据定义语句用于定义变量、常量、函数、类等数据类型。

例如,C++中的数据定义语句包括int、float、double、char等数据类型的定义,以及变量、常量、结构体等的定义。

数据定义语句是程序设计中非常重要的一部分,它们直接影响程序的运行效率和可读性。

因此,程序员应该学习并熟练掌握各种数据定义语句的使用方法和规范,以确保代码的正确性和可维护性。

- 1 -。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.2 数据定义
数据定义功能包括定义基本表、视图和索引
操作方式
操作对象
表 视图 索引
创 建 CREAT TABLE CREAT VIEW CREAT INDEX
删 除 DROP TABLE DROP VIEW DROP INDEX
修 改 ALTER TABLE
准备工作:数据类型
数据类型用于给特定的列提供数据规则, 不同的DBMS支持的数据类型不同,有细 微的差别。SQL提供的主要类型: 数值型、字符型、位串型、日期型
语句格式:
CREATE TABLE <表名> (<列名> <数据类型> [列级完整性约束条件] [,<列名> <数据类型> [列级完整性约束条件]…] [,<表级完整性约束条件> );
列和表完整性约束条件
约束类型 Not null unqiue 说明 防止NULL值进入该列 防止重复值进入该列
修改内容
增加新列和新的完整性约束条件(ADD子句) 删除指定的完整性约束条件(DROP子句) 修改原有的列定义 ( ALTER子句)
例2 向Student表中增加“入学时间”列,其数 据类型为日期型。
ALTER TABLE Student ADD Scome DATEtime;

意义:
大多数数据库开发商支持SQL/99,但并不是百分 之百符合这个标准。目前市场上存在一些不同风 格的SQL,因为每一个RDBMS开发商都试图扩展 这个标准,以增强产品的功能,提高产品的吸引 力,因此各个DBMS产品在实现标准SQL语言时也 各有差别,读者在使用某个DBMS产品时,应仔 细阅读系统提供的有关手册。本书中我们将遵循 SQL/99标准向大家介绍语句。但为了增强大家 的认识,我们会通过SQL Server数据库阐述部 分特性,与标准SQL/99会有一些偏离。
1.79E+308
8Byte
3.40E+38
4Byte
精度
最多15位
最多7位
精确数类型
精确数类型有两种形式
Decimal Numeric
与浮点类型数据的区别
可以自定义精度的位数 例 num_col(5,2)
货币型
货币类型的比较
比较内容
最小值
Money
-922,337,203,685,477.5808
SQL86
由ANSI(美国国家标准局)于1986年10月公布 1987年6月国际标准化组织OSI把它采纳为国际标准
SQL89
ISO于1989年4月公布,增强了完整性特征
SQL92
ISO于1992年公布,也称为SQL2
SQL99
意义:

自SQL成为国际标准语言以后,各个数据库厂 家纷纷推出各自支持的SQL软件或与SQL的接口软 件。大多数数据库均用SQL作为共同的数据存取 语言和标准接口,使不同数据库系统之间的互操 作有了共同的基础。这个意义十分重大。因此, 有人把确立SQL为关系数据库语言标准及其后的 发展称为一场革命。 SQL成为国际标准,对数据库以外的领域也产 生了很大影响,有不少软件产品将SQL语言的数 据查询功能与图形功能、软件工程工具、软件开 发工具、人工智能程序结合起来。SQL已成为关 系数据库领域中一个主流语言。
索引的分类
聚簇/聚集索引
索引树的叶级页包含实际的数据;表的物理顺 序与记录的索引顺序相同。非常类似于目录表, 目录表的顺序与实际页码顺序。一个表只能有 一个聚簇索引。
5.1 SQL语言概述
SQL,结构化查询语言
Structured Query Language 是一种介于关系代数与关系演算之间的语言 已成为关系数据库的标准语言 支持关系系统
Oracle、Informix、Sybase、MS SQL、INGRES、 DB2、VF、FoxPro、Access等
CREATE TABLE student (Sno char(8), Sname char(20) , Ssex char(1) Sage int, Sdept char(20))
创建有约束的表结构 Create table student (sno char(8) primary key, sname char(8) not null unique, ssex char(2) default '男' check(ssex='男' or ssex='女'), sage tinyint check(sage between 15 and 50), sdept char(20)) T-SQL中具体创建约束时,分为命名约束与自 命名约束,自命名约束不需要constraint关键字, 直接在字段定义后创建,命名约束需要constraint 关键字,对约束命名,位置在字段定义结束后。
语句格式
DROP TABLE <表名>
例5 删除Student表
DROP TABLE Student
说明:
删除基本表定义时,表中的数据、在此表上建立的 索引将同时被删除; 此表上的视图不被删除,但已无法使用。
4、索引
表的索引就是表中数据的目录 索引基于表中的列创建,可以基于不同的列创建 多个索引 在进行数据查询时,如果不使用索引,就需要将 数据文件分块,逐个读到内存中进行查找比较操 作。如果使用索引,可先将索引文件读入内存, 根据索引项找到元组的地址,然后再根据地址将 元组数据读入内存,并且由于索引文件中只含有 索引项和元组地址,文件很小,而且索引项经过 排序,索引可以很快的读入内存并找到相应元组 地址,极大地提高查询的速度。 使用索引可保证数据的唯一性。在索引的定义中 包括了数据唯一性的内容。 使用索引可加快连接速度
4、嵌入式SQL
规定了SQL语句在宿主语言的程序中使用规则。
2. SQL语言的特点:
1. 综合统一
查询、操纵、定义、控制操作功能一体化 语言风格统一,数据操作符统一性
2. 高度非过程化
用户只需提出“做什么”,而不必指明“怎么做” 隐蔽数据存取路径
3. 面向集合的操作方式
2、修改基本表 ALTER TABLE
语句格式
ALTER TABLE <表名> [ADD <新列名> <数据类型> [完整性约束]] [ADD constraint [完整性约束]] [DROP constraint<完整性约束>] [DROP COLUMN<列名>] --T-SQL [ALTER column<列名><数据类型>] --T-SQL
创建有约束的表结构 create table sc (sno char(8), cno char(2), grade tinyint, constraint pk_sc primary key(sno,cno), constraint fk_stuid foreign key(sno) references student(sno), constraint fk_course foreign key(cno) references course(cno), constraint ck_grade check(grade>=0 and grade<=100) ) 注意:教材是标准SQL99语法,和具体的DBMS的语法有区别
Smallmoney
-214,748.3648
最大值
占用存储空间
922,337,203,685,477.5807
214,748.3647
4Byte
8Byte
精度
小数点后4位
小数点后4位
位数据类型
位数据类型bit是一种逻辑数据类型 只有1和0两种数值 一般常用作true/false使用 定义bit列时,不允许为NULL,也不能建 立索引 多个bit列可占用一个字节
5. 语言简洁,易学易用
类似于英语的自然语言 操作谓词少(核心功能只用9个动词)
SQL功能 数据查询 数据定义 数据操纵 数据控制
动词 SELECT CREATE,DROP,ALTER INSERT,UPDATE,DELETE GRANT,REVOKE
3. SQL对关系数据库模式的支持
文本型和图像型
文本类型text 图像类型image 每行可以存储2GB的二进制大型对象
时间戳型
时间戳型表示Timestamp 由系统自动赋值的一个计数器数据 记录了数据行的操作顺序 时间戳列的数据保持惟一,它可以惟一标 识表中的列 时间戳列的值实际来自于事务日志
1、定义基本表 CREATE TABLE
SQL
外层/ 视图V1 视图V2
外模式 概念层/ 概念模式 内层/ 存储模式
基本表B1
基本表B2
基本表B3
基本表B4
存储文件S1
存储文件S2
基本表(base table):
数据库中实际独立存在的表(关系) 存储在实际的文件中
存储文件
存储基本表的数据
视图(view)
是一个虚拟表 从基本表或其他视图中导出的表 没有实际的存储位置 数据库中只存放视图的定义而不存放视图对应的 数据,数据仍然存放在导出视图的基本表中
整数类型
整数类型的比较
比较内容 最小值 最大值 占用存储空间
Int -231 231-1 4byte
Smallint -215 215-1 2byte
Tinyint 0 255 1byte
浮点数类型
比较内容 最小值 Float -1.79E+308 Real -3.40E+38
相关文档
最新文档