SQL语句从大到小排序
- 格式:doc
- 大小:17.50 KB
- 文档页数:5
sql常用语句与解释(1)数据记录筛选:sql=select * from 数据表 where 字段名=字段值 order by 字段名 [desc]//从数据表中读取“字段名=字段值”的所有字段并根据字段名排序【倒序】sql=select * from 数据表where 字段名 like %字段值% order by 字段名 [desc]//从数据表中读取“字段名中包含字段值”的所有字段并根据字段名排序【倒序】sql=select top10 * from 数据表 where 字段名=字段值 order by 字段名 [desc]//从数据表中读取前10条满足“字段名=字段值”的所有字段并根据字段名排序【倒序】sql=select * from 数据表 where 字段名 in(值1,值2,值3)//从数据表中读取“字段名满足三个值中的一个”的所有字段(2)更新数据记录:sql=update 数据表 set 字段名=字段值 where 条件表达式//更新数据表中满足条件表达式的记录的字段(更新一条字段)sql=update 数据表 set 字段1=值1,字段2=值2……字段n=值n where 条件表达式//更新数据表中满足条件表达式的记录的多个字段(更新多条字段)(3)删除数据记录:sql=delete from 数据表 where 条件表达式 //删除数据表中满足条件表达式的所有记录sql=delete from 数据表 //将数据表所有记录删除(4)添加数据记录:sql=insert into 数据表(字段1,字段2,字段3…) values(值1,值2,值3…)//将值1,值2,值3...插入数据表的字段1,字段2,字段3...sql=insert into 目标数据表 select * from 源数据表//把源数据表的记录添加到目标数据表(5)数据记录统计函数:avg(字段名)//得出一个表格某个字段的平均值count(*|字段名) //对数据行数的统计或对某一字段有值的数据行数统计 max(字段名)//取得一个表格中某字段的最大值min(字段名) //取得一个表格中某字段的最小值sum(字段名)//取得一个表格中某字段的总和引用以上函数的方法:sql=select sum(字段名) as 别名 from 数据表 where 条件表达式 //别名是为了引用的需要setrs=conn.excute(sql)用rs(别名)获取统的计值,其它函数运用同上。
sql语言的三大类语句SQL(Structured Query Language)是一种专门用于管理和操作关系型数据库的语言。
它被广泛应用于从小型企业到大型组织等各种规模的数据库管理系统中。
SQL语言包含了多种类型的语句,但总体上可以分为三大类:数据操纵语言(DML)、数据定义语言(DDL)和数据控制语言(DCL)。
一、数据操纵语言(DML)数据操纵语言主要用于从数据库中检索、插入、更新和删除数据。
下面是一些常见的DML语句:1. SELECT语句:SELECT语句用于从一个或多个表中检索数据。
它允许我们指定要检索的列和查询的条件,以满足特定的需求。
示例:SELECT 列名 FROM 表名 WHERE 条件;2. INSERT语句:INSERT语句用于将新的数据插入到数据库表中。
示例:INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);3. UPDATE语句:UPDATE语句用于更新表中已经存在的数据。
示例:UPDATE 表名 SET 列名 = 值 WHERE 条件;4. DELETE语句:DELETE语句用于从表中删除数据。
示例:DELETE FROM 表名 WHERE 条件;二、数据定义语言(DDL)数据定义语言主要用于创建、修改和删除数据库对象,例如表、视图、索引等。
下面是一些常见的DDL语句:1. CREATE语句:CREATE语句用于创建新的数据库对象,如表、视图和索引。
示例:CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型, ...);2. ALTER语句:ALTER语句用于修改现有的数据库对象,如表结构、列定义等。
示例:ALTER TABLE 表名 ADD 列名数据类型;3. DROP语句:DROP语句用于删除数据库对象。
示例:DROP TABLE 表名;三、数据控制语言(DCL)数据控制语言用于定义数据库的安全性和完整性约束,以及授权和回收用户对数据库对象的访问权限。
ROWNUM:按特定条件查询前N条记录,它总是从1开始查询的。
只能使用=1 , <n , <=n , !=n符号(不能用>)。
--建表create table student (ID char(6), name V ARCHAR2(10));--添加测试记录insert into student values('200001','张一');insert into student values('200002','王二');insert into student values('200003','李三');insert into student values('200004','赵四');第一:rownum :等于某值的查询条件1:使用rownum=1可以查询。
:2:rownum = n(n>1)查不到数据。
因为rownum都是从1开始第二:rownum:大于某值的查询条件使用rownum>2查不出记录,可使用子查询。
子查询中的rownum必须要有别名select * from(select rownum no ,id,name from student) where no>2;NO ID NAME3 200003 李三4 200004 赵四select * from(select rownum,id,name from student)where rownum>2; 未选定行(无法查询)第三:rownum:小于某值的查询条件:例如:rownum<3是能得到两条记录的。
综上几种情况,可能有时候需要查询rownum在某区间的数据,必须使用子查询。
例如要查询rownum 在第二行到第三行之间的数据,包括第二行和第三行数据,那么我们可以写以下语句,先让它返回小于等于3的记录行,然后在主查询中判断新的rownum的别名列大于等于2的记录行。
掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。
练掌握SQL是数据库用户的宝贵财富。
在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。
当你完成这些学习后,显然你已经开始算是精通SQL了。
在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。
DDL 语句对数据库对象如表、列和视进行定义。
它们并不对表中的行进行处理,这是因为DDL 语句并不处理数据库中实际的数据。
这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。
SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。
由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。
在图1中我们给出了一个名为EMPLOYEES的表。
其中的每一行对应一个特定的雇员记录。
请熟悉这张表,我们在后面的例子中将要用到它。
INSERT语句用户可以用INSERT语句将一行记录插入到指定的一个表中。
例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:INSERT INTO EMPLOYEES V ALUES('Smith','John','1980-06-10','Los Angles',16,45000);通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。
这些列按照我们创建表时定义的顺序排列。
在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。
我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。
如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。
sql查询区分大小写1.--区分大小写select * from a where a=’AbCdE’ collate Chinese_PRC_CS_AI--区分大小写select * from a where a=’abCdE’ collate Chinese_PRC_CI_AI--不区分大小写2.如果想让服务器上所有的存储表都区分大小写就需要在安装服务器时设置服务器的排序规则或者运行alter database testgrass collate Chinese_PRC_CS_AI3.如果修改整个服务器的默认排序规则,用Rebuildm.exe重建master库SQL Server\\80\\Tools\\Binn\\rebuildm.exe4.或者图解1).先打开oblog数据库的oblog_user表,右键点击,选设计表2).找到username字段3).然后找到下面的排序规则4).在弹出的对话框中选择区分大小写参考:我们在create table时经常会碰到这样的语句,例如:password nvarchar(10)collate chinese_prc_ci_as null,那它到底是什么意思呢?不妨看看下面:首先,collate是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影。
语法是:collate collation_namecollation_name ::={windows_collation_name}|{sql_collation_name}参数collate_name是应用于表达式、列定义或数据库定义的排序规则的名称。
collation_name 可以只是指定的Windows_collation_name 或SQL_collation_name。
Windows_collation_name 是Windows 排序规则的排序规则名称。
简单基本的sql语句(1) 数据记录筛选:sql="select * from 数据表 where 字段名=字段值 order by 字段名[desc]"sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"sql="select top 10 * from 数据表 where 字段名=字段值 order by 字段名 [desc]"sql="select top 10 * from 数据表 order by 字段名 [desc]"sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"sql="select * from 数据表 where 字段名 between 值1 and 值2"(2) 更新数据记录:sql="update 数据表 set 字段名=字段值 where 条件表达式"sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表 where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)(5) 数据记录统计函数:AVG(字段名) 得出一个表格栏平均值COUNT(*;字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加引用以上函数的方法:sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"set rs=conn.excute(sql)用 rs("别名") 获取统计的值,其它函数运用同上。
ACCESS 数据库常用SQL 语句SELECT 语句指示 Microsoft Jet 数据库引擎从数据库返回一组记录信息。
语法SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [,[table.]field2 [AS alias2] [, ...]]}FROM tableexpression [, ...] [IN externaldatabase][WHERE... ][GROUP BY... ][HAVING... ][ORDER BY... ][WITH OWNERACCESS OPTION]SELECT 语句包含以下部分:部分说明 predicate这些谓词之一:ALL 、DISTINCT 、DISTINCTROW 或 TOP 。
可以使用谓词来限定返回记录的数量。
如果没有指定谓词,默认值为 ALL 。
*指定选择所指定的表的所有字段。
table表的名称,该表包含了其记录被选择的字段。
field1,field2 字段名,这些字段包含了要检索的数据。
如果包括多个字段,将按它们的排列顺序对其进行检索。
alias1, alias2 用作列标题的名称,不是 table 中的原始列名。
tableexpression 其中包含要检索的数据的表的名称。
externaldatabase 如果 tableexpression 中的表不在当前数据库中,则使用该参数指定该数据库名。
说明若要执行此项操作,Microsoft® Jet 数据库引擎会搜索指定的表,并提取出选定的列,再选择出符合条件的列,然后按指定的顺序对得到的行进行排序或分组。
SELECT 语句不会更改数据库中的数据。
SELECT 通常是 SQL 语句中的第一个词。
大多数 SQL 语句是 SELECT 或 SELECT...INTO 语句。
SELECT 语句最简化的语法为:SELECT fields FROM table可以通过星号 (*) 来选择表中所有的字段。
SQL语句大全--语句功能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据-数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表结构CREATE VIEW --创建一个视图DROP VIEW --从数据库中删除视图CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引CREATE PROCEDURE --创建一个存储过程DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域ALTER DOMAIN --改变域定义DROP DOMAIN --从数据库中删除一个域--数据控制GRANT --授予用户访问权限DENY --拒绝用户访问REVOKE --解除用户访问权限--事务控制COMMIT --结束当前事务ROLLBACK --中止当前事务SET TRANSACTION --定义当前事务数据访问特征--程序化SQLDECLARE --为查询设定游标EXPLAN --为查询描述数据访问计划OPEN --检索查询结果打开一个游标FETCH --检索一行查询结果CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句DESCRIBE --描述准备好的查询---局部变量declare @id char(10)--set @id = '10010001'select @id = '10010001'---全局变量---必须以@@开头--IF ELSEdeclare @x int @y int @z intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y'else if @y > @zprint 'y > z'else print 'z > y'--CASEuse panguupdate employeeset e_wage =casewhen job_level = ‟1‟ then e_wage*1.08 when job_level = ‟2‟ then e_wage*1.07 when job_level = ‟3‟ then e_wage*1.06 else e_wage*1.05end--WHILE CONTINUE BREAK declare @x int @y int @c intselect @x = 1 @y=1while @x < 3beginprint @x --打印变量x 的值while @y < 3beginselect @c = 100*@x + @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end--WAITFOR--例等待1 小时2 分零3 秒后才执行SELECT 语句wai tfor delay ‟01:02:03‟select * from employee--例等到晚上11 点零8 分后才执行SELECT 语句waitfor time ‟23:08:00‟select * from employee***SELECT***select *(列名) from table_name(表名) where column_name operator value ex:(宿主)select * from stock_information where stockid = str(nid)stockname = 'str_name'stockname like '% find this %'stockname like '[a-zA-Z]%' --------- ([]指定值的范围)stockname like '[^F-M]%' --------- (^排除指定范围)--------- 只能在使用like关键字的where子句中使用通配符)or stockpath = 'stock_path'or stocknumber < 1000and stockindex = 24not stock*** = 'man'stocknumber between 20 and 100stocknumber in(10,20,30)order by stockid desc(asc) --------- 排序,desc-降序,asc-升序order by 1,2 --------- by列号stockname = (select stockname from stock_information where stockid = 4)--------- 子查询--------- 除非能确保内层select只返回一个行的值,--------- 否则应在外层where子句中用一个in限定符select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name select stockname , "stocknumber" = count(*) from table_name group by stockname--------- group by 将表按行分组,指定列中有相同的值having count(*) = 2 --------- having选定指定的组select *from table1, table2where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示table1.id =* table2.id -------- 右外部连接select stockname from table1union [all] ----- union合并查询结果集,all-保留重复行select stockname from table2***insert***insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = nullStocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3truncate table_name ----------- 删除表中所有行,仍保持表的完整性drop table table_name --------------- 完全删除表***alter table*** --- 修改数据库表结构alter table database.owner.table_name add column_name char(2) null .....sp_help table_name ---- 显示表已有特征create table table_name (name char(20), age smallint, lname varchar(30))insert into table_name select ......... ----- 实现删除列的方法(创建新表)alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束***function(/*常用函数*/)***----统计函数----AVG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use panguselect e_namefrom employeewhere e_wage =(select max(e_wage)from employee)--STDEV()--STDEV()函数返回表达式中所有数据的标准差--STDEVP()--STDEVP()函数返回总体标准差--VAR()--VAR()函数返回表达式中所有值的统计变异数--VARP()--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expression) --返回以弧度表示的角的正弦COS(float_expression) --返回以弧度表示的角的余弦TAN(float_expression) --返回以弧度表示的角的正切COT(float_expression) --返回以弧度表示的角的余切/***反三角函数***/ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expression1,float_expression2)--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型EXP(float_expression) --返回表达式的指数值LOG(float_expression) --返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10 为底的对数值SQRT(float_expression) --返回表达式的平方根/***取近似值函数***/CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型PI() --返回值为π 即3.1415926535897936RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数----字符串函数----ASCII() --函数返回字符表达式最左端字符的ASCII 码值CHAR() --函数用于将ASCII 码转换为字符--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值LOWER() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--0 两个SOUNDEX 函数返回值的第一个字符不同--1 两个SOUNDEX 函数返回值的第一个字符相同--2 两个SOUNDEX 函数返回值的第一二个字符相同--3 两个SOUNDEX 函数返回值的第一二三个字符相同--4 两个SOUNDEX 函数返回值完全相同QUOTENAME() --函数返回被特定字符括起来的字符串/*select quotename('abc', '{') quotename('abc')运行结果如下----------------------------------{{abc} [abc]*/REPLICATE() --函数返回一个重复character_expression 指定次数的字符串/*select replicate('abc', 3) replicate( 'abc', -2)运行结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------- -----------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST() 函数语法如下CAST() (<expression> AS <data_ type>[ length ])CONVERT() 函数语法如下CONVERT() (<data_ type>[ length ], <expression> [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------ ------------199 Jan 15 2000----日期函数----DAY() --函数返回date_expression 中的日期值MONTH() --函数返回date_expression 中的月份值YEAR() --函数返回date_expression 中的年份值DATEADD(<datepart> ,<number> ,<date>)--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DATEDIFF(<datepart> ,<number> ,<date>)--函数返回两个指定日期在datepart 方面的不同之处DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名DATALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY(<data_type>[, seed increment]) [AS column_name])--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(<expression1>, <expression2>)--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值sql中的保留字action add aggregate allalter after and asasc avg avg_row_length auto_incrementbetween bigint bit binaryblob bool both bycascade case char characterchange check checksum columncolumns comment constraint createcross current_date current_time current_timestampdata database databases datedatetime day day_hour day_minuteday_second dayofmonth dayofweek dayofyeardec decimal default delayeddelay_key_write delete desc describedistinct distinctrow double dropend else escape escapedenclosed enum explain existsfields file first floatfloat4 float8 flush foreignfrom for full functionglobal grant grants grouphaving heap high_priority hourhour_minute hour_second hosts identifiedignore in index infileinner insert insert_id intinteger interval int1 int2int3 int4 int8 intoif is isam joinkey keys kill last_insert_idleading left length likelines limit load locallock logs long longbloblongtext low_priority max max_rowsmatch mediumblob mediumtext mediumintmiddleint min_rows minute minute_secondmodify month monthname myisamnatural numeric no notnull on optimize optionoptionally or order outeroutfile pack_keys partial passwordprecision primary procedure processprocesslist privileges read realreferences reload regexp renamereplace restrict returns revokerlike row rows secondselect set show shutdownsmallint soname sql_big_tables sql_big_selectssql_low_priority_updates sql_log_off sql_log_update sql_select_limit sql_small_result sql_big_result sql_warnings straight_joinstarting status string tabletables temporary terminated textthen time timestamp tinyblobtinytext tinyint trailing totype use using uniqueunlock unsigned update usagevalues varchar variables varyingvarbinary with write whenwhere year year_month zerofill查看全文常用SQL命令和ASP编程在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL 语句,如下:SQL常用命令使用方法:(1) 数据记录筛选:sql="select * from 数据表where 字段名=字段值order by 字段名[desc]"sql="select * from 数据表where 字段名like %字段值% order by 字段名[desc]"sql="select top 10 * from 数据表where 字段名order by 字段名[desc]"sql="select * from 数据表where 字段名in (值1,值2,值3)"sql="select * from 数据表where 字段名between 值1 and 值2"(2) 更新数据记录:sql="update 数据表set 字段名=字段值where 条件表达式"sql="update 数据表set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表(字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"sql="insert into 目标数据表select * from 源数据表" (把源数据表的记录添加到目标数据表)(5) 数据记录统计函数:AVG(字段名) 得出一个表格栏平均值COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加引用以上函数的方法:sql="select sum(字段名) as 别名from 数据表where 条件表达式"set rs=conn.excute(sql)用rs("别名") 获取统的计值,其它函数运用同上。
SQL命令全集一、SQL命令介绍SQL是Structured Quevy Language(结构化查询语言)的缩写。
SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。
在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。
SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
二、SQL数据库数据体系结构SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。
在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。
名称对称如^00100009a^:三、SQL语言的组成在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。
2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。
3.一个表或者是一个基本表或者是一个视图。
基本表是实际存列名为用户自定义的易于理解的名称,列名中不能使用空格;数据类型为上面所介绍的几种标准数据类型;[NOT NULL/NULL]指出该列是否允许存放空值,SQL语言支持空值的概念,所谓空值是“不知道”或“无意义”的值,值得注意的是数据“0”和空格都不是空值,系统一般默认允许为空值,所以当不允许为空值时,必须明确使用NOT NULL;[,UNIQUE]将列按照其规定的顺序进行排列,如不指定排列顺序,则按列的定义顺序排列;[PRIMARY KEY]用于指定表的主键(即关系中的主属性),实体完整性约束条件规定:主键必须是唯一的,非空的;[,FOREIGN KEY (列名[,列名]......) REFERENCE<表名>(列名[,列名]......)]是用于指定外键参照完整性约束条件,FOREIGN KEY指定相关列为外键,其参照对象为另外一个表的指定列,即使用REFERENCE引入的外表中的列,当不指定外表列名时,系统将默认其列名与参照键的列名相同,要注意的是:使用外键时必须使用参照,另外数据的外键参照完整性约束条件规定:外键的值要么与相对应的主键相同,要么为空值(具体由实现系统不同而异)[,CHECK]用于使用指定条件对存入表中的数据进行检查,以确定其合法性,提高数据的安全性。
根据下面三个关系模式完成下面习题:答案已设为白色需要就全选设为黑色学生表student 第一章课件:编写基本的sql语句。
1.查询所有学生情况。
3.查询所有学生的姓名,性别以及年龄。
5.查询所有学生10年后的年龄。
7.查询所有课程(列名用中文显示)。
9.查看竟有那些学生选课(重复学号显示一次)。
11.显示课程表的边结构。
第二章课件:约束和排序数据。
01.查询计算机系的所有学生的姓名和年龄。
02.查询体育课的学分。
03.查询年龄小于18的学生。
04.查询年龄大于20的学生。
05.查询年龄介于18和20之间的学生(包括18和20)。
06.查询年龄不在18和20之间的学生。
07.查询年龄为18,20,22的学生。
08.查询年龄不是18,20,22的学生。
09.查询所有姓张的学生。
10.查询所有没有先行课的课程。
11.查询有先行课的课程。
12.在计算机系中找,姓张的男生。
13.在计算机系中找,姓张的或者姓李的男生并且按照年龄从大到小排序。
14.查询所有学生信息,显示结果先按系从大到小排序,再按年龄排序。
第三章课件:多表查询
1.查询每个学生(学号)选了哪门课(课程)得了多少分 2.查询每个学生(姓名)选了哪门课(课程号)得了多少分
3.查询每个学生(姓名)选了哪门课(课程名)得了多少分
4.查询一下王林选可哪门课得了多少分。
5.查询每个学生的成绩类别(优、良还是及格)。
6.查询哪个学生没有选课(用外查询)。
7.查询哪门课没有人选(用外查询)。
第四章课件:组函数
1.查询一下所有课程的平均分,最高分,最低分和总分数。
2.查询一下有多少个学生参加选课。
3.查询一下计算机系有多少人过20岁。
4.统计一下计算机系的男生多少人。
5.查询一下每个学生考试的最高分和最低分。
6.查询每门课(课程号)的最高分和最底分。
7.查询每门课(课程名)的最高分和最底分。
8.查询计算机系中男生多少人,女生多少人。
9,查询人数在三百人以上的系。
10.查询选修人数在三人(包括三人)的课程(课程名)。
11.查询各科考试成绩最低的同学。
12.查询考试成绩小于所选课程平均分的人。
(有能力的同学选做)
第五章课件:子查询
1.查询所有比王林大的同学信息。
2.查询和王林同在一个系的所有学生信息。
3.查询一下谁的成绩(所有成绩)最低。
4.查询一下每门课成绩最底的同学(要姓名,和成绩)。
5.查询一下哪个学生没有选课(用子查询)。
6.查询一下哪门课没有人选(用子查询)。
7.查询一下和王林一个系,但是比他年龄大的同学。
第六章课件:ddl语句
1.创建以上四个表,要求每个表必须有主键,表和表之间必须有外间关联。
3.写出insert语句,给表添加以上数据。
5.提交所有操作。
7.将王林的年龄设置为空。
9.将张大民调到计算机系。
11.将体育课的学分设置成和管理学学分一样(update 中带有子查询)。
13.回滚所有操作。
9.某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题:卡里面的“o和0”(哦和零)“i和1”(哎和一),用户反映说看不清楚,公司决定,把存储在数据
库中的密码中所有的“哦”都改成“零”,把所有的“i”都改成“1”;请编写sql语句实现以上要求;
数据库表名:card;密码字段名:password;(提示用的update和字符函数)
答案已设为白色需要就全选设为黑色篇二:sql常用语句--练习
软件教研室制
陕西国防工业职业技术学院
shaanxiinstitute of technology
实训项目单
一、实训目标
掌握sql server数据库创建方法,掌握数据表、数据库完整性约束、基本查询语句的使用、数据更新方法、视图索引的建立、常用数据库对象的创建及使用、sql编程序等多方面的综合练习,旨在强化训练,真正做到熟练掌握甚至精通,为以后数据库维护、网络管理、编程打好基础。
二、实训要求
完成实训题目,并将最终结果保存在自己的ftp上(在自己的ftp帐号上建
立”rj3121xxsql实训”文件夹,将所有实训结果、脚本文件、数据库、实训报告均保存在此文件夹下,xx代表自己的学号),所有操作必须使用t-sql代码完成。
填写如下实训报告。
三、考核标准
(1)平时实习纪律考勤占10%
(2)实训报告占40%
(3)代码文件及数据库文件占40%
(4)实习总结占10%
sql server实训
--创建一个名称为factory的数据库,脚本文件名:.sql,此脚本文件可利用企业管理器自动生成
--(1)将主数据库文件放置在d:\dbf文件夹中,其文件大小自动增长为按mb增长。
--(2)将事务日志文件放置在d:\dbf文件夹中,其文件大小自动增长为按mb增长。
create database factory
on primary
(name =工厂管理数据库,
filename=d:\,
size= 3mb,
filegrowth = 5mb)
log on
(name=factory_log,
filename=d:\ (1)建立work表
use factory
go
create table worker
(
职员号 int constraint pk_zgh primary key not null, --主键姓名 nchar(8) null,性别 char(2),
出生日期datetime,
党员否bit,
参加工作 datetime null,--参加工作
部门int null -- 部门
)
go
(2)建立depart 部门表
--(2)建立部门表depart,其结构为:部门号:int,部门名:char(10)。
--其中,
“部门号”为主键。
在depart表中输入如下记录:
use factory
go
create table depart
(
部门号 intconstraint pk_bmh primary key not null, 部门名 char(10))
go
(3)
建立职工工资表salary,
use factory
go
create table salary
(职工号 int not null,
日期 datetime,
constraint pk_zghrq primary key(职工号,日期), 姓名 char(8) not null,
工资 decimal(6,1)
)
go
3.数据库完整性
--1)实施worker表的“性别”字段默认值为“男”的约束
use factory
go
go
(2)实施salary表的“工资”字段值限定在0~9999的约束。
--2)实施salary表的“工资”字段值限定在~9999的约束。
use factory篇三:er图+sql语句练习题new 下图是企业订单管理系统的e-r图,提供对职工信息、客户信息、供应商信息、产品信息、订单信息、订单明细进行管理。
<pk>描述为主键,<fk>描述为外键,外键约束通过图下箭头线进行标注。
其中职员信息表中的sex取值为m或f,表示为男和女。