百度
360搜索
搜狗搜索

简单的sql查询语句,如何用SQL创建一个简单的查询?详细介绍

本文目录一览: 几个简单的基本的sql语句

说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like '%value1%' ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count * as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1

通用SQL数据库查询语句精华使用简介

  一 简单查询   简单的Transact SQL查询只包括选择列表 FROM子句和WHERE子句 它们分别说明所查询列 查询的表或视图 以及搜索条件等
  例如 下面的语句查询testtable表中姓名为 张三 的nickname字段和email字段
  SELECT nickname email  FROM testtable  WHERE name= 张三
  (一) 选择列表
  选择列表(select_list)指出所查询列 它可以是一组列名列表 星号 表达式 变量(包括局部变量和全局变量)等构成

   选择所有列
  例如 下面语句显示testtable表中所有列的数据
  SELECT *  FROM testtable
   选择部分列并指定它们的显示次序
  查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同
  例如
  SELECT nickname email  FROM testtable
   更改列标题
  在选择列表中 可重新指定列标题 定义格式为
  列标题=列名  列名 列标题
  如果指定的列标题不是标准的标识符格式时 应使用引号定界符 例如 下列语句使用汉字显示列标题
  SELECT 昵称=nickname 电子邮件=email  FROM testtable
   删除重复行
  SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行 默认为ALL 使用DISTINCT选项时 对于所有重复的数据行在SELECT返回的结果集合中只保留一行
   限制返回的行数
  使用TOP n [PERCENT]选项限制返回的数据行数 TOP n说明返回n行 而TOP n PERCENT时 说明n是表示一百分数 指定返回的行数等于总行数的百分之几
  例如
  SELECT TOP *FROM testtable SELECT TOP PERCENT * FROM testtable
  (二) FROM子句
  FROM子句指定SELECT语句查询及与查询相关的表或视图 在FROM子句中最多可指定 个表或视图 它们之间用逗号分隔
  在FROM子句同时指定多个表或视图时 如果选择列表中存在同名列 这时应使用对象名限定这些列所属的表或视图 例如在usertable和citytable表中同时存在cityid列 在查询两个表中的cityid时应使用下面语句格式加以限定
  SELECT username citytable cityid  FROM usertable citytable  WHERE usertable cityid=citytable cityid
  在FROM子句中可用以下两种格式为表或视图指定别名
  表名 as 别名  表名 别名
  例如上面语句可用表的别名格式表示为
  SELECT username b cityid  FROM usertable a citytable b  WHERE a cityid=b cityid
  SELECT不仅能从表或视图中检索数据 它还能够从其它查询语句所返回的结果集合中查询数据
  例如
  SELECT a au_fname+a au_lname  FROM authors a titleauthor ta  (SELECT title_id title  FROM titles  WHERE ytd_sales>   ) AS t  WHERE a au_id=ta au_id  AND ta title_id=t title_id
  此例中 将SELECT返回的结果集合给予一别名t 然后再从中检索数据
  (三) 使用WHERE子句设置查询条件
  WHERE子句设置查询条件 过滤掉不需要的数据行 例如下面语句查询年龄大于 的数据
  SELECT *  FROM usertable  WHERE age>
  WHERE子句可包括各种条件运算符
  比较运算符(大小比较) > >= = < <= <> !> !<  范围运算符(表达式值是否在指定的范围) BEEEN…AND…  NOT BEEEN…AND…  列表运算符(判断表达式是否为列表中的指定项) IN (项 项 ……)  NOT IN (项 项 ……)  模式匹配符(判断值是否与指定的字符通配格式相符):LIKE NOT LIKE  空值判断符(判断表达式是否为空) IS NULL NOT IS NULL  逻辑运算符(用于多条件的逻辑连接) NOT AND OR
   范围运算符例 age BEEEN AND 相当于age>= AND age<=
   列表运算符例 country IN ( Germany China )
   模式匹配符例 常用于模糊查找 它判断列值是否与指定的字符串格式相匹配 可用于char varchar text ntext datetime和 *** alldatetime等类型查询
  可使用以下通配字符
  百分号% 可匹配任意类型和长度的字符 如果是中文 请使用两个百分号即%%
  下划线_ 匹配单个任意字符 它常用来限制表达式的字符长度
  方括号[] 指定一个字符 字符串或范围 要求所匹配对象为它们中的任一个 [^] 其取值也[] 相同 但它要求所匹配对象为指定字符以外的任一个字符
  例如
  限制以Publishing结尾 使用LIKE %Publishing
  限制以A开头 LIKE [A]%
  限制以A开头外 LIKE [^A]%
   空值判断符例WHERE age IS NULL
   逻辑运算符 优先级为NOT AND OR
  (四)查询结果排序
  使用ORDER BY子句对查询返回的结果按一列或多列排序 ORDER BY子句的语法格式为
  ORDER BY {column_name [ASC|DESC]} [ …n]
  其中ASC表示升序 为默认值 DESC为降序 ORDER BY不能按ntext text和image数据类型进行排序  例如
  SELECT *  FROM usertable  ORDER BY age desc userid ASC
  另外 可以根据表达式进行排序
  二 联合查询
  UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示 即执行联合查询 UNION的语法格式为
  select_statement  UNION [ALL] selectstatement  [UNION [ALL] selectstatement][…n]
  其中selectstatement为待联合的SELECT查询语句
  ALL选项表示将所有行合并到结果集合中 不指定该项时 被联合查询结果集合中的重复行将只保留一行
  联合查询时 查询结果的列标题为第一个查询语句的列标题 因此 要定义列标题必须在第一个查询语句中定义 要对联合查询结果排序时 也必须使用第一查询语句中的列名 列标题或者列序号
  在使用UNION 运算符时 应保证每个联合查询语句的选择列表中有相同数量的表达式 并且每个查询选择表达式应具有相同的数据类型 或是可以自动将它们转换为相同的数据类型 在自动转换时 对于数值类型 系统将低精度的数据类型转换为高精度的数据类型
  在包括多个查询的UNION语句中 其执行顺序是自左至右 使用括号可以改变这一执行顺序 例如
  查询 UNION (查询 UNION 查询 )
   三 连接查询
  通过连接运算符可以实现多个表查询 连接是关系数据库模型的主要特点 也是它区别于其它类型数据库管理系统的一个标志
  在关系数据库管理系统中 表建立时各数据之间的关系不必确定 常把一个实体的所有信息存放在一个表中 当检索数据时 通过连接操作查询出存放在多个表中的不同实体的信息 连接操作给用户带来很大的灵活性 他们可以在任何时候增加新的数据类型 为不同实体创建新的表 尔后通过连接进行查询
  连接可以在SELECT 语句的FROM子句或WHERE子句中建立 似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来 所以 在Transact SQL中推荐使用这种方法
  SQL 标准所定义的FROM子句的连接语法格式为
  FROM join_table join_type join_table  [ON (join_condition)]
  其中join_table指出参与连接操作的表名 连接可以对同一个表操作 也可以对多表操作 对同一个表操作的连接又称做自连接
  join_type 指出连接类型 可分为三种 内连接 外连接和交叉连接 内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作 并列出这些表中与连接条件相匹配的数据行 根据所使用的比较方式不同 内连接又分为等值连接 自然连接和不等连接三种 外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN) 右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种 与内连接不同的是 外连接不只列出与连接条件相匹配的行 而是列出左表(左外连接时) 右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行
  交叉连接(CROSS JOIN)没有WHERE 子句 它返回连接表中所有数据行的笛卡尔积 其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数
  连接操作中的ON (join_condition) 子句指出连接条件 它由被连接表中的列和比较运算符 逻辑运算符等构成
  无论哪种连接都不能对text ntext和image数据类型列进行直接连接 但可以对这三种列进行间接连接 例如
  SELECT p pub_id p pub_id p pr_info  FROM pub_info AS p INNER JOIN pub_info AS p   ON DATALENGTH(p pr_info)=DATALENGTH(p pr_info)
  (一)内连接
  内连接查询操作列出与连接条件匹配的数据行 它使用比较运算符比较被连接列的列值 内连接分三种
   等值连接 在连接条件中使用等于号(=)运算符比较被连接列的列值 其查询结果中列出被连接表中的所有列 包括其中的重复列
   不等连接 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值 这些运算符包括> >= <= < !> !
