SQL语言基本语句介绍
作者:biyuan 来源:biyuan的专栏 发布时间:2008-07-24 13:32:00
* 表的建立
关系数据库的主要特点之一就是用表的方式组织数据。表是SQL语言存放数据、查找数据以及更新数据的基本数据结构。在SQL语言中,表有严格的定义,它是一种二维表,对于这种表有如下规定:
1)每一张表都有一个名字,通常称为表名或关系名。表名必须以字母开头,最大长度为30个字符。
2)一张表可以由若干列组成,列名唯一,列名也称作属性名。
3)表中的一行称为一个元组,它相当于一条记录。
4)同一列的数据必须具有相同的数据类型。
5)表中的每一个列值必须是不可分割的基本数据项。
注意:当用户需要新的数据结构或表存放数据时,首先要生成一个表。
语法:
以下为程序代码:
CREATE TABLE 表名 [表约束]
(列名1 数据类型 [缺省值1,列约束1]
(列名2 数据类型 [缺省值2,列约束2]
…
列名n 数据类型 [缺省值n,列约束n]
[TABLESPACE 表空间名称]
[STORAGE (存贮的子句)]
[ENABLE 约束名]
[DISABLE 约束名]
插入数据
当一个表新建成时,它里面没有数据,通过向表中扦入数据,建成表的实例。
语句句法:
以下为程序代码:
INSERT INTO 表名[(列名1,…)]
VALUES(值1,值2,…,值n)
[子查询];
假设有一张表Student如下所示:
NO | NAME | AGE |
1001 | A | 12 |
1002 | B | 14 |
将新学生E增加到上表中,并按照表的结构将信息添加完整,需要如下语句:
以下为程序代码:
INSERT INTO STUDENT VALUSE(1003, 'E',12);
修改数据
对表中已有数据进行修改,语句句法:
以下为程序代码:
UPDATE 表名SET 列名1=表达式1,列名2=表达式2,…
WHERE 条件;
例如:对下表Student
NO | NAME | AGE |
1001 | A | 12 |
1002 | B | 14 |
将B的年纪改为18;应该执行以下语句:
以下为程序代码:
UPDATE STUDENT SET AGE=18 WHERE NAME='B';
* 删除数据
删除表中已有数据,不能删除不存在的数据。
语句句法:
以下为程序代码:
DELETE FROM 表名 WHERE 条件;
例如:
对下面Student表进行删除,要删除其中年纪为12的学生;
NO | NAME | AGE |
1001 | A | 12 |
1002 | B | 14 |
以下为程序代码:
DELETE FROM STUDENT WHERE AGE=12;
* 表结构的修改
在已存在的表中增加新列,语句句法:
以下为程序代码:
ALTER TABLE 表名 ADD(新列名 数据类型(长度));
例如:
以下为程序代码:
ALTER TABLE STUDENT ADD (DEPARTMENT CHAR(8));
b.增加已有列的数据类型。
例如:
以下为程序代码:
ALTER TABLE STUDENT MODIFY(NAME VARCHAR2(25));
* 表的删除
将已经存在的表删除,语句句法:
以下为程序代码:
DROP TABLE 表名;
* 查询语句
SELECT命令的语法为:
以下为程序代码:
SELECT [DISTINCT|ALL] {*|模式名.] {表名|视图名|
快照名] .*…| {表达式[列别名]…} } [, [模式名. ] {表名|
视图名|} .*…| 表达式[列别名] ]…
FROM [模式名.] {表名|视图名|快照名} [@数据库链名] [表别名]
[, [模式名.] {表名|视图名|快照名} [@数据库链名]
[表别名] ]…
[WHERE条件]
[START WITH条件 CONNECT BY 条件]
[GROUP BY表达式[,表达式] …[HAVING条件]
[UNION|UNION ALL |INTERSECT|MINUS]SELECT命令
[ORDER BY{表达式|位置} [ASC|DESC] [, {表达式|位置[ASC|DESC]}]…]
例如:对于STUDENT表:
NO | NAME | AGE |
1001 | AE | 12 |
1002 | BT | 14 |
(1) 查询年纪为12的学生姓名;
以下为程序代码:
SELECT STUDENT.NAME FROM STUDENT WHERE AGE=12;(2) 查询年纪在12至16岁之间的学生姓名;
以下为程序代码:
SELECT STUDENT.NAME FROM STUDENT WHERE AGE BETWEEN 12 AND 16;(3) 查询年纪不在12至16岁之间的学生姓名;
以下为程序代码:
SELECT STUDENT.NAME FROM STUDENT WHERE AGE NOT BETWEEN 12 AND 16;(4) 查询所有姓名以A开头的学生的姓名;
以下为程序代码:
SELECT STUDENT.NAME FROM STUDENT WHERE NAME LIKE 'A%';(5) 列出所有学生年纪的和,年纪的平均值,最大值,最小值,最大值与最小值之间的差值;
以下为程序代码:
SELECT AVG(AGE), SUM(AGE), MAX(AGE), MIN(AGE), MAX(AGE)-MIN(AGE);(6) 将所有学生按学号顺序升序排列;
以下为程序代码:
SELECT * FROM STUDENT ORDER BY NO DESC;(7) 将所有学生按学号顺序升序排列;
以下为程序代码:
SELECT * FROM STUDENT ORDER BY NO ASC;
猜你喜欢
- 网上asp加密字符的MD5很多,也很普遍,因为受到asp语言本身的限制,对文件进行md5介绍的文章很少,本文通过2种方式来谈谈如何通过asp
- 先介绍一下jsSmarty Project:简要说明:利用JavaScript?在客户端完成SmartyPhp的工作,加速模板开发。主要是利
- 虽然现在IE还是主导了整个浏览器的天下,但IE靠的并非是产品设计上的优势,而是依靠windows的力量,因为绝大多数的初级网民认为IE的产品
- 在Dreamweaver4中,你可以存储你自己设定的图片、链接、flash影片、颜色表、模板等等,组成这个站点的资产,这就是Assets面板
- 前几天写了一个ajax的,总感觉代码比较多,今天晚上又得写了一下,感觉代码还是比较多,但还好的是,比较通用。谁有办法优化一下当然好。&nbs
- 概述我在教学和实际设计中的一些心得。就不长篇大论了!让大家省些时间,捞干的。尽量通俗易懂。想知道怎样设计标志,就要知道什么是标志?标志:外来
- 昨天还和裕波沟通我没有准备ppt,想以另一种互动的方式来交流。后来想想,每个人都准备了,我不准备也不太好意思,呵呵。今天在webrebuil
- 我们可用如下代码进行监控:函数中使用了fso对象来读取文件属性。Function File_GetLastModifi
- list.asp<%@LANGUAGE="VBSCRIPT" CODEPAGE="936&qu
- XMLHttpRequest的兼容代码功能结构上大体没有什么变动主要处理了这么几条:1.不同浏览器的创建方式2.事件大小写问题(ie7的XM
- 打过了趟深圳回来后,已经快半个月,在广州购书中心逛了下,发现2本前端书《重构HTML-改善WEB应用的设计》、《CSS3 实战》,看了一半《
- 如何做一个文本搜索? 比较简单,见下:<%Head = "搜索"SearchStri
- 前两天在帮朋友整理他的主页空间时候,发现的一点关于MySQL可能大家都会忽略的问题:我们知道,在安装完MySQL后,它会自动创建一个root
- 如今WEB的安全问题影响着整个安全界,SQL注入,跨站脚本攻击等攻击受到了关注。 网络安全问题日益变的更加重要,国内依然有很多主机受到此类安
- background-clip 和 background-origin 是 CSS3 中新加的 background module 属性,用
- 所谓“评论”不是必须得有文本框,用户录入提交数据才算,广义上的评论包括用户的任何“表态”,典型如打分。我接触电子商务时间并不长,最早应该是0
- aspjpeg版本:v1.801 将pic.jpg打上logo.png,可根据图片大小对水印图做适当调整 &
- 代码如下:--根据MAX(MIN)ID CREATE PROC [dbo].[proc_select_id] @pageindex int=
- 这本来是翻译Estelle Weyl的《15 JavaScript Gotchas》,里面介绍的都是在JavaScript编程实践中平时容易
- 数据库(database)MySQL 是最流行的开源数据库系统,可运行于几乎所有的操作系统平台。在《MySQL 安装》一文中详解介绍了安装步