常用简单sql语句

2024-05-28

常用简单sql语句(精选8篇)

篇1:常用简单sql语句

SQL语句常用函数、字符转换函数

1、ASCII()

返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。

2、CHAR()

将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR()返回NULL。

3、LOWER()和UPPER()

LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。

4、STR()

把数值型数据转换为字符型数据。

STR([,length[,]])

length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10,decimal 缺省值为0。

当length 或者decimal 为负值时,返回NULL;

当length 小于小数点左边(包括符号位)的位数时,返回length 个*; 先服从length,再取decimal ;

当返回的字符串位数小于length,左边补足空格。

二、去空格函数

1、LTRIM()把字符串头部的空格去掉。

2、RTRIM()把字符串尾部的空格去掉。

三、取子串函数

1、left()

LEFT()

返回character_expression 左起 integer_expression 个字符。

2、RIGHT()

RIGHT()

返回character_expression 右起 integer_expression 个字符。

3、SUBSTRING()

SUBSTRING(,length)

返回从字符串左边第starting_ position 个字符起length个字符的部分。

四、字符串比较函数

1、CHARINDEX()

返回字符串中某个指定的子串出现的开始位置。

CHARINDEX(<’substring_expression’>,)

其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。

此函数不能用于TEXT 和IMAGE 数据类型。

2、PATINDEX()

返回字符串中某个指定的子串出现的开始位置。

PATINDEX(<’%substring _expression%’>,)其中子串表达式前后必须有百分号“%”否则返回值为0。

与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、VARCHAR 和TEXT 数据类型。

五、字符串操作函数

1、QUOTENAME()

返回被特定字符括起来的字符串。

QUOTENAME(<’character_expression’>[,quote_ character])其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。

2、REPLICATE()

返回一个重复character_expression 指定次数的字符串。

REPLICATE(character_expression integer_expression)如果

integer_expression 值为负值,则返回NULL。

3、REVERSE()

将指定的字符串的字符排列顺序颠倒。

REVERSE()其中character_expression 可以是字符串、常数或一个列的值。

4、REPLACE()

返回被替换了指定子串的字符串。

REPLACE()用string_expression3 替换在string_expression1 中的子串string_expression2。

5、SPACE()

返回一个有指定长度的空白字符串。

SPACE()如果integer_expression 值为负值,则返回NULL。

6、STUFF()

用另一子串替换字符串指定位置、长度的子串。

STUFF()

如果起始位置为负或长度值为负,或者起始位置大于

character_expression1 的长度,则返回NULL 值。

如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。

六、数据类型转换函数

1、CAST()

CAST( AS [ length ])

2、CONVERT()

CONVERT([ length ], [,style])

1)data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。

2)length用于指定数据的长度,缺省值为30。

3)把CHAR或VARCHAR类型转换为诸如INT或SAMLLINT这样的INTEGER类型、结果必须是带正号或负号的数值。

4)TEXT类型到CHAR或VARCHAR类型转换最多为8000个字符,即CHAR或VARCHAR数据类型是最大长度。

5)IMAGE类型存储的数据转换到BINARY或VARBINARY类型,最多为8000个字符。

6)把整数值转换为MONEY或SMALLMONEY类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。

7)BIT类型的转换把非零值转换为1,并仍以BIT类型存储。

8)试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。

9)用CONVERT()函数的style 选项能以不同的格式显示日期和时间。style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。

七、日期函数

1、day(date_expression)

返回date_expression中的日期值

2、month(date_expression)

返回date_expression中的月份值

3、year(date_expression)

返回date_expression中的年份值

4、DATEADD()

DATEADD()

返回指定日期date 加上指定的额外日期间隔number 产生的新日期。

5、DATEDIFF()

DATEDIFF()

返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。

6、DATENAME()

DATENAME()

以字符串的形式返回日期的指定部分此部分。由datepart 来指定。

7、DATEPART()

DATEPART()

以整数值的形式返回日期的指定部分。此部分由datepart 来指定。DATEPART(dd,date)等同于DAY(date)

DATEPART(mm,date)等同于MONTH(date)

DATEPART(yy,date)等同于YEAR(date)

8、GETDATE()

以DATETIME 的缺省格式返回系统当前的日期和时间。

八、统计函数

AVG()-返回的平均价值

count()-返回的行数

first()-返回第一个值

last()-返回最后一个值

max()-返回的最大价值

min()-返回最小的价值

total()-返回的总和

九、数学函数

abs(numeric_expr)求绝对值

ceiling(numeric_expr)取大于等于指定值的最小整数 exp(float_expr)取指数

floor(numeric_expr)小于等于指定值得最大整数 pi()3.1415926.........power(numeric_expr,power)返回power次方

rand([int_expr])随机数产生器

round(numeric_expr,int_expr)安int_expr规定的精度四舍五入 sign(int_expr)根据正数,0,负数,返回+1,0,-1 sqrt(float_expr)平方根

十、系统函数

suser_name()用户登录名

user_name()用户在数据库中的名字 user用户在数据库中的名字 show_role()对当前用户起作用的规则

db_name()数据库名object_name(obj_id)数据库对象名

col_name(obj_id,col_id)列名