<和

   自然连接 在连接条件中使用等于(=)运算符比较被连接列的列值 但它使用选择列表指出查询结果集合中所包括的列 并删除连接表中的重复列

  例 下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社

  SELECT *  FROM authors AS a INNER JOIN publishers AS p  ON a city=p city

  又如使用自然连接 在选择列表中删除authors 和publishers 表中重复列(city和state)

  SELECT a * p pub_id p pub_name p country  FROM authors AS a INNER JOIN publishers AS p  ON a city=p city

  (二)外连接

  内连接时 返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行 而采用外连接时 它返回到查询结果集合中的不仅包含符合连接条件的行 而且还包括左表(左外连接时) 右表(右外连接时)或两个边接表(全外连接)中的所有数据行 如下面使用左外连接将论坛内容和作者信息连接起来

SELECT a * b * FROM luntan LEFT JOIN usertable as b  ON a username=b username   

  下面使用全外连接将city表中的所有作者以及user表中的所有作者 以及他们所在的城市

  SELECT a * b *  FROM city as a FULL OUTER JOIN user as b  ON a username=b username

  (三)交叉连接

  交叉连接不带WHERE 子句 它返回被连接的两个表所有数据行的笛卡尔积 返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数 例 titles表中有 类图书 而publishers表中有 家出版社 则下列交叉连接检索到的记录数将等

  于 * = 行

