SQL语言基础
1986年10月由美国ANSI 公布最早的SQL标准。
1989年4月,ISO提出了具备完整性特征的SQL,称为SQL-89 。
1992年11月,ISO又公布了新的SQL标准,称为SQL-92(以上均为关系形式)。
1999年颁布SQL-99,是SQL92的扩展。、
、
SQL语言的特点
1. 一体化。
2. 高度非过程化。
3. 简洁。
4. 使用方式多样。
四部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。
SQL的数据类型
-
数值型 字符串型 日期时间型 货币型
-
**准确型
-
整数
-
Bigint: 8字节, Int:4字节 Smallint:2字节, Tinyint:1字节 Bit:1位,存储1或0
-
小数
-
Numeric(p,q)或Decimal(p,q), 其中:p为数字位长度,q:小数位长度。
-
近似型
Float:8字节 Real:4字节
基本表的定义、删除及修改
1.定义基本表
使用SQL语言中的CREATE TABLE语句实现,其一般格式为:
CREATE TABLE <表名>(
<列名> <数据类型> [列级完整性约束定义]
{, <列名> <数据类型>
[列级完整性约束定义] … }
[, 表级完整性约束定义 ] )
NOT NULL:限制列取值非空。
DEFAULT:给定列的默认值。
UNIQUE:限制列取值不重。
CHECK:限制列的取值范围。
PRIMARY KEY:指定本列为主码。
FOREIGN KEY:定义本列为引用其他表的外码。使用形式为:
[FOREIGN KEY(<外码列名>)] REFERENCES <外表名>(<外表列名>)
NOT NULL和DEFAULT只能是列级完整性约束;
其他约束均可在表级完整性约束处定义。
注意以下几点:
第一,如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义;
第二,如果表的主码由多个列组成,则也只能在表级完整性约束处定义,并将主码列用括号括起来,即:PRIMARY KEY(列1{[,列2 ] …});
第三,如果在表级完整性约束处定义外码,则“FOREIGN KEY (<外码列名>)”部分不能省。
创建学生表
CREATE TABLE Student (
Sno char ( 7 ) PRIMARY KEY,
Sname char ( 10 ) NOT NULL,
Ssex char (2)
CHECK (Ssex = '男' OR Ssex = '女'),
Sage tinyint
CHECK (Sage >= 15 AND Sage <=45),
Sdept char (20 ) DEFAULT '计算机系'
)
创建课程表
CREATE TABLE Course (
Cno char(10) NOT NULL,
Cname char(20) NOT NULL,
Ccredit tinyint CHECK (Ccredit > 0),
Semester tinyint CHECK (Semester > 0),
Period int CHECK (Period > 0),
PRIMARY KEY(Cno)
)
创建SC表
CREATE TABLE SC (
Sno char(7) NOT NULL,
Cno char(10) NOT NULL,
Grade tinyint,
CHECK (Grade >= 0 and Grade <= 100),
PRIMARY KEY ( Sno, Cno ),
FOREIGN KEY ( Sno )
REFERENCES Student ( Sno ),
FOREIGN KEY ( Cno )
REFERENCES Course ( Cno ) )
来源:CSDN
作者:YULIU_
链接:https://blog.csdn.net/xuptacm/article/details/104704420