综述
大家都知道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(