lishixinzhi/Article/program/SQL/201311/16231


</和

阅读更多 >>>  alter table语句的作用,SQL语句怎么加列

如何用SQL创建一个简单的查询?

1、首先,创建空白数据库,在数据库中创建表并插入数据,如下图所示,然后进入下一步。
 
2、其次,完成上述步骤后,菜单栏中选择“创建”,然后选择“查询设计”按钮。将弹出“显示表”窗口,如下图所示,然后进入下一步。
 
3、接着,完成上述步骤后,选择“表1”并单击“添加”,如下图所示,然后进入下一步。
 
4、然后,完成上述步骤后,单击查询设计网格第一列中的字段行,选择“生成器”选项,打开“表达式生成器”对话框,在对话框中输入表达式“m”:Max([Age])-min([Age]),单击“确定”按钮,如下图所示,然后进入下一步。
 
5、随后,完成上述步骤后,点击“查询工具”选项卡中“结果”命令组的“数据表视图”命令以查看查询结果,如下图所示,然后进入下一步。
 
6、最后,完成上述步骤后,查询结果如下图所示。这样,问题就解决了。

SQL查询语句

SQL查询语句大全
  SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,SQL查询语句就是一个典型的例子,无论是高级查询还是低级查询,SQL查询语句的需求是最频繁的。那么SQL查询语句有哪些?下面跟我一起来看看吧!
  一、简单查询语句
  1. 查看表结构
  SQL>DESC emp;
  2. 查询所有列
  SQL>SELECT * FROM emp;
  3. 查询指定列
  SQL>SELECT empmo, ename, mgr FROM emp;
  SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项
  4. 查询指定行
  SQL>SELECT * FROM emp WHERE job='CLERK';
  5. 使用算术表达式
  SQL>SELECT ename, sal*13+nvl(comm,0) FROM emp;
  nvl(comm,1)的意思是,如果comm中有值,则nvl(comm,1)=comm; comm中无值,则nvl(comm,1)=0。
  SQL>SELECT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal为别名,可按别名排序)
  SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';
  6. 使用like操作符(%,_)
  %表示一个或多个字符,_表示一个字符,[charlist]表示字符列中的任何单一字符,[^charlist]或者[!charlist]不在字符列中的任何单一字符。
  SQL>SELECT * FROM emp WHERE ename like 'S__T%';
  7. 在where条件中使用In
  SQL>SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');
  8. 查询字段内容为空/非空的语句
  SQL>SELECT * FROM emp WHERE mgr IS/IS NOT NULL;
  9. 使用逻辑操作符号
  SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';
  10. 将查询结果按字段的值进行排序
  SQL>SELECT * FROM emp ORDER BY deptno, sal DESC; (按部门升序,并按薪酬降序)
  二、复杂查询
  1. 数据分组(max,min,avg,sum,count)
  SQL>SELECT MAX(sal),MIN(age),AVG(sal),SUM(sal) from emp;
  SQL>SELECT * FROM emp where sal=(SELECT MAX(sal) from emp));
  SQL>SELEC COUNT(*) FROM emp;
  2. group by(用于对查询结果的分组统计) 和 having子句(用于限制分组显示结果)
  SQL>SELECT deptno,MAX(sal),AVG(sal) FROM emp GROUP BY deptno;
  SQL>SELECT deptno, job, AVG(sal),MIN(sal) FROM emp group by deptno,job having AVG(sal)<2000;
  对于数据分组的总结:
  a. 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中)
  b. 如果select语句中同时包含有group by, having, order by,那么它们的顺序是group by, having, order by。
  c. 在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须出现在group by子句中,否则就是会出错。
  使用group by不是使用having的前提条件。
  3. 多表查询
  SQL>SELECT e.name,e.sal,d.dname FROM emp e, dept d WHERE e.deptno=d.deptno order by d.deptno;
  SQL>SELECT e.ename,e.sal,s.grade FROM emp e,salgrade s WHER e.sal BETWEEN s.losal AND s.hisal;
  4. 自连接(指同一张表的连接查询)
  SQL>SELECT er.ename, ee.ename mgr_name from emp er, emp ee where er.mgr=ee.empno;
  5. 子查询(嵌入到其他sql语句中的select语句,也叫嵌套查询)
  5.1 单行子查询
  SQL>SELECT ename FROM emp WHERE deptno=(SELECT deptno FROM emp where ename='SMITH');查询表中与smith同部门的人员名字。因为返回结果只有一行,所以用“=”连接子查询语句
  5.2 多行子查询
  SQL>SELECT ename,job,sal,deptno from emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno=10);查询表中与部门号为10的工作相同的员工的姓名、工作、薪水、部门号。因为返回结果有多行,所以用“IN”连接子查询语句。
  in与exists的区别: exists() 后面的子查询被称做相关子查询,它是不返回列表的值的。只是返回一个ture或false的结果,其运行方式是先运行主查询一次,再去子查询里查询与其对 应的结果。如果是ture则输出,反之则不输出。再根据主查询中的每一行去子查询里去查询。in()后面的子查询,是返回结果集的,换句话说执行次序和 exists()不一样。子查询先产生结果集,然后主查询再去结果集里去找符合要求的字段列表去。符合要求的输出,反之则不输出。
  5.3 使用ALL
  SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ALL (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MAX(sal) FROM emp WHERE deptno=30);查询工资比部门号为30号的所有员工工资都高的员工的姓名、薪水和部门号。以上两个语句在功能上是一样的,但执行效率上,函数会高 得多。
  5.4 使用ANY
  SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ANY (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MIN(sal) FROM emp WHERE deptno=30);查询工资比部门号为30号的任意一个员工工资高(只要比某一员工工资高即可)的员工的姓名、薪水和部门号。以上两个语句在功能上是 一样的,但执行效率上,函数会高得多。
  5.5 多列子查询
  SQL>SELECT * FROM emp WHERE (job, deptno)=(SELECT job, deptno FROM emp WHERE ename='SMITH');
  5.6 在from子句中使用子查询
  SQL>SELECT emp.deptno,emp.ename,emp.sal,t_avgsal.avgsal FROM emp,(SELECT emp.deptno,avg(emp.sal) avgsal FROM emp GROUP BY emp.deptno) t_avgsal where emp.deptno=t_avgsal.deptno AND emp.sal>t_avgsal.avgsal ORDER BY emp.deptno;
  5.7 分页查询
  数据库的每行数据都有一个对应的行号,称为rownum.
  SQL>SELECT a2.* FROM (SELECT a1.*, ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal) a1 WHERE ROWNUM<=10) a2="" where="" rn="">=6;
  指定查询列、查询结果排序等,都只需要修改最里层的子查询即可。
  5.8 用查询结果创建新表
  SQL>CREATE TABLE mytable (id,name,sal,job,deptno) AS SELECT empno,ename,sal,job,deptno FROM emp;
  5.9 合并查询(union 并集, intersect 交集, union all 并集+交集, minus差集)
  SQL>SELECT ename, sal, job FROM emp WHERE sal>2500 UNION(INTERSECT/UNION ALL/MINUS) SELECT ename, sal, job FROM emp WHERE job='MANAGER';
  合并查询的执行效率远高于and,or等逻辑查询。
  5.10 使用子查询插入数据
  SQL>CREATE TABLE myEmp(empID number(4), name varchar2(20), sal number(6), job varchar2(10), dept number(2)); 先建一张空表;
  SQL>INSERT INTO myEmp(empID, name, sal, job, dept) SELECT empno, ename, sal, job, deptno FROM emp WHERE deptno=10; 再将emp表中部门号为10的数据插入到新表myEmp中,实现数据的批量查询。
  5.11 使用了查询更新表中的数据
  SQL>UPDATE emp SET(job, sal, comm)=(SELECT job, sal, comm FROM emp where ename='SMITH') WHERE ename='SCOTT';
  简介
  SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统SystemR上实现。由于它具有功能丰富、使用方便灵活、语言简洁易学等突出的优点,深受计算机工业界和计算机用户的欢迎。1980年10月,经美国国家标准局(ANSI)的数据库委员会X3H2批准,将SQL作为关系数据库语言的美国标准,同年公布了标准SQL,此后不久,国际标准化组织(ISO)也作出了同样的决定。
  SQL从功能上可以分为3部分:数据定义、数据操纵和数据控制。
  SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。其特点是:
  1、数据描述、操纵、控制等功能一体化。
  2、两种使用方式,统一的语法结构。SQL有两种使用方式。一是联机交互使用,这种方式下的SQL实际上是作为自含型语言使用的。另一种方式是嵌入到某种高级程序设计语言(如C语言等)中去使用。前一种方式适合于非计算机专业人员使用,后一种方式适合于专业计算机人员使用。尽管使用方式不向,但所用语言的语法结构基本上是一致的。
  3、高度非过程化。SQL是一种第四代语言(4GL),用户只需要提出“干什么”,无须具体指明“怎么干”,像存取路径选择和具体处理操作等均由系统自动完成。
  4、语言简洁,易学易用。尽管SQL的'功能很强,但语言十分简洁,核心功能只用了9个动词。SQL的语法接近英语口语,所以,用户很容易学习和使用。
  功能
  SQL具有数据定义、数据操纵、和数据控制的功能。
  1、SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫做视图(View),全局模式简称模式(Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。
  2、SQL数据操纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
  3、SQL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。
  语句结构
  结构化查询语言包含6个部分:
  1、数据查询语言(DQL: Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。
  2、数据操作语言(DML:Data Manipulation Language):其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。
  3、事务控制语言(TCL):它的语句能确保被DML语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
  4、数据控制语言(DCL):它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
  5、数据定义语言(DDL):其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等。
  6、指针控制语言(CCL):它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。
  语言特点
  SQL风格统一
  SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据、建立数据库、査询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。
  高度非过程化
  非关系数据模型的数据操纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用SQL进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。
  面向集合的操作方式
  SQL采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
  以同一种语法结构提供两种使用方式
  SQL既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接输入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(如C、C#、JAVA)程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的操作方式,为用户提供了极大的灵活性与方便性。
  语言简洁,易学易用
  SQL功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:CREATE、ALTER、DROP、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE。且SQL语言语法简单,接近英语口语,因此容易学习,也容易使用。
;

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 --从数据库中删除触发器

阅读更多 >>>  sqlserver内存最佳配置,如何设置SQLServer数据库内存

Create SCHEMA --向数据库添加一个新模式

Drop SCHEMA --从数据库中删除一个模式

Create DOMAIN --创建一个数据值域

Alter DOMAIN --改变域定义

Drop DOMAIN --从数据库中删除一个域

GRANT --授予用户访问权限

DENY --拒绝用户访问

REVOKE --解除用户访问权限

COMMIT --结束当前事务

ROLLBACK --中止当前事务

SET TRANSACTION --定义当前事务数据访问特征

DECLARE --为查询设定游标

EXPLAN --为查询描述数据访问计划

OPEN --检索查询结果打开一个游标

FETCH --检索一行查询结果

CLOSE --关闭游标

PREPARE --为动态执行准备 SQL 语句

EXECUTE --动态地执行 SQL 语句

DESCRIBE --描述准备好的查询

declare @id char(10)

--set @id = '10010001'

select @id = '10010001'

---必须以@@开头

declare @x int @y int @z int

select @x = 1 @y = 2 @z=3

if @x > @y

print 'x > y' --打印字符串'x > y'

else if @y > @z

print 'y > z'

else print 'z > y'

use pangu

update employee

set e_wage =

case

when 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.05

end

declare @x int @y int @c int

select @x = 1 @y=1

while @x < 3

begin

print @x --打印变量 x 的值

while @y < 3

begin

select @c =100*@x+ @y

print @c --打印变量 c 的值

select @y = @y + 1

end

select @x = @x + 1

select @y = 1

end

--例 等待 1 小时 2 分零 3 秒后才执行 Select 语句

waitfor delay ’01:02:03’

select * from employee

--例 等到晚上 11 点零 8 分后才执行 Select 语句

waitfor time ’23:08:00’

select * from employee

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 < 1000

and stockindex = 24

not stocksex = 'man'

stocknumber between 20 and 100

stocknumber 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, table2

where table1.id *= table2.id -------- 左外部连接,table1 中有的而 table2 中没有得以 null 表示

table1.id =* table2.id -------- 右外部连接

select stockname from table1

union [all] ----- union 合并查询结果集,all-保留重复行

select stockname from table2

insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")

value (select Stockname , Stocknumber from Stock_table2)---value 为 select 语句

update table_name set Stockname = "xxx" [where Stockid = 3]

Stockname = default

Stockname = null

Stocknumber = Stockname + 4

delete from table_name where Stockid = 3

truncate table_name ----------- 删除表中所有行,仍保持表的完整性

drop table table_name --------------- 完全删除表

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 约束

SQL的简单介绍(基本的sql语句)

SQL是StructuredQuevyLanguage(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
##1二、SQL数据库数据体系结构
SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为“基本表”(basetable);存储模式(内模式)称为“存储文件”(storedfile);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。名称对称如^00100009a^:
##1三、SQL语言的组成
在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:
1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。
2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。
3.一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。
4.一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。
5.用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。
6.SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。
##1四、对数据库进行操作
SQL包括了所有对数据库的操作,主要是由4个部分组成:
1.数据定义:这一部分又称为“SQLDDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
2.数据操纵:这一部分又称为“SQLDML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。
3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。
4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。
下面我们将分别介绍:
##2(一)数据定义
SQL数据定义功能包括定义数据库、基本表、索引和视图。
首先,让我们了解一下SQL所提供的基本数据类型:(如^00100009b^)
1.数据库的建立与删除
(1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:
CREATEDATABASE
<数据库名<〔其它参数〕
其中,
<数据库名<在系统中必须是唯一的,不能重复,不然将导致数据存取失误。〔其它参数〕因具体数据库实现系统不同而异。
例:要建立项目管理数据库(xmmanage),其语句应为:

CREATEDATABASExmmanage

(2)数据库的删除:将数据库及其全部内容从系统中删除。

其语句格式为:DROPDATABASE
<数据库名<
例:删除项目管理数据库(xmmanage),其语句应为:

DROPDATABASExmmanage

2.基本表的定义及变更

本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。
</数据库名<
</数据库名<在系统中必须是唯一的,不能重复,不然将导致数据存取失误。〔其它参数〕因具体数据库实现系统不同而异。
</数据库名<〔其它参数〕

sql简单查询语句

......为点分真不容易
1 select * from StuInfo
2 select 考号,姓名,语文,数学,英语 from StuMarks
3 select s1.考号,s1.姓名,s1.性别,s2.计算机基础,s2.SQL数据库
from StuInfo s1
left join StuMarks s2 on s1.学号=s2.学号
where 专业名!='计算机'
4 select 姓名,学号 from StuMarks where 语文>60 and 数学>60 and 英语>60 and 计算机基础>60 and SQL数据库>60
5 select max(语文),min(数学),avg(英语) from StuMarks
6 select 姓名,语文,数学,英语 from StuMarks where (语文+数学+英语+计算机基础+SQL数据库)>400
7 select 姓名,SQL数据库 from StuMarks
order by SQL数据库 desc
只要求回答第五大题的第3小题是把!
1)select * from StuInfo
2) select 考号,姓名,语文数学,英语 from StuMarks
3) select StuMarks.考号, StuMarks.姓名, StuInfo.性别, StuMarks.计算机基础, StuMarks.SQL数据库成绩
from StuInfo,StuMarks
where StuInfo.学号=StuMarks.学号 AND StuInfo.专业名!=计算机
4)
select 姓名,学号
from StuMarks where 语文>60 and 数学>60 and 英语>60 and 计算机基础>60 and SQL数据库>60
5)
select max(语文) 语文最高分,min(数学) 数学最低分,avg(英语) 英语平均分
from StuMarks
6)
select 学号,语文,数学,英语
from StuMarks
where (语文+数学+英语+计算机基础+SQL数据库)>400
7)
select 姓名,SQL数据库
from StuMarks
order by SQL数据库 desc
今天我们学习了sql的一些简单的查询
先是就简单的查询了一个表的数据
先新建一个表stu1:
接下来就是一些简单的查询了
查询性别为女,并且年龄32的记录
SELECT * FROM stu1 WHERE gender=‘女’ AND age=32;
查询学号为1,或者姓名为WYB的记录
SELECT * FROM STU1 WHERE sid=1 OR sname=‘wyb’;
查询学号为1,2,3的记录
SELECT * FROM stu1 WHERE sid=1 OR sid=2 OR sid=3;
查询学号不是1,2,3的记录
SELECT * FROM stu1 WHERE sid NOT IN(1,2,3);
查询年龄为null的记录
SELECT * FROM stu1 WHERE age IS NULL;
查询年龄在20到40之间的学生记录
SELECT * FROM stu1 WHERE age>20 AND age<40;
查询性别非男的学生记录(有两种方法)
SELECT * FROM stu1 WHERE gender!=“男”;
SELECT * FROM stu1 WHERE gender<>“男”;
查询姓名不为null的学生记录
SELECT * FROM stu1 WHERE sname IS NOT NULL;
查询姓名为L的学生记录
SELECT * FROM stu1 WHERE sname LIKE “l%”;
1、首先打开数据库,建立好表。
2、然后查询全体教师的教师号、姓名、职称,并分别为三列指定别名:教师号、姓名、职称,如下图所示。
3、查询结果如下图所示。
4、接着查询所有姓张的学生的学号和姓名,如下图所示。
5、最后查询选修C1(高等数学)且成绩高于85分的学生的学号、课程号和成绩,如下图所示就完成了。