col_length(objname,colname)列长度

valid_name(char_expr)是否是有效标识符

篇2:常用简单sql语句

1、SQL SELECT 语句

语法:SELECT列名称FROM表名称

2、SQL SELECT DISTINCT 语句

语法:SELECTDISTINCT列名称FROM表名称

3、SQL WHERE 语句

语法:SELECT列名称FROM表名称WHERE列运算符值

操作符描述

=等于

不等于

>大于

<小于>

>=大于等于

<=小于等于

BETWEEN在某个范围内

LIKE搜索某种模式

注释:在某些版本的 SQL 中,操作符 可以写为 !=,

SQL 使用单引号来环绕文本值。若果是数值,不能使用引号。

4、SQL AND & OR 运算符

AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤,

使用运括号组成复杂的表达式。

5、SQL ORDER BY 子句

根据指定的列对结果集进行排序,默认安生许对记录进行排序,可以使用 DESC 关键字进行降序排列。

如果第一列有相同的值或者有些值为空时,以第二列升序进行排列。

6、SQL INSERT INTO 语句

语法:INSERTINTO表名称VALUES(值1,值2,....)

指定插入数据的列:INSERTINTOTABLE_NAME (列1,列2,...)VALUES (值1,值2,....)

7、SQL UPDATE 语句

语法:UPDATE表名称SET列名称=新值WHERE列名称=某值

8、SQL DELETE 语句

语法:DELETEFROM表名称WHERE列名称=值

删除所有行操作,意味着表的结构、属性和索引都是完整的,单数据是空的。

篇3:SQL常用语句用法浅析

SQL是关系数据库的国际标准语言,也是当前和将来DBMS发展的基础。通过SQL可以对数据库进行操作。美国国家标准协会(ANSI)将SQL定义为关系型数据库管理系统标准语言,具有重大意义。

SQL语言具有以下特点:词汇量少、查询功能强大和非过程性三大特点。本文通过SQL常用语句的用法,对SQL的应用进行进一步解析。

2 SQL概述

SQL语句用来对数据库进行各种操作,如查询数据、修改数据、删除数据等,大多数关系型数据库管理系统(如Access,Oracle,SQL Server等)都支持SQL标准。

但由于SQL存在着许多版本,给用户带来了很多不便,为了与ANSI标准兼容,这些SQL就必须支持大部分共同或相似的SQL语句,如SELECT、DELETE、UPDATE等。

3 SQL操作语句

SQL包含数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)、数据控制语言(DCL)、指针控制语言(CCL)、事务处理语言(TPL)6个部分。本文着重对其中三种常用语言进行介绍,即数据定义、查询、操作3种语言:

3.1 数据定义语言

数据定义语言语句有CREATE、DROP两种,具体来说就是创建表、删除表、创建索引、删除索引4种,详见下表。

3.2 数据查询语言

查询语言只包含SELECT语句,主要功能就是从数据表中查询数据,该语句应用最为广泛,在实际应用中需要与其他保留字配合使用(如ORDER BY,WHERE等),对数据加以限定,以便提高查询效率。

数据查询是关系运算理论在SQL语言中的主要体现。数据查询只有一个语句:SELECT语句。需要从其基本句法、完整句法和各种限定三个方面着手,才能完整掌握这个语句。

SELECT语句的基本句法:

SELECT[ALL/DISTINCT]<目标列表达式>[,目标列表达式<>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUP BY<列名1>[HAVING<条件表达式>]][ORDER BY<列名2>[ASC|DESC];

目标表达式的格式有:①*;②<表名>.*;③COUNT([DIS⁃TINCT|ALL].*);④[<表名>.]<属性列名表达式>[,[<表名>.]<属性列名表达式>]…。

集函数的一般格式:

WHERE子句的条件表达式有以下可选格式:

3.3 数据操作语言(DML:Data Manipulation Language)

操作语言语句包括更新(UPDATE)、插入(INSERT)、删除(DELETE)三种语句,用于更新、添加和删除表中数据。

数据插入有下列三种句法:

3.3.1 单元组的插入句法

INSERT INTO<基本表名>[(<属性列1>[,<属性列2>]…)]VALUES(<常量1>[,<常量2>]…)

3.3.2 多元组的插入句法

INSERT INTO<基本表名>[(<属性列1>[,<属性列2>]…)]VALUES(<常量1>[,<常量2>]…)

(<常量1>[,<常量2>]…)

(<常量1>[,<常量2>]…)

3.3.3 查询结果的插入句法

INSERT INTO<基本表名>[(<属性列1>[,<属性列2>]…)]SELECT查询语句

3.3.4 数据删除句法

DELETE FROM<基本表名>[WHERE条件表达式]

3.3.5 数据更新句法

UPDATE<基本表名>SET列名=值表达式[,列名=值表达式…][WHERE条件表达式]

4 结束语

现在大部分数据库都可以通过SQL语句进行相应操作,因此,SQL语句的作用是必不可少的。本文对SQL定义、查询、操作语句进行了简要介绍。看起来操作很方便,但在实际使用中根据需求的不同,可能要复杂的多。要掌握好SQL语句,还需要进一步加强理解和实践。

参考文献

[1]徐悦竹,张泽宝.数据库系统概论知识要点与习题解析.[M].哈尔滨:哈尔滨工程大学出版社,2007.

[2]王珊,萨师煊.数据库系统概论.[M].北京:高等教育出版社,2006.

篇4:常用简单sql语句

关键词:T-SQL语句;数据库;数据表

SQL,即Structured Query Language,结构化查询语句,是关系型数据库的标准。Oracle使用的SQL被称为PL-SQL,而SQL Server使用的则被称为T-SQ(Transact-SQL)。T-SQL语言包括数据定义语言、数据控制语言和数据操纵语言等三种类型。

一、T-SQL语言简介

1.数据定义语言

数据定义语言(Data Definition Language,DDL)用于创建数据库和数据库对象,为数据库操作提供对象。常用的数据定义语言有:

(1)CREATE TABLE,用于建立数据表;

(2)DROP TABLE,用于删除数据表;

(3)ALTER TABLE,用于修改数据表。

例如,使用T-SQL语言,在StuSelDB数据库中创建名为CourseType的表,该表包含CourseTypeID、CourseTypeName两列,可以利用以下命令实现:

USE StuSelDB

CREATE TABLE CourseType

(CourseTypeID int NOT NULL,

CourseTypeName varchar(10) NOT NULL)

GO

2.数据控制语言

数据控制语言(Data Control Language ,DCL)用来执行有关安全管理的操作,包括对表和视图的访问权限及对数据库操作事务的控制。

GRANT:将指定的安全对象的权限授予相应的主体。

DENY:拒绝授予主体权限,并且防止主体通过组或角色成品继承权限。

REVOKE:删除授予的权限。

例如,将CourseType表的查询权限授予public角色,可以利用以下命令实现:

GRANT SELECT ON CourseType TO public

GO

3.数据操纵语言

数据操纵语言(Data Manipulation Language,DML)用于操纵表和视图中的数据。其中,

SELECT命令,用于查询;

INSERT命令,用于插入;

DELETE命令,用于删除;

UPDATE命令,用于更新。

例如,查询CourseType表中CourseTypeID和CourseTypeName两列数据,编辑两行数据,可以利用以下命令实现:

SELECT CourseTypeID,CourseTypeName

FROM CourseType

二、使用T-SQL操作数据库

1.创建数据库

命令格式为:

CREATE DATABASE database_name

[

ON[PRIMARY]

[(NAME=logical_name,FILENAME=path

[,SIZE=database_size]

[,MAXSIZE=database_maxsize]

[,FILEGROWTH=growth_increment])

[,FILEGROUP filegroup_name

[(NAME=datafile_name FILENAME=path

[,SIZE=datafile_size]

[,MAXSIZE=datafile_maxsize]

[,FILEGROWTH=growth_increment])]]

]

[LOGON

[(NAME=logfile_name FILENAME=path

[,SIZE=datafile_size]

[,MAXSIZE=database_maxsize]

[,FILEGROWTH=growth_increment])]

]

例如,创建名为StuSelDBXL的数据库,该数据库包含主数据文件、辅助数据文件和日志文件各一个,均放在“D:\DATA”目录下。

CREATE DATABASE StuSelDBXL

ON PRIMARY

(NAME=StuSelDBXL,

FILENAME='D:\DATA\StuSelDBXL.mdf',

SIZE=5MB,

MAXSIZE=200MB,

FILEGROWTH=1MB),

(NAME=StuSelDBXL1,

FILENAME='D:\DATA\StuSelDBXL1.ndf',

SIZE=3MB,

MAXSIZE=UNLIMITED,

FILEGROWTH=1MB )

LOG ON

(NAME=StuSelDBXL_log,

FILENAME='D:\DATA\StuSelDBXL_log.ldf',

SIZE=1MB,

MAXSIZE=20MB,

FILEGROWTH=10% )

GO

2.修改数据库

命令格式为:

ALTER DATABASE databasename

{ADD FILE…

REMOVE FILE…

MODIFY FILE…

MODIFY NAME=…

ADD FILEGROUP…

REMOVE FILEGROUP…

MODIFY FILEGROUP…

}

例如,修改刚才创建的数据库,将主数据文件的MAXSIZE改为UNLIMITED,删除辅助数据文件StuSelDBXL1.ndf。

ALTER DATABASE StuSelDBXL

MODIFY FILE

(NAME=StuSelDBXL,

MAXSIZE=UNLIMITED)

GO

ALTER DATABASE StuSelDBXL

REMOVE FILE StuSelDBXL1

GO

3.使用T-SQL创建表

命令格式为:

Createtable [database_name.[ower].|owner.]table_name

({|

|column_nameascomputed_column_expression}[,…n])

[on{filegroup|DEFAULT}]

[TEXTIMAGE_ON{filegroup|DEFAULT}]

::={column_namedata_type}

[[DEFAULT constant_expression]|[INDENTITY[(seed,increment)]]]

[][……]

例如,在StuSelDB数据库中,创建一个院系信息表DepInfo。

USE StuSelDB

CREATE TABLE DepInfo

(DepInfoID int PRIMARY KEY IDENTITY(1,1),

DepInfoCode char(3) NOT NULL,

DepInfoName varchar(50) NOT NULL,

DepInfoPreOfTech int DEFAULT 0,

DepInfoAssTech int DEFAULT 0

GO

4.使用T-SQL修改表

命令格式为:

ALTER TABLE table_name

{ALTER COLUM column_name

ADD…

DROP…

}

例如,向表中添加列。向ClassInfo表中添加名为Ctest的列,数据类型为int,不为空。

ALTER TABLE ClassInfo

ADD Ctest int NOT NULL

GO

SQL版本也经历了SQL-89、SQL-92、SQL-99、SQL-2003及SQL-2006。T-SQL具有编程结构简单、直观简洁、易学易用等特点,因而受到用户的喜爱。

参考文献:

[1]李锡辉.SQL Server2008数据库案例教程[M].北京:清华大学出版社,2011.

[2]张素青.SQL Server2008数据库应用技术[M].北京:人民邮电出版社,2013.

[3]韩永印.SQL Server2008 数据库项目教程[M].北京:人民邮电出版社,2013.

[4]王德永.数据库原理与应用SQL Server版项目式[M].北京:人民邮电出版社,2011.

[5]徐守祥.数据库应用技术—SQL Server2005篇(第2版)[M].北京:人民邮电出版社,2008.

篇5:常用简单sql语句

随着信息技术的不断发展,被审计对象的财务和业务系统也大多使用了专用软件进行计算机管理,如果暂不考虑计算机软硬件本身的系统审计,那么我们所面对的审计也就分为了以财务账套为基础的账套式审计模式和直接对数据本身(包括财务数据和业务数据)审计的数据式审计模式。但不论是何种审计模式,最根本的还是要使用计算机语句对具体问题进行查询分析,即通过数据库的SQL查询语句对数据库中的数据表进行查询分析。

虽然SQL语句的功能很多,且不同数据库环境下的具体使用也会因为所遵循的官方标准不同而略有差别,但多数情况下的使用是相通的。同时因为审计工作的特点,所使用的SQL语句也多是对数据的查询,一般并不会包括对原始数据的增加、删除、修改等操作,所以在计算机审计中重点需要掌握的内容就是灵活利用SQL语句的查询功能。实际审计工作当中,在数据审计模式下我们所常用的是如下所示的语句,也是从实际审计工作中收集出具有代表性的语句,并且所有语句都基于Access数据库,在AO现场审计实施系统中可正常使用。

一、对单个表的条件查询,用where指定查询条件,也有不使用where的情况,多用于对原始表的统计、分类等

该类情况下SQL语句的语法是“select * from 表名 where 条件”。可以指定单个条件或多个条件,并可配合其他函数或关键字使用,常用到的类型有如下几类。

(一)对单个条件的简单查询:

select * from 存款表 where 金额>=100000;该情况的使用较为简单,适用于任何单条件查询。

(二)对多个条件的查询,各条件间可能是and或or的关系:

select * from 存款表 where金额>=100000 and 存款时间 >= #2006-1-1#;

该情况常用于对多个条件的查询,根据关键字and或or来决定是同时满足所有条件还是仅满足某些条件。

(三)对多个条件的查询,得到符合条件的某字段的合计值:

select sum(金额)from 存款表 where金额>=100000 and 存款时间 >= #2006-1-1# and 存款时间<= #2006-12-31# order by 金额 desc, 存款时间 asc;

该情况一般用于统计某种条件下的合计值,常用于对某种情况下的总金额情况进行了解。

(四)用集函数按条件查询:

select count(*)from 凭证表 where 金额>=100000;select max(发生金额)from 存款表;select avg(发生金额)from 存款表;

该情况类似于上面求和函数的使用,可根据具体需求进行应用。

(五)对关键字的内容进行查询:

select * from 凭证表 where 摘要 like „%招待费%‟;该情况较为常用,查询包含某些关键字的所有记录,也可结合关键字and或or等查询多个条件。

(六)查询内容是否包含在给定的范围内:

select * from 科目代码表 where 科目代码 in(„101‟,‟102‟);该情况用于所关心的字段包含内容类别较少的情况,常用在已基本确定查询范围之后。当所关心内容类别较多时可使用下面将提到的两张表的嵌套查询。

(七)对某个字段进行分组,查询各字段属性分别对应的发生次数,并按发生次数进行排序:

select 款项代码, count(款项代码)as 次数from大额现金支取表 group by 款项代码 order by count(款项代码)desc;该情况常用于对某个所关心字段的分类统计,得出每个类别所发生的次数,并可按发生次数进行排序。

(八)按某个字段的长度进行分类并进行排序:

select len(科目代码)as 发生次数from 科目代码表 group by len(科目代码)order by len(科目代码)desc;

该情况用于了解某字段的长度分组情况,可对所取得的原始数据进行验证,以证实原始数据的规范性或找出不规范情况的问题所在。

(九)分组查询,group与having联用:

select 客户号,count(*)as 发生次数

from 存款表

where 发生金额>=100000 group by 客户号 having count(*)>1;

该类语句常用于要列出所关心某字段的某一个或几个条件限制下发生次数超出某范围的情况。如查询发生多次(即同一关键字发生的记录数大于1)大额存取的客户号及其存取次数,查询结果按客户号分组。

以上各类对单个表的查询结果并未直接存储成新表,不利于对查询结果的进一步分析利用,我们可以使用“select * into 新表名 from 表名 where 条件”这种语句格式把查询结果保存成新表,如

select * into 大额存款发生情况表 from 存款表 where 金额>=100000;

二、对多个表的条件查询,一般需根据各表的相应关键字进行连接

这种情况下必须对各表的对应关键字进行关联,一般情况下是对两张表的关联查询,当有更多张表要操作时可以每次对两张表操作后再和剩余的表关联操作,也可以扩展SQL语句同时对两个以上的表操作,以下只列出对两张表操作的情况。

(一)两张结构相同的表合并并生成新表,使用关键字union进行联合查询:

select * into 中间表 from

(select * from 原始表1 union select * from 原始表2);该情况常用于对多个原始表的整理以生成中间表,便于后续的查询工作。如合并采集到的原始数据,将原本分月存储的数据表全并成分年度存储的数据表。

(二)两张表的连接,生成新的中间表:

select a.*,b.客户名称into 含客户名称的现金支取表 from现金支取表 as a, 客户基本信息表 as b where a.款项代码=b.款项代码;使用该类语句的前提是两张表存在相关联的关键字,常用于一张表根据两表的连接关键字引入另一张表的某些字段,为后续的查询准备好中间表。其中使用别名可以简化SQL语句的输入。如财务数据中采集到的凭证表是两张表时,可连接两表引入摘要字段等。

(三)两张表的关联查询,可加入多个条件:

select a.*,b.科目代码 from 对公活期存款明细表 as a, 活期存款账户动态表 as b where a.款项代码=b.款项代码 and 科目代码 like ‟201%‟;

该情况可看作对两张表连接的扩展,即根据where所限定的条件来对两张表关联查询。

(四)两张表的嵌套查询,两层查询间要使用关键字in:

select * into频繁发生大额现金支取

from大额现金支取

where 交易金额>=100000 and 款项代码 in(select 款项代码

from款项代码发生次数_大额现金支取

where 次数 >= 10)

order by 款项代码,交易金额,记账日期;

这种情况也可理解为简单查询,不同的是其中where所指定的某个条件是由另一张表的又一个查询所指定的,与单表查询的语句

select * from 科目代码表 where 科目代码 in(„101‟,‟102‟);进行对比后发现,可将两张表的嵌套查询看作如上语句的扩展。如利用大额现金支取表和大额现金支取的款项代码发生次数表查询交易金额大且发生次数多的情况。再比如利用贷款表和股东表查询贷款表中含股东贷款的情况。

(五)多表的连接操作

多表连接可分为内连接、外连接、自身连接、交叉连接。其中内连接又分为等值连接、不等连接和自然连接,外连接又分为左连接、右连接和全连接。实际审计工作当中所用到的多是内连接与外连接,较少用到自身连接与交叉连接。多表的连接使用需根据具体情况而定,下面列出部分示例。

1.内连接的等值连接:

select * from 存款表 as a inner join 客户信息表 as b on a.款项代码=b.款项代码;

以上语句用于列出存款表和客户信息表中款项代码相同的记录。

2.外连接的左连接。

select * from 存款表 as a left join 客户信息表 as b on a.款项代码=b.款项代码;左连接的特点是显示全部左边表中的所有项目,即使其中有些项中的数据未填写完全。右连接与此类似,其特点是显示全部右边表中的所有项目,甚至是左边表中没有和它匹配的记录。

篇6:SQL查询语句

第一次:查询(显示)、条件、排序、空记录

第二次:通配符、生成表、文件(记事本)、数组、临时表,数学函数、分组、嵌套查询

第三次:插入记录、删除记录、更新记录 第四次:超连接、新建(打开)数据库、表的建立、表的删除、第五次 表结构的修改,添加记录 显示同张芳同一天出生的学生的信息 格式:

1、查询(显示)记录

显示所有男学生的学号,姓名,性别 区分:字段、条件、表名

Select 字段名列表(*)from 表名; where 条件表达式;

into table(dbf)文件名;

into cursor 临时表名;

into array 数组名;

to file 文件名;

order by 字段名列表(asc desc);

group by 字段名 having 条件;

显示所有大于平均分的学生的学号、姓名 显示同E4挣同样工资的职工信息

Select * from 职工 where 工资=(select 工资 from 职工 where 职工号=”E4”)职工(仓库号C(10),职工号 C(10),工资 N(10,2))

显示所有工资大于1500的员工的仓库号、职工号及所在的城市

2、插入记录

Insert into 表名(字段名列表)values(记录值)

3、删除记录

Delete from 表名 where 条件

4、更新记录

Update 表名 set 字段名=记录值; Where 条件

5、表的删除

drop table 表名

6、表的建立

create table 表名(字段名 数据类型(宽度))

7、表结构的修改select * from 职工where 职工号!=“E4” AND 工资=(select 工资 from 职工 where 职工号=“E4”)

alter table 表名

1)增加字段

alter table student add 身份证号 c(10)

2)删除字段

alter table student drop colum 身份证号

3)修改字段名

