SQL语言的表达
create database shopping
on primary
(
name = 'shopdata',
filename = 'c:\shop.mdf',
size = 10mb,
maxsize = 100mb,
filegrowth = 1mb
)
log on
(
name = 'shoplog',
filename = 'c:\shop.log',
size = 10mb,
maxsize = 100mb,
filegrowth = 1mb
)
go
create table shoptable
(
sno varchar(10),
gno varchar(10),
qty int
)
go
insert into shoptable values('s01','g01','500')
go
insert into shoptable values('s01','g02','100')
go
insert into shoptable values('s02','g01','200')
go
insert into shoptable values('s03','g03','500')
go
insert into shoptable values('s03','g01','450')
go
insert into shoptable values('s04','g07','560')
go
insert into shoptable values('s06','g06','100')
go
insert into shoptable values('s07','g07','152')
go
/*查询平均销售量最高的商品号*/
select top 1 gno from shoptable where qty > (select avg(qty) from shoptable) order by qty desc
1.1 String sql="select * from tb_college where collegeName='"+计算机学院+"' and role='"+院长+"'";
1.2 String sql="select * from tb_department where collegeId='"+计算机学院ID+"'";
2.你的学生表中应该包含了该学生所属学院ID 系别ID 班级ID 当然如果你确信该学生的学院,系别等不变的话直接用学院,系别名称写入学生表也可以。
2.1 String sql="select * from tb_students where collegeId='"+计算机学院ID+"' and role='"+院长+"'";
查询出来之后用for循环信息时根据该学生的系别ID 班级ID再查询对应的名称将其信息显示出来,例如:
学院|系别|班级|姓名
美术|水粉|0701|张三
SQL(STructured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL同时也是数据库脚本文件的扩展名。
SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。他不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。
结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle、Sybase、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxporo、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。
美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。ANSI同时也是ISO和International Electrotechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSI SQL-92。ANSI SQL-92有时被称为ANSI SQL。尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循 ANSI SQL 标准。SQL Server使用ANSI SQL-92的扩展集,称为T-SQL,其遵循ANSI制定的 SQL-92标准。
SQL语言包含4个部分:
※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
※ 数据操作语言(DML),例如:INSERT、UPDATE、DELETE语句。
※ 数据查询语言(DQL),例如:SELECT语句。
※ 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
SQL语言包括三种主要程序设计语言类别的陈述式:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
[编辑本段]SQL发展历史
1970: E.J. Codd 发表了关系数据库理论(relational database theory);
1974-79: IBM 以Codd的理论为基础开发了“Sequel”,并重命名为"SQL";
1979: Oracle 发布了商业版SQL
1981-84: 出现了其他商业版本,分别来自 IBM(DB2),Data General(DG/SQL),Relational Technology(INGRES);
SQL/86:ANSI 跟 ISO的第一个标准;
SQL/89:增加了引用完整性(referential integrity);
SQL/92(aka SQL2):被数据库管理系统(DBMS)生产商广发接受;
1997+:成为动态网站(Dynamic web content)的后台支持;
SQL/99:Core level跟其他8种相应的level,包括递归查询,程序跟流程控制,基本的对象(object)支持包括oids;
SQL/2003:包含了XML相关内容,自动生成列值(column values);
2005-09-30:“Data is the next generation inside...SQL is the new HTML”! Tim O'eilly提出了Web 2.0理念,称数据将是核心,SQL将成为“新的
HTML";
SQL/2006:定义了SQL与XML(包含XQuery)的关联应用;
2006:Sun公司将以SQL基础的数据库管理系统嵌入Java V6
[编辑本段]DDL
DDL 用于定义和管理物件,例如资料库、资料表以及检视表( 第18章 将会解释何谓检视表)。DDL 陈述式通常包括每个物件的CREATE、ALTER 以及 DROP 命令。举例来说,CREATE TABLE、ALTER TABLE 以及 DROP TABLE 这些陈述式便可以用来建立新资料表、修改其属性(如新增或删除资料行)、删除资料表等,下面我们会一一介绍。
CREATE TABLE 陈述式
使用 DDL 在 MyDB 资料库建立一个名为 Customer_Data 的范例资料表,本章后面的例子我们会使用到这个资料表。如前所述,CREATE TABLE 陈述式可以用来建立资料表。这个范例资料表被定义成四个资料行,如下所示:
Use MyDB
CREATE TABLE Customer_Data
(customer_id smallint,
first_name char(20),
last_name char(20),
phone char(10))
GO
这个陈述式能产生 Customer_Data 资料表,这个资料表会一直是空的直到资料被填入资料表内。
ALTER TABLE 陈述式
ALTER TABLE 陈述式用来变更资料表的定义与属性。在下面的例子中,我们利用 ALTER TABLE 在已经存在的 Customer_Data 资料表中新增 middle_initial 资料行。
ALTER TABLE Customer_Data
ADD middle_initial char(1)
GO
现在资料表的定义包括了五个资料行,而不是之前的四个资料行。关於使用ALTER TABLE 的更多细节,请参阅 第15章 。
DROP TABLE 陈述式
DROP TABLE 陈述式用来删除资料表定义以及所有的资料、索引、触发程序、条件约束以及资料表的权限。要删除我们的 Customer_Data 资料表,可利用下列命令:
DROP TABLE Customer_Data
GO
关於 DROP TABLE 陈述式的详细内容,请参阅 第15章 。
[编辑本段]DML
DML 利用 INSERT、SELECT、UPDATE 及 DELETE 等陈述式来操作资料库物件所包含的资料。
INSERT 陈述式
INSERT 陈述式用来在资料表或检视表中插入一列资料。例如,如果要在Customer_Data 资料表中新增一个客户,可使用类似以下的 INSERT 陈述式:
INSERT INTO Customer_Data
(customer_id, first_name, last_name, phone)
VALUES (777, "Frankie", "Stein", "4895873900")
请注意 SQL 陈述式中第二行的资料行名称清单,清单上资料行名称的次序决定了资料数值将被放在哪个资料行。举例来说,第一个资料数值将被放在清单列出的第一个资料行 customer_id、第二个资料数值放在第二个资料行,依此类推。由于我们在建立资料表时,定义资料资料行填入数值的次序与现在相同,因此我们不必特意指定栏位名称。我们可以用以下的 INSERT 陈述式代替:
INSERT INTO Customer_Data
VALUES (777, "Frankie", "Stein", "4895873900")
注意
如果使用这种形式的 INSERT 陈述式,但被插入的数值次序上与建立资料表时不同,数值将被放入错误的资料行。如果资料的型别与定义不符,则会收到一个错误讯息。
UPDATE 陈述式
UPDATE 陈述式用来更新或改变一列或多列中的值。例如,一位名称为 Frankie Stein 的客户想要在记录中改变他的姓氏为 Franklin,可使用以下 UPDATE 陈述式:
UPDATE Customer_Data
SET first_name = "Franklin"
WHERE last_name = "Stein" and customer_id= 777
我们在 WHERE 子句中加入 customer_id 的项目来确定其他名称为 Stein 的客户不会被影响-只有customer_id为777的客户,姓氏会有所改变。
--------------------------------------------------------------------------------
说明
当您使用 UPDATE 陈述式时,要确定在 WHERE 子句提供充分的筛选条件,如此才不会不经意地改变了一些不该改变的资料。
--------------------------------------------------------------------------------
DELETE 陈述式
DELETE 陈述式用来删除资料表中一列或多列的资料,您也可以删除资料表中的所有资料列。要从 Customer_Data 资料表中删除所有的列,您可以利用下列陈述式:
DELETE FROM Customer_Data
或
DELETE Customer_Data
资料表名称前的 FROM 关键字在 DELETE 陈述式中是选择性的。除此之外,这两个陈述式完全相同。
要从 Customer_Data 资料表中删除 customer_id 资料行的值小於100的列,可利用下列陈述式:
DELETE FROM Customer_Data
WHERE customer_id < 100
现在我们已经快速浏览了 SQL 提供的 DDL 与 DML 陈述式,接著,下面将介绍 T-SQL。
[编辑本段]DCL
DCL是用来管理数据库的语言。包含管理权限及数据更改。
--------------------------------------------------------------------------------
[编辑本段]SELECT 陈述式
SELECT 陈述式用来检索资料表中的资料,而哪些资料被检索由列出的资料行与陈述式中的 WHERE 子句决定。例如,要从之前建立的 Customer_Data 资料表中检索 customer_id 以及 first_name 资料行的资料,并且只想取出每列中 first_name 资料行值为 Frankie 的资料,那麼可以利用以下的 SELECT 陈述式:
SELECT customer_id, first_name FROM Customer_Data
WHERE first_name = "Frankie"
如果有一列符合 SELECT 陈述式中的标准,则结果将显示如下:
customer_id first_name
------------- ------------
777 Frankie
[编辑本段]SQL中的五种数据类型
简要描述一下SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型
字符型
VARCHAR VS CHAR
VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。他们都是用来储存字符串长度小于255的字符。
假如你向一个长度为四十个字符的VARCHAR型字段中输入数据BIll GAtES。当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。 现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。
当你建立自己的站点时,你会发现使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段时,你不需要为剪掉你数据中多余的空格而操心。
VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要
文本型
TEXT
使用文本型数据,你可以存放超过二十亿个字符的字符串。当你需要存储大串的字符时,应该使用文本型数据。
注意文本型数据没有长度,而上一节中所讲的字符型数据是有长度的。一个文本型字段中的数据通常要么为空,要么很大。
当你从HTML fORM的多行文本编辑框(TEXTAREA)中收集数据时,你应该把收集的信息存储于文本型字段中。但是,无论何时,只要你能避免使用文本型字段,你就应该不适用它。文本型字段既大且慢,滥用文本型字段会使服务器速度变慢。文本型字段还会吃掉大量的磁盘空间。
一旦你向文本型字段中输入了任何数据(甚至是空值),就会有2K的空间被自动分配给该数据。除非删除该记录,否则你无法收回这部分存储空间。
数值型
SQL支持许多种不同的数值型数据。你可以存储整数 INT 、小数 NUMERIC、和钱数 MONEY。
INT VS SMALLINT VS TINYINT
他们的区别只是字符长度:
INT型数据的表数范围是从-2,147,483,647到2,147,483,647的整数
SMALLINT 型数据可以存储从-32768到32768的整数
TINYINT 型的字段只能存储从0到255的整数,不能用来储存负数
通常,为了节省空间,应该尽可能的使用最小的整型数据。一个TINYINT型数据只占用一个字节;一个INT型数据占用四个字节。这看起来似乎差别不大,但是在比较大的表中,字节数的增长是很快的。另一方面,一旦你已经创建了一个字段,要修改它是很困难的。因此,为安全起见,你应该预测以下,一个字段所需要存储的数值最大有可能是多大,然后选择适当的数据类型。
NUMERIC
为了能对字段所存放的数据有更多的控制,你可以使用NUMERIC型数据来同时表示一个数的整数部分和小数部分。NUMERIC型数据使你能表示非常大的数——比INT型数据要大得多。一个NUMERIC型字段可以存储从-1038到1038范围内的数。NUMERIC型数据还使你能表示有小数部分的数。例如,你可以在NUMERIC型字段中存储小数3.14。
当定义一个NUMERIC型字段时,你需要同时指定整数部分的大小和小数部分的大小。如:MUNERIC(23,0)
一个 NUMERIC型数据的整数部分最大只能有28位,小数部分的位数必须小于或等于整数部分的位数,小数部分可以是零。
MONEY VS SMALLMONEY
你可以使用 INT型或NUMERIC型数据来存储钱数。但是,专门有另外两种数据类型用于此目的。如果你希望你的网点能挣很多钱,你可以使用MONEY型数据。如果你的野心不大,你可以使用SMALLMONEY型数据。MONEY型数据可以存储从-922,337,203,685,477.5808到922,337,203,685,477.5807的钱数。如果你需要存储比这还大的金额,你可以使用NUMERIC型数据。
SMALLMONEY型数据只能存储从-214,748.3648到214,748.3647 的钱数。同样,如果可以的话,你应该用SMALLMONEY型来代替MONEY型数据,以节省空间。
逻辑型
BIT
如果你使用复选框( CHECKBOX)从网页中搜集信息,你可以把此信息存储在BIT型字段中。BIT型字段只能取两个值:0或1。
当心,在你创建好一个表之后,你不能向表中添加 BIT型字段。如果你打算在一个表中包含BIT型字段,你必须在创建表时完成。
日期型
DATETIME VS SMALLDATETIME
一个 DATETIME型的字段可以存储的日期范围是从1753年1月1日第一毫秒到9999年12月31日最后一毫秒。
如果你不需要覆盖这么大范围的日期和时间,你可以使用SMALLDATETIME型数据。它与DATETIME型数据同样使用,只不过它能表示的日期和时间范围比DATETIME型数据小,而且不如DATETIME型数据精确。一个SMALLDATETIME型的字段能够存储从1900年1月1日到2079年6月6日的日期,它只能精确到秒。
DATETIME型字段在你输入日期和时间之前并不包含实际的数据,认识这一点是重要的。
SQL Server数据中运算符与表达式
SQL全称是“结构化查询语言(Structured Query Language)”
SQL(STructured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
LQGQL是什么意思?
首先需要内心素质,如果内心不够洁净、优雅,那么想要实现LQGQL只是空谈。其次,在言语表达上,我们需要注重语言的用词和语气,尽量避免粗俗低俗的用词,以及避免语气过于情绪化。此外,我们还要注重自己的情绪控制能力,尝试调节自己的情绪以及表现出更为平和稳定的状态。只有这样,才能够真正实现LQGQL。
qllaa是什么意思?
在网络对话中,当人们要表达惊奇、兴奋、幸福等情绪时,常常会用到qllaa。此外,在某些表现艺术中,人们也会使用这个词来形容一段精彩的表演或者演员的出色表现。总的来说,qllaa这个词语的使用范围很广,能够适应不同的交流需求。网络语言与当代文化密切相关。qllaa的出现反映了年轻人对于日常生活情感的...
ql服务是什么意思
QL服务其实就是清理服务的意思,当大家在酒店居住的时候,可能就会有专门的保洁人员来打扫,然后这个服务就被称之为QL服务。“QL”是下列词语的英文缩写:Quality Level 质量标准 Query Language 询问语言 quantum libet 适量、随意量 Quad Left 四左 Quadrate Lobe 方叶 Quadratus Lumborum...
什么是 GraphQL?
探索GraphQL:图状数据的革命性查询语言GraphQL,一个专为图状数据(Graph)设计的查询语言,以其独特的查询优势横空出世,其名源自"Graph Query Language"。尽管它与SQL共享“QL”后缀,但两者本质迥异,正如汉语和英语虽有相似之处,却属于不同的语言体系。GraphQL与NoSQL数据库并非必然绑定,尽管Face...
kb、dl、xt、tt、zt、xs、ql是什么意思?
转帖”的拼音缩写。8、xs:xs是安利(中国)日用品有限公司于2003年12月03日向国家商标总局注册的商标,主要生产无酒精运动饮料、非碳化运动饮料、无酒精饮料、非碳化饮料、制饮料用粉剂、饮料制剂等产品。9、ql:新加坡QL机房拥有ANC、PCCW、SINGTEL MCI三大骨干网络线路,线路稳定性更有保障。
ql的case怎么写?》11111
主要语法:case when 条件1 then 条件1为真时的结果值 when 条件2 then 条件2为真时的结果值 when 条件3 then 条件3为真时的结果值 ...else 非上面所有条件时的结果值 end 下面示例在查询结果集内显示每个作者所居住州的全名:SELECT au_fname, au_lname,CASE state WHEN 'CA' THEN '...
graphql是什么
GraphQL是一种用于API的查询语言和执行运行时。以下是关于GraphQL的更详细的解释:一、明确答案 GraphQL是一种用于在API中定义数据查询和操作的语言。它提供了一种灵活的方式来获取数据,允许客户端精确地请求所需的数据字段,从而减少了不必要的数据传输和服务器负载。二、详细解释 1. GraphQL的基本概念...
“WLQL”指代什么?
它专用于技术文档和编程代码中,以便于简洁明了地表达。对于那些需要处理WebLogic查询的开发者来说,理解和使用WLQL至关重要。总的来说,"WLQL"是一个用于简化WebLogic查询语言表达的术语,其在技术交流和实际编程中占据着重要地位。请确保在使用时遵循相关规范,以确保准确无误的沟通。
pl\/sql包中包含了哪些元素
pl\/sql包中包含了哪些元素 ql(数据定义语言) 和PL\/Sql的区别:答:SQL是结构化查询语言,比较接近自然语言,使用SQL,只需要说干什么,不需要说怎么干。由数据定义语言、数据操纵语言、数据控制语言构成,它不面向过程,即前一条语句与后一条语句无关。SQL是标准的语。PL\/SQL,Oracle对SQL标准的扩充...
qllkk是什么意思?
qllkk并没有确切的定义或含义,这个词可能只是一串无意义的字符组合。有可能是在社交网络或聊天应用中,某些用户习惯打乱字母顺序来传达一些特定的信息。尽管qllkk具体意义不明,但是在某些场合下,使用这个词能够增强话题的趣味性和神秘感。网络语言和流行语的变迁像是一种潜移默化的力量在改变人们的表达...
胡怕氨酚: insert into TS (userid,年龄) select userid,年龄 from 表 where 年龄
通州区15682506024: SQL的语言特点是什么? - ?
胡怕氨酚: SQL是高级的非过程化编程语言,它允许用户在高层数据结构上工作. 它不要求用户指定对数据的存放方法,也不需要用户了解其具体的数据存放方式. 而它的界面,能使具有底层结构完全不同的数据库系统和不同数据库之间,使用相同的...
通州区15682506024: SQL是什么意思??
胡怕氨酚: SQL是英文Structured Query Language的缩写,意思为结构化查询语言.SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标准协会)的规...
通州区15682506024: mysql多表查询sql语句怎么写? - ?
胡怕氨酚: 一使用SELECT子句进行多表查询 SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件 SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE ...
通州区15682506024: SQL语言中命令“SELECT”的用法!!! - ?
胡怕氨酚: select 列名称 from 表名称 where 条件,其中列名称也可以是*,代表查处全部列. 比如: select * from 图书表 where 图书名='计算机导论' 表示从图书表中查出图书名='计算机导论'的书的全部信息 如:select 图书名,地址,电话 from 图书表 where 图书名='计算机导论' 表示从图书表中查出图书名='计算机导论'的书的某几个信息,图书名,地址,电话~~ 希望对你有用~~ 祝早日成功!
通州区15682506024: 用SQL语言表示?
胡怕氨酚: SELECT NAME GRADE FROM <表名> WHERE NAME='王%' ORDER BY GRADE ASC
通州区15682506024: SQL语句用正则表达式怎样表示? - ?
胡怕氨酚: 正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹...
通州区15682506024: SQL语句逻辑与怎么表达,如select * form asdf where idd >3 且 idd<9 - ?
胡怕氨酚: idd >3 and idd
通州区15682506024: 试用SQL语句表示如下查询 - ?
胡怕氨酚: --1select S.Sno,Sname,Sdept,Grade from S JOIN R ON S.Sno=R.Sno--2select Cname from C where Cno in(select Cno from R where Sno in(select Sno from S where Sname='刘华'))--...