阅读更多 >>>  存储过程的作用,mysql存储过程是什么意思?什么时候会用到,主要用来做什么?

SQL的一些查询语句

1,select * from 订单明细表 group by 订单id
2,需求不明确,是查询每个产品的最多和最少,还是总的最多和最少。
3,select count(*) as sum from 订单表
4,先查询有哪些地区 select 货主地区 from 订单表 group by 货主地区
得到的结果集为不重复的货主地区,再循环查询每个地区有哪些订单
select count(*) from 订单表 where 货主地区=“XXX(上一结果集)”
5,select a.客户名称 from 客户表 as a left join 订单表 as b ON a.客户id=b.客户id left join 订单明细表 as c ON b.订单id=c.订单id left join 产品表 as d ON c.产品id=d.产品id where d.产品名称=‘大米’ group by a.客户名称
6,select 客户id from 订单表
select 发货日期 from 订单表
循环订单id的结果集 查询对应的产品id
select 产品id from 订单明细表 where 订单id = ‘xxx(结果集)’
7,在第6条语句上面加一个order by 发货日期即可
8,需求不明确,供应商名称不知道是说的什么
9,select * from 产品表 like %米%
10,select * from 客户表 like %010%
11,select 客户id from 客户表 where 联系人名称=‘黄雅玲’ //查询出客户id
select 订单id from 订单表 where 客户id=‘xxx(上面查询的结果集)’ //查询客户的订单编号
select * from 订单明细表 where 订单id = ‘xx(上面查询的结果集)’ //查询该订单的产品id
select 产品名称,定购量 from 产品表 where 产品id = ‘xx(上面查询的结果集)’
12,
select DISTINCT 订单ID from 订单明细
select max(库存量) , min(库存量), avg(库存量) from 产品
select count(*) from 订单
select count(订单ID) from 订单 GROUP BY 货主地区
select b.联系人姓名 as 客户名称 from 订单 as a inner join 客户 as b on a.客户ID = b.客户ID inner join 订单明细 as c on a.订单ID = c.订单_订单ID inner join 产品 as d on c.产品ID = d.产品ID
where d.产品名称 = ‘大米’
select a.客户ID,a.发货日期,b.产品ID from 订单 as a inner join 订单明细 as b on a.订单ID = b.订单_订单ID
select a.客户ID,b.产品ID from 订单 as a inner join 订单明细 as b on a.订单ID = b.订单_订单ID order by 发货日期 desc
未看到供应商表。。
select * from 产品 where 产品名称 like '%米%'
①select * from 客户 where 电话 like '%010%' ②select * from 客户 where charindex('010',电话)>0
select b.公司名称,b.联系人职务,b.电话,c.数量,d.产品名称 from 订单 as a inner join 客户 as b on a.客户ID = b.客户ID inner join 订单明细 as c on a.订单ID = c.订单_订单ID inner join 产品 as d on c.产品ID = d.产品ID where b.联系人姓名= '黄雅玲'
select a.客户ID,a.联系人姓名 as 客户名,count (a.订单ID) as 订单数 from 订单 as a inner join 客户 as b on a.客户ID = b.客户ID group by 客户名,a.a客户ID order by 订单数 asc
--1、列出订单明细表中订单ID列表,要求去掉所有重复值。
SELECT DISTINCT 订单ID FROM 订单明细
--2、列出产品的最高库存量、最低库存量和平均库存量
SELECT MAX(库存量) 最高库存量,MIN(库存量) 最低库存量,AVG(库存量) 平均库存量 FROM 产品
--3、统计订单数量。
SELECT COUNT(*) 订单数量 FROM 订单
--4、按货主地区统计订单数量。
SELECT 货主地区,COUNT(*) 订单数量 FROM 订单 GROUP BY 货主地区
--5、列出所有订阅大米的客户名称。
SELECT 公司名称 AS 客户名称 FROM 客户 JOIN 订单 ON 客户.客户ID=订单.客户ID
JOIN 订单明细 ON 订单明细.订单ID=订单.订单ID
JOIN 产品 ON 产品.产品ID=订单明细.订单ID
WHERE 产品名称='大米'
--6、列出库中的所有订单的客户ID,产品ID和发货日期。
SELECT 客户ID,产品ID,发货日期 FROM 订单 JOIN 订单明细 ON 订单明细.订单ID=订单.订单ID
--7、按发货日期的顺序,列出所有的所有订单的客户ID,产品ID。
SELECT 客户ID,产品ID FROM 订单 JOIN 订单明细 ON 订单明细.订单ID=订单.订单ID
ORDER BY 发货日期
--8、显示供应商表中姓“徐”的联系人的地址,城市,电话,公司名称以及邮编。(用三种方法实现)
SELECT 地址,城市,电话,公司名称,邮政编码 FROM 客户 WHERE 联系人姓名 LIKE '徐%'
SELECT 地址,城市,电话,公司名称,邮政编码 FROM 客户 WHERE LEFT(联系人姓名,1)='徐'
SELECT 地址,城市,电话,公司名称,邮政编码 FROM 客户 WHERE CHARINDEX('徐',联系人姓名)>0
--9、 查找产品表中含有“米”的相关记录。
SELECT * FROM 产品 WHERE 产品名称 LIKE '%米%'
--10、在客户表中查找电话号码含有“010”的记录。(至少用两种方法实现)
SELECT * FROM 客户 WHERE 电话 LIKE '%010%'
SELECT * FROM 客户 WHERE CHARINDEX('010',电话)>0
--11、查找客户“黄雅玲”所订购的产品名称,定购量,及该客户的所在公司,职务,电话。
SELECT 产品名称,数量,公司名称,联系人职务,电话 FROM 客户 JOIN 订单 ON 客户.客户ID=订单.客户ID
JOIN 订单明细 ON 订单明细.订单ID=订单.订单ID
JOIN 产品 ON 产品.产品ID=订单明细.订单ID
WHERE 联系人姓名='黄雅玲'
--12、统计客户所订购的订单数,并显示相应的客户名,客户ID,订单数,并且根据订单数进行升序排序。
SELECT 公司名称 AS 客户名,客户ID,COUNT(*) 订单数 FROM 客户 JOIN 订单 ON 客户.客户ID=订单.客户ID
ORDER BY 3

