SQL知识以及SQL语句简单实践
综述
大家都知道SQL是结构化查询语言,是关系数据库的标准语言,是一个综合的,功能极强的同时又简洁易学的,它集级数据查询(Data Quest),数据操纵(Data Manipulation),数据定义(Data Definition),数据控制(Data Control)于一体 即:
SQL语言包含4个部分:
※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句
※ 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句
※ 数据查询语言(DQL),例如:SELECT语句
※ 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句
SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)
现在说说SQL的几个基本概念:
基本表:本身独立存在的一个表,一个关系就是对应一个基本表
内模式:存储文件的逻辑结构组成了关系数据库的内模式
视图:从一个或几个基本表导出的表,他是一个虚表
简单实践
建一个数据库,包含“学生表”,“教员表”,“任课表”,“专业表”,“课程表”,“学生个人情况表”,“成绩表”七张表
下面几个表是我们这次实践要用到的表: 用SQL语句建表:
建立一个数据库cc
1 create database cc;
2 use cc;
创建一个名为tb_student的学生表
1 create table tb_student(
2 stunum char(7) primary key, --学号
3 stuname char(8) not null, --姓名
4 stusex char(2) check(stusex in('女','男')), --性别
5 stubirthday smalldatetime not null, --学生出生日期
6 stuspec char(6)not null, --专业
7 stuscore numeric(4,1), --入学成绩
8 stuloan char(2) check(stuloan in ('是','否'))not null, --是否贷款
9 )
创建一个名为tb_teacher的教师表
1 create table tb_teacher(
2
3 教师代号 char(7) primary key, --教师代号
4 姓名 char(8) not null, --教师名字
5 性别char(2) check(teasex in('女','男')), --教师性别
6 出生年月 datetime not null, --教师出生日期
7 职称 char(6), --职称
8 )
创建一个名为tb_renke的任课表
1 create table tb_renke(
2 课程代号 char(5), --课程代号
3 教师代号 char(7), -- 教师代号
4 )
创建一个名为tb_major的专业表
1 create tabletb_major(
2 专业名称 char(8) primary key, --专业名称
3 负责人 char(8) not null, --负责人
4 )
创建一个名为tb_course的课程表
1 create table course(
2 课程代号 char(5)primary key, --课程代号
3 课程名 char(14) not null, --课程名
4 周学时 int, --周学时
5 学分 int, --学分
6 )
创建一个名为tb_studentinfo的学生个人情况表
1 create table tb_studentinfo(
2 学号 char(7), --学号
3 身份证 char(15) unique, --身份证号码
4 籍贯 char(8), --籍贯
5 家庭住址 text, --家庭住址
6 电话 char(30), --电话
7 特长 text, --特长
8 奖励 text, --奖励
9 处分 char(100), --处分
10 )
建一个名为tb_grade的成绩表
1 create table tb_grade(
2 学号 char(7), --学号
3 课程代号 char(5), --课程代号
4 平时 numeric(3,1), --平时
5 期中 numeric(3,1), --期中
6 期末 numeric(3,1), --期末
7 )
现在向每一张表插入记录
给学生表tb_student插入数据
1 insert into tb_student values('9607039','邓盈莹','女','1978-6-6','外贸',666.6,'是');
2 insert into tb_student values('9907002','倪雯娴','女','1981-4-1','外贸',641.4,'是');
3 insert into tb_student values('9801055','赵东','男','1979-11-9','中文',450,'否');
4 insert into tb_student values('9902006','和音','女','1982-6-19','数学',487.1,'否');
5 insert into tb_student values('9704001','克敏敏','女','1978-7-22','物理',463,'否');
6 insert into tb_student values('9603001','申强','男','1978-1-15','新闻',512,'是');
7 insert into tb_student values('9606005','迟大为','男','1976-9-3','化学',491.3,'否');
8 insert into tb_studentvalues('9803011','欧阳小娟','女','1981-8-11','新闻',526.5,'否');
9 insert into tb_student values('9908088','毛杰','男','1982-1-1','计算机',622.2,'否');
10 insert into tb_student values('9608066','康红','女','1979-9-7','计算机',596.8,'是');
11 insert into tb_student values(