alter table student rename colum 出生日期 to 出生年月

4)增加字段有效性规则

alter table student alter 成绩 set check 成绩>=0 and 成绩<=100;

error “成绩输入错误,成绩应该在0-100之间”

5)删除字段有效性规则

alter table student alter 成绩 drop check 注意:

以上题目中用到的 SQL语句粘贴到计事本文件XY.TXT中(每行一条语句)。对两个表操作的方法:

1)同时打开两个表

select 仓库.仓库号,城市,职工号,工资 from 仓库,职工;

where 职工.仓库号=仓库.仓库号 and 工资=1250

2)超连接(内连接、左连接、右连接、全连

接)

内连接:只显示符合条件的记录

左连接:显示符合条件的记录及第一个表中不符合条件的记录

右连接:显示符合条件的记录及第二个表中不符合条件的记录

全连接:显示符合条件的记录及第一、二个表中不符合条件的记录

成绩表(score)

学号姓名课程名成绩 2001张三计算机10 2003张四英语20 2001张三语言30 2005张三数据40 2003张四计算机50

Select sum(成绩)from score group by 学号

Select sum(成绩)from score group by 课程名

select 字段名列表(*)from 表名;where 条件;

order by 字段名列表 asc|desc;

into table(dbf)表名;

into array 数组名;

