数据库学习之路 三 SQL语言基础与操作运用

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 ) )

添加某一行

insert 
into Student(Sname,Sno,Ssex,Sage,Sdept)
values('002','成西','0',18,'CS');

删除某一行

DELETE FROM 表名称 WHERE 列名称 =
-- 新建学生表
create table Student
(
	Sno char(20),
	Sname char(20),
	Sage int,
	Ssex char(5),
	Sdept char(20)
);

-- 新建课程表
create table Course
(
	Cno char(5),
	Cnmae char(20),
	Cpno char(10),
	Ccredit char(10),
	Primary key(Cno)
);

-- 新建成绩表
create table SC
(
	Sno char(5),
	Cno char(3),
	Grade int,
	PRIMARY key(Sno, Cno),
)

-- 插入数据
insert into Student
values('01', '张三', 20, '男', 'CS');
insert into Student
values('02', '王强', 19, '男', 'CV');
insert into Student
values('03', '小花', 23, '女', 'NT');
insert into Student
values('04', '小红', 22, '女', 'CS');
insert into Student
values('05', '小刚', 22, '男', 'CV');

insert into Course
values('1', '数据库', '5','4');
insert into Course
values('2', '数学', NULL ,'2');
insert into Course
values('3', '系统信息', '1','4');
insert into Course
values('4', '操作系统', '6','3');
insert into Course
values('5', '数据结构', '7','4');
insert into Course
values('6', '数据处理', NULL, '2');
insert into Course
values('7', 'PASCAL语言', '6','4');

insert into SC
values('01', '2', 98);
insert into SC
values('01', '5', 99);
insert into SC
values('02', '5', 90);
insert into SC
values('02', '1', 88);
insert into SC
values('03', '4', 84);
insert into SC
values('04', '1', 80);
insert into SC
values('05', '5', 79);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YULIU_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值