打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SQL语句复习

      结构化查询语言(SQL)是一种介于关系代数和关系演算之间的结构化查询语言,其功能不仅仅是查询,是一个通用的、功能极其强大的关系数据库语言。由于它不仅仅在我们本学期所学的VFP中可以使用,也可以在其它关系数据库系统中使用,所以学好这一部分内容对于以后需要用关系型数据库产品做一些数据管理的同学会有很大的好处。由于课时不多,练习不够,很多学习VFP数据库程序设计的同学感觉这一部分还是有很大困难。在此,我根据我的课件整理如下复习内容,供参考。

    本学期,我们需要掌握本部分内容中主要包含6个语句:create table、alter table、Insert、delete、update、select。如果你身边有计算机,跟着我将下面的语句操作一遍,我想会收获更大。如果没有计算机,可以先浏览一遍,再找计算机练练手。操作之前,建议设置好自己的默认路径。

例1.创建一个自由表表STUD(学生信息表),它由以下字段组成:学号(C,10),姓名(C,8),性别(C,2) ,出生日期 (D),是否团员(L),总分 N(5,1)。

语句:CREATE TABLE STUD(学号 C(10),姓名 C(10),性别 C(2),出生日期 D,是否团员 L,总分 N(5,1))

注:这里用字母来表示类型,所以需要同学们记住各种类型的字母:字符型 C、数值型 N、浮点型 F、双精度型 D、整型 I、货币型 Y、日期型 D、日期时间型 T、备注型 M、通用型 G。

括号内表示字段的宽度,如学号 C(10),总分 N(5,1),其中5表示宽度,1表示小数位数。若某类型固定宽度,则不要设置宽度,如出生日期  D。

例2.在数据库“课程”中创建stu和Sc表,并建立两表的永久关联关系。

语句:

CREATE DATABASE  课程

CREATE TABLE stu(学号 C(10) primary key,姓名 C(8))

CREATE TABLE SC(学号 C(10) reference stu,课程号 C(2) NULL,成绩 I)

注:primary key表示将学号创建为表stu的主键,也就是创建一个主索引。reference stu表示将stu表作为sc表建立永久关系的父表。

例3.建立一张新表“学生”:姓名 C(10),学号 C(12) 为主关键字,性别 C(2) 默认值为“男”,成绩  I 范围为0~100。

语句:

Create table 学生(姓名 C(10),学号 C(12) primary key,性别 C(2) default '男',成绩 I check 成绩>=0 and 成绩<=100)

注:这个例子中用了default和check分别指明性别字段的默认值,成绩字段的有效性规则。这个命令要保证学生表是一个数据库,也就是执行这个语句前需要保证当前打开着数据库。

修改表包括增加字段、修改字段和删除字段,所以修改表命令有如下三种格式:

【格式1】ALTER  TABLE  <表名>  ADD  <新字段名><数据类型>[(<宽度>[,<小数位数>])] 

【格式2】ALTER  TABLE  <表名>  ALTER  <字段名><数据类型>[(<宽度>[,<小数位数>])]

【格式3】ALTER  TABLE  <表名>  DROP  <字段名>

例4.在表SC中,增加一个“评价”字段,类型为字符型,宽度为3。

语句:ALTER  TABLE  SC  ADD  评价 C(3)

例5.将表SC中的评价字段的宽度改为4。

语句:ALTER  TABLE  SC  ALTER 评价 C(4)

例6.删除SC中的评价字段。

语句:ALTER TABLE SC DROP 评价

例7.修改SC表中成绩字段的有效性规则为成绩要求大于520,错误提示信息为“成绩必须大于520”。

语句:ALTER  TABLE  SC  ALTER  成绩 SET CHECK 成绩>520 ERROR '成绩必须大于520'

例8.修改SC表的成绩字段的默认值为521。

语句:ALTER  TABLE  SC  ALTER  成绩 SET DEFAULT 521

例9.删除表SC的有效性规则。

语句:ALTER  TABLE  SC  ALTER  成绩 DROP CHECK

注:练习以上各个例子时,每执行一个语句都应该打开表设计器,看看表结构是否达到期望的目的。

暂时掌握插入记录命令一个基本的语法即可:

INSERT  INTO  <表名>  [(<字段名表>)]  VALUES  (<表达式表>)

例10:为例1中创建的表stud插入一条记录。

语句:INSERT  INTO  STUD(姓名,学号,性别,出生日期,是否团员) VALUES ('李建国','011110','男',{^1982/02/28},.T.)

例11:为stud表再插入一条记录。

语句:INSERT  INTO  STUD VALUES ('011111','张三','男',{^1988/02/28},.T.,300)

注:例10和例11的区别主要在于是否有字段列表,例10中有字段列表,则Values后的值与字段列表中的字段按位置做对应。例11中没有字段列表,则Values中的值与表中字段的顺序对应。另外,当没有字段列表时,values中的值列表必须为表的除备注型和通用型以外的所有字段赋值。试试在例11中将最后一个值300删除再执行,看会有什么结果?

更新记录,也就是修改记录。在SQL语句中用Update语句完成对记录的修改,而VFP中还有一个语句Replace可以对记录进行修改,学习时可对照它们语法和应用上的差别。

例12:将表stud中的张三的性别改为“女”。

语句:update stud set 性别='女' where 姓名='张三'

注:replace语句的语法为replace  字段 with 新值 [范围 条件]

replace的默认范围是当前记录,而update的默认范围是所有记录。replace中常常用for来表达对满足条件的限制,但update中使用where关键词来表达条件。

在VFP中删除记录使用DELETE,而在SQL部分也有一个DELETE语句,注意它们的区别。第4章学的DELETE语句可以看作是VFP产品专用的,而SQL语句部分学习的DELETE命令可看作是关系数据产品通用的语句。

例13:删除STUD表中的“女”性记录。

语句:DELETE FROM stud WHERE 性别='女'

注:在VFP中删除记录时,分逻辑删除和物理删除。不管是第四章学的“专用”DELETE,还是第九章SQL中学的”通用“DELETE,都只是做逻辑删除,如果要从物理上删除打了删除标记的记录,则需要再执行PACK 命令。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
写信念
Sql语句更改字段类型及主键等实用整理
《SQL Server数据库应用开发技术》第5章 表的创建与管理
删除相同记录在一个表中。SQL语句
mysql中SQL语句删除
向数据库中添加或删除列的SQL ALTER TABLE 语句
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服