to file 文件名;

into cursor 临时表名

题目练习

实现以下功能:在考生文件夹下,打开“陶的数据库”的数据库,并利用SQL语句在该数据库中新建一个表:gongzi(职工号 c(4),实发工资 n(7,0)),将zhigong表中基本工资大于1330(含1330)的记录存储在gongzi表中,其中实发工资为:基本工资+加班费(白天20,晚上30),最后将所有的SQL语句保存到考生目录下的sqlanswer.txt文件中(自行建立,一行一条语句)

open database 陶的数据库

create table gongzi(职工号 c(4),基本工资 n(7,2))

select 职工号,基本工资+白班*20+晚班*30 from zhigong;where 基本工资>1350 into array xy

篇7:SQL语句练习

(1)按课本第99-100页表结构要求建立以上六张表。

(2)在学生表中插入一个学生记录:(”99082901”,”程丽”,”女”,1981-2-10,”群众”,”200704”)。

(3)使选修CZ004号课的同学的成绩为NULL值。

(4)为课程表加一”教师”列。

(5)修改课程表,使“肖贵”老师教CJ001号课。

(6)列出“王勇”老师所授课程的课号和课名。

(7)列出年龄不小于20的男生的学号和姓名。

(8)统计学生所选课程的门数。

(9)列出选修CJ001号课的学生的平均年龄。