sql数据库查询语句例子

各位同学们好,我们今天继续来说,sql数据库。我们今天的文档中主要介绍了SQL查询语句、查询语句示例等。这里我给大家做了一个总结,有需要的同学可以参考一下。
首先,我们来了解一下SQL数据库组成基本:
查找Movies表里的Title字段:
查找ID小于5的电影的Title和Director的以下这些:
查看电影的总条数
以下查询语句是常用于班级统计的:
查询“001”课程比“002”课程成绩高的所有学生的学号:
查询平均成绩大于60分的同学的学号和平均成绩:
查询所有同学的学号、姓名、选课数、总成绩:
查询姓“李”的老师的个数:
查询没学过“叶平”老师课的同学的学号、姓名:
查询学过“001”并且也学过编号“002”课程的同学的学号、姓名:
查询学过“叶平”老师所教的所有课的同学的学号、姓名:
查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名:
查询所有课程成绩小于60分的同学的学号、姓名:
查询没有学全所有课的同学的学号、姓名:
好了,这就是关于sql数据库查询语句的基础了。我都替你们整理好了,感兴趣的同学收藏一来,需要用的时候直接拿起来用就可以了。我们今天就到这里,下期再见!
本篇文章使用以下硬件型号:联想小新Air15;系统版本:win10;软件版本:sqlserver2008。

网站数据信息

"简单的sql查询语句,如何用SQL创建一个简单的查询?"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:简单的sql查询语句,如何用SQL创建一个简单的查询?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!