(10)列出选修“计算机基础”课的学生的平均成绩、最高分和最低分。

(11)列出所有姓“李”的同学的姓名、年龄和性别。

(12)列出成绩表中成绩为空值的学生的姓名、课号。

(13)列出年龄大于女生平均年龄的男生的姓名和年龄。

(14)删除成绩表中无成绩的记录。

(15)把低于CJ001号课平均成绩的所有同学的所有课程的成绩提高5分。

(16)按学号升序,成绩降序列出每个同学的选课情况(包括姓名、课名、成绩)。

(17)按课号和成绩降序列出每门课的选课情况包括课名、姓名、成绩。

(18)按成绩降序列出每个同学的姓名、总成绩。

(19)求出学习全部课程的所有同学的名单。

(20)列出平均成绩大与80分同学的学号和平均成绩,按平均成绩降序排列。

(25)查询平均成绩排在前5名的学生姓名及平均成绩。

(26)统计选修课程在3门以上(含3门)的学生的学号、姓名和平均成绩。

(27)查询学生年龄超过21岁的学生信息。

(28)列出所有姓“李”的同学的学号、姓名、年龄和性别。

篇8:常用简单sql语句

ADO.NET对象模型中有5个主要组件, 分别是Connection对象、Command对象、DataAdapter对象、DataSet对象和DataReader对象, 主要使用这几个对象进行数据库的操作。

1.1 远程数据库的连接

在C#语言中, 有专门的命名空间System.Data.SqlClient给SQL Server的.NET Framework 数据提供程序。声明using System.Data.SqlClient后, 对该命名空间下的SqlConnection类, 即Connection对象的合理使用, 就可以对SQL数据库进行远程连接。部分代码如下:

private void buttonConnection_Click (object sender, EventArgs e)

{ Conn con = new Conn (textBoxIP.Text, textBoxDbName.Text, textBoxDbUser.Text, textBoxKey.Text) ; //实例化Conn

SqlConnection sqlConnection = con.creatConn () ;

…………

}

这里的Conn () 是根据C#语言面向对象的特点编写的Conn类中构造函数, 该类还有有creatConn () 这个方法, 继承SqlConnection类。如下所示:

连接数据库需要的4个参数依次是IP地址 (在局域网中可以是电脑名称) 、数据库名称、数据库登陆ID (一般是sa即system administrator的缩写) 和数据库登陆密码。如果在软件中频繁用到连接, 可以用C#单键模式固定和保存4个参数以提高软件效率。如果是固定IP服务器, 可以将含有参数的连接语句写入XML引用, 使用连接时调用即可。

1.2 数据库的创建

在网上阅卷软件中使用到一个创建数据库的功能, 该功能用于软件使用者命名并创建一个表, 其中用到了Command对象, 具体来说是SqlCommand类。同样要声明命名空间System.Data.SqlClient, 只要以后用到SQL相关的组件对象都要声明此命名空间, 后文不再累述。部分函数代码如下:

private void addScore_Add (object sender, EventArgs e)

本例中, 以函数重载形式设定SqlCommand的两个参数, 一个是此例的SQL语句, 一个是连接语句, 再用SqlCommand实例中的ExevuteNonQuery () 方法执行, 就可以创建一个数据表。

1.3 数据库的插入、选择、更新和删除

前文提到“create table”, 它是SQL中的一种DDL (Data Definition Language) 语句, 此外还有DML (Data Manipulation Language) 和DCL (Data Control Language) 语句。而4种基本的DML操作, 既INSERT、SELECT、UPDATE和DELETE, 分别是插入数据、选择数据 (查看) 、更新数据和删除数据。需要提出的是, DML不是LINQ to ADO.NET中的技术操作语句, 它们有时候可以利用DataAdapter对象和DataSet对象写在一个算法里, 比如用DML将数据从数据库中提出, 再由LINQ对数据进行筛选, 形成高效的业务逻辑层, 但他们在语法上和数据对象上是不一样的。下面给出部分代码进行讨论。

1.3.1 INSERT语句

private void insert (string ChoosedTable)

{

SqlCommand SCD = new SqlCommand ("insert into [" + ChoosedTable + "] (学号) values (0) ", sqlConnection) ; //创建实例, 并确定SQL操作语句

SCD.ExecuteNonQuery () ;//执行SCD实例中的SQL操作

}

在连接数据库并打开连接后, 可用上面给出的语句对指定的表插入值, 其中sqlConnection是连接方法, 参看前文给出的代码。SQL语句指的是向由控件选择的ChoosedTable表中的学号列插入0这个值, 然后由ExecuteNonQuery () 执行。

1.3.2 SELECT的语句

private void select (string ChoosedTable)

{

DataTable dataTable = new DataTable () ;//创建DataTable的实例

SqlDataAdapter dataAdapter = new SqlDataAdapter () ;//创建SqlDataAdapter的实例

SqlCommand SCD1 = new SqlCommand ("select * from [" + ChoosedTable + "]", sqlConnection) ; //创建实例, 并确定SQL操作语句

dataAdapter.SelectCommand = SCD1; //执行SQL, 将表的内容写入dataAdapter

dataAdapter.Fill (dataTable) ; //数据不做改变向dataTable中填充

this.dataGridView1.DataSource = dataTable; //数据绑定

}

连接数据库后可用以上代码选择特定的表, 即ChoosedTable, 并将表中的数据在控件dataGridView1中显示出来。SQL语句中的"*"表示表中全部内容, 也可以用列名提取某列。显示数据原理主要用到了DataTable对象、SqlDataAdapter.Fill () 方法以及数据绑定。

1.3.3 UPDATE的代码

private void update (string userKey, string LoginHelper)

{

SqlCommand SCD = new SqlCommand ("update Users set 改卷教师密码 =[" + userKey + "] where 改卷教师姓名= [" + LoginHelper + " ]", sqlConnection) ; //创建实例, 并确定SQL操作语句

SCD.ExecuteNonQuery () ;

}

SQL的语句指的是, 在Users表中, 在列名为改卷教师姓名的LoginHelper这一行处, 更新列名为改卷教师密码的那一行的值为userKey。这句话可用于当用户忘记密码时, 确定的值是某一改卷教师姓名, 可由更高权限的管理者对其密码进行更新, userKey即是更新的密码。

1.3.4 DELETE的代码

private void delete (string TextTable, int GID)

{

SqlCommand SCD = new SqlCommand ("delete from [" + TextTable + "] where ID=[" + GID + "]", sqlConnection) ; //创建实例, 并确定SQL操作语句

SCD.ExecuteNonQuery () ;

}

SQL语句指的是删除名字为TextTable的表中, 列名为ID、行值为GID的那一行。

2 控件dataGridView的更新与条件查询

2.1 dataGridView的更新

控件dataGridView是数据库操作中经常用到的控件, 可以实现数据的显示和批量更新。显示在1.3.2 SELECT的语句中已经说明。该功能实现主要用到SqlDataAdapter类中Update () 方法, 它可与SqlCommandBuilder类合用, 来为指定的DataTable中每个已插入、已更新或已删除的行调用相应的INSERT、UPDATE或DELETE语句。下面的代码是批量更新的代码。

private void buttonSave_Click (object sender, EventArgs e)

{

this.dataGridView1.EndEdit () ;//停止编辑

DataTable dataTable = new DataTable () ;//创建DataTable的实例

SqlDataAdapter dataAdapter = new SqlDataAdapter () ;//创建SqlDataAdapter的实例

this.dataGridView1.DataSource = dataTable; //数据绑定

SqlCommandBuilder SCB = new SqlCommandBuilder (dataAdapter) ; //创建SqlCommandBuilder的实例

dataAdapter.Update (dataTable) ; //上传

}

这段代码要在1.3.2 SELECT语句使用之后再使用, 因为select语句选择了数据库中的表, 并绑定了数据源, 否则从逻辑上无法确定dataGridView控件中的数据更改是对数据库的哪一个表进行的更改。

SqlCommadBuilder类在构造时自动生成单表命令, 用于将对DataSet所作的更改与关联的SQL Server数据库的更改相协调。本文给出的代码是以DataTable为例, DataTable与DataSet既有联系又有区别, DataSet中可以包含多个DataTable, 并编辑DataTable之间的关系。

其他控件的数据绑定也可以参照此控件的绑定。

2.2 条件查询语句

在用dataGridView控件查看和更新数据后, 有可能会用到查询语句。它实际上是SELECT语句的类型, 设定了条件然后在控件上显示, 代码如下:

private void buttonQuery_Click (object sender, EventArgs e)

{

DataTable dataTable = new DataTable () ;

SqlDataAdapter dataAdapter = new SqlDataAdapter () ;

using (SqlCommand SCD = new SqlCommand ("select * from [" + ChoosedTable + "] where " + choosedColumn + " " + logic + " " + parameter + "", sqlConnection) ) //使用using () 便于执行完之后断开连接和释放内存

{

dataAdapter.SelectCommand = SCD;

dataAdapter.Fill (dataTable) ;

this.dataGridView1.DataSource = dataTable;

}

}

SQL语句中, where后的参数依次是要查询的列、逻辑关系符号 (大于等于、大于、等于、小于和小于等于) 、逻辑关系条件参数。比如要查询微积分分数大于90的是哪些人, 那么choosedColumn变量传递的是列名“微积分”、logic是符号“>”、parameter是分数“90”, 即可在控件中显示结果。此外, 使用using () 语句在C#中是比较标准规范的语句, 在此使用有在using过程结束后断开连接释放内存等作用。其他说明在上文已提过, 在此不赘述。

3 存储过程

存储过程是一组具有特定逻辑功能的SQL语句集合, 是数据库设计的一个很重要的对象, 适当地使用存储过程优点有很多, 可以精简代码, 提高数据安全性等。

下面是将pictureBox控件中的图片更新到特定数据表中的代码。图片数据已做二进制流处理。

private void select (string ChoosedTable)

{

string sql = "update [" + theteacherName + "] SET ImgField=@Photo where ID = '" + GID + "' "; //SQL语句。

SqlCommand dbCmd = new SqlCommand (sql, sqlConnection) ; //实例SqlCommand, sqlConnection是赋值好的连接语句

dbCmd.CommandType = CommandType.Text; //设定类型

SqlParameter parameter = new SqlParameter ("@Photo", SqlDbType.Image, int.MaxValue) ; //设定存储参数以及相关类型和长度, 是一种SqlParameter的重载形式

parameter.Value = ImageData; //ImageDate是已处理过的图片二进制流, 这里省略处理代码

dbCmd.Parameters.Add (parameter) ; //添加参数命令

dbCmd.ExecuteNonQuery () ;//执行存储添加命令

}

这是一个简单的存储过程, 在"//"后已经将语句进行了必要的说明。@Parameter是过程中的参数, 使用该符号作为第一个字符来确定指定参数的名称。SQL语句表示将theteacherName所传递过来的参数作为需要更新的表名, 更新在该表行数为GID参数 (该参数在ID这一列) 所确定的ImgField列处的值。如图1所示。

图1表示使用前文给出的存储过程代码, 当ID列中GID参数为3时, 更新的是ImgField列阴影处的值。

摘要:将常用到的、针对SQL数据库操作的C#语句进行汇集和讨论, 便于相关人员参考。基于.Net平台下某软件的开发, 测试这些代码的实用性和延伸性。实践证明, 给出的代码可以成功地操作SQL数据库。测试表明, 代码可结合具体的解决方案进行合理更改并使用。

关键词:SQL数据库,C#语言,数据库操作,代码

参考文献

[1]梁立新.项目实践精解:C#核心技术应用开发[M].北京:电子工业出版社, 2009.

[2]孙继磊, 刘亮亮.精通Visual C#2008-语言基础、数据库系统开发、Web开发[M].北京:人民邮电出版社, 2009.

[3]张跃廷, 王小科, 张宏宇.C#程序开发范例宝典[M].北京:人民邮电出版社, 2007.

[4]赵会东, 王小科, 王军.C#开发之道[M].北京:电子工业出版社, 2011.

[5]王秀英.SQL Server2005实用教程[M].北京:清华大学出版社, 2010.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【常用简单sql语句】相关文章:

常用简单sql语句07-31

常用sql语句范文06-06

sql常用语句范文06-06

常用的sql语句06-21

常用经典sql语句07-31

经典常用sql语句07-31

sql常用语句一览07-31

vf常用sql语句07-31

vf常用sql语句大全06-03

英语常用口语简单句05-13

上一篇:互联网论文最后总结下一篇:稳定员工情况汇报