sql常用语句,用SQL进行单表查询
分类:微服架构

更新数据使用的是命令。

数据的录入采用语句。对应不同的录入方式,语句的语法会有所变化。

单表查询是相对多表查询而言的,指从一个数据表中查询数据。

本文章收藏了sql入门者常用到的一些查询语句,有需要的朋友可以参考一下。

4.8.1 直接赋值更新

4.6.1 单行记录的录入

4.2.1 查询所有的记录

(1)数据记录筛选: sql=select * from 数据表 where 字段名=字段值 orderby 字段名 [desc] sql=select * from 数据表 where 字段名 like '%字段值%' orderby 字段名 [desc] sql=select top10 * from 数据表 where 字段名 orderby 字段名[desc] sql=select * from 数据表 where 字段名 in('值1','值2','值3') sql=select * from 数据表 where 字段名 between 值1 and 值 2 Sql = Select Distinct 字段名 From 数据表 Distinct函数,查询数据库存表内不重复的记录 Sql = Select Count(*) From 数据表 where 字段名1#18:0:0# and 字段名1 #19:00# count函数,查询数库表内有多少条记录,字段名1是指同一字段 Sql=select * from 数据表 where 字段名=字段值 order by 字段名 [desc]

  1. 语法
  1. 语法

在执行输入select * from scott.emp,然后单击按钮,出现如图4.3所示的emp数据表所有记录。

Sql=select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc] 模糊查询 %:代表任意长的一段字符 _ :代表一个字符

update 数据表

insert into 数据表(字段名1,字段名2,) values(字段名1的值, 字段名2的值,)。

:/第4章/4.2/421.sql。

Sql=select top 10 * from 数据表 where 字段名 order by 字段名 [desc] 查找数据库中前10记录

set 字段名1=新的赋值,字段名2=新的赋值,

由于字段的类型不同,在书写字段值的时候要注意格式。

select * from 数据表,这里的*代表数据表中所有的字段。

Sql=select top n * form 数据表 order by newid() 随机取出数据库中的若干条记录的方法 top n,n就是要取出的记录数

where 条件

数值型字段,可以直接写值。

4.2.2 查询所有记录的某些字段

Sql=select * from 数据表 where 字段名 in ('值1','值2','值3') (2)更新数据记录: sql=update 数据表 set 字段名=字段值 where 条件表达式 sql=update 数据表 set 字段1=值1,字段2=值2字段n=值n where 条件表达式 Sql=update 数据表 set 字段1=值1,字段2=值2 字段n=值n 没有条件则更新整个数据表中的指定字段值

  1. 实例

字符型字段,其值上要加上单引号。

在输入select empno,ename,job from scott.emp,然后单击按钮,将显示emp数据表的empno、ename和job字段,如图4.4所示。

(3)删除数据记录: sql=delete from 数据表 where 条件表达式 sql=delete from 数据表 (将数据表所有记录删除) (4)添加数据记录: sql=insert into 数据表(字段1,字段2,字段3) values(值1,值2,值3) sql=insert into 数据表 valuess (值1,值2,值3 ) 不指定具体字段名表示将按照数据表中字段的顺序,依次添加

在执行以下语句。

日期型字段,其值上要加上单引号,同时还要注意年、月、日的排列次序。

:/第4章/4.2/422.sql。

sql=insert into 目标数据表 select * from 源数据表(把源数据表的记录添加到目标数据表) (5)数据记录统计函数: AVG(字段名)得出一个表格栏平均值 COUNT(*|字段名)对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名)取得一个表格栏最大的值 MIN(字段名)取得一个表格栏最小的值 SUM(字段名)把数据栏的值相加 引用以上函数的方法: sql=selectsum(字段名)as别名from数据表where条件表达式 setrs=conn.excute(sql) 用rs(别名)获取统的计值,其它函数运用同上。 (5)数据表的建立和删除: CREATETABLE数据表名称(字段1类型1(长度),字段2类型2(长度)) 例:CREATETABLEtab01 (namevarchar (50), datetimedefaultnow ()) DROPTABLE数据表名称(永久性删除一个数据表) 4.记录集对象的方法: rs.movenext将记录指针从当前的位置向下移一行 rs.moveprevious将记录指针从当前的位置向上移一行 rs.movefirst将记录指针移到数据表第一行 rs.movelast将记录指针移到数据表最后一行 rs.absoluteposition=N将记录指针移到数据表第N行 rs.absolutepage=N将记录指针移到第N页的第一行 rs.pagesize=N设置每页为N条记录 rs.pagecount根据pagesize的设置返回总页数 rs.recordcount返回记录总数 rs.bof返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof返回记录指针是否超出数据表末端,true表示是,false为否 rs.delete删除当前记录,但记录指针不会向下移动 rs.addnew添加记录到数据表末端 rs.update更新数据表记录

 update scott.emp set empno=8888,ename=TOM,hiredate=03-9月 -2002  where empno=7566; 

在数据的插入语句中,插入列排序和插入值要一一对应。字符型和日期型字段要加上单引号,非空列必须有值。

select 字段名1, 字段名2, from 数据表,将显示某些特定的字段,注意这里的字段名之间的逗号是英文状态下的逗号。


:/第4章/4.8/481.sql。

  1. 实例

4.2.3 查询某些字段不同记录

jsp中连接mysql 加载驱动程序 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Class.forName(jdbc.DriverXYZ); (2)建立连接 String Url=jdbc:odbc:Fred; Connection con=DriverManager.getConnection(Url,myLogin,myPassword); (3)执行sql语句 executeQuery()用于执行单个结果集的语句 executeUpdate()用于执行insert、update、delete之类的non-select语句

单击按钮,出现如图4.49所示的结果。

在scott.emp数据表里共包含了3种类型的字段。

在图4.4所示的job字段中,可以发现有相同的数据,为了查询有多少种不同的job,在输入select distinct job from scott.emp,然后单击按钮,出现如图4.5所示的结果。

4.8.2 嵌套更新

empno,number,NOT NULL,数值型,长度为4,不能为空。

:/第4章/4.2/423.sql。

  1. 语法

ename,varchar2(10),字符型,长度为10。

select distinct 字段名 from 数据表,这里的distinct保留字指在显示时去除相同的记录,与之对应的是all将保留相同的记录,默认为all。

update 数据表

hiredate,date,日期型。

4.2.4 单条件的查询

set 字段名1=(select 字段列表 from 数据表 where 条件),字段名2=(select 字段列表 from 数据表 where 条件),

我们以在这3个字段中插入记录为例进行说明。

在输入select empno,ename,job from scott.emp where job=MANAGER,然后单击按钮,出现如图4.6所示的字符型字段条件查询的结果,查询的是job为MANAGER的记录。

  1. 实例

对于日期型的数据,读者往往会感觉为难,因为不知道年、月、日的排列顺序和格式,这里教给大家几个方法。首先查询范例数据表中的数据,然后依葫芦画瓢就可以了。

:/第4章/4.2/424-1.sql。

在执行以下语句。

在输入select empno, ename, hiredate from scott.emp;,然后单击按钮,出现如图4.41所示的结果。因此,笔者的计算机系统默认的日期型数据格式应该为日-月-年。

在输入select empno,ename,sal from scott.emp where sal=2500,然后单击按钮,出现如图4.7所示的数字型字段条件查询的结果,查询的是满足sal小于等于2500的记录。

 update scott.emp set sal= ( select sal+300 from scott.emp where empno=7599 ) where empno=7599; 

:/第4章/4.6/461-1.sql。

:/第4章/4.2/424-2.sql。

:/第4章/4.8/482.sql。

在输入insert into scott.emp(empno, ename, hiredate) values (7999, JONE,25-11月-2002);,然后单击按钮,出现如图4.42所示的结果。

where可以指定查询条件,如果是指定字符型字段查询条件,形式为字段名 运算符 字符串;如果是指定数字型字段查询条件,形式为字段名 运算符 字符串。 单条件查询使用的比较运算符如表4.1所示。

单击按钮,出现如图4.50所示的结果。

:/第4章/4.6/461-2.sql。

:/第4章/4.2/table41.sql。

以上我们学习了如何利用SQL对数据表中的数据进行录入、删除、更新和查询操作。读者利用这些实例可以结合自己的实际快速掌握这些基本的数据管理语句。

在输入select * from scott.emp where empno=7999;,然后单击按钮,出现如图4.43所示的结果。

表4.1 比较运算符 名称实例=(等于)select * from scott.emp where job=MANAGER;select * from scott.emp where sal=1100;!= (不等于)select * from scott.emp where job!=MANAGER;select * from scott.emp where sal!=1100;^=(不等于)select * from scott.emp where job^=MANAGER;select * from scott.emp where sal^=1100;(不等于)select * from scott.emp where jobMANAGER;select * from scott.emp where sal1100;(小于)select * from scott.emp where sal2000;select * from scott.emp where jobMANAGER;(大于)select * from scott.emp where sal2000;select * from scott.emp where jobMANAGER;=(小于等于)select * from scott.emp where sal=2000;select * from scott.emp where job=MANAGER;=(大于等于)select * from scott.emp where sal=2000;select * from scott.emp where job=MANAGER;in(列表)select * from scott.emp where sal in (2000,1000,3000);select * from scott.emp where job in (MANAGER,CLERK);not in(不在列表)select * from scott.emp where sal not in (2000,1000,3000);select * from scott.emp where job not in (MANAGER,CLERK);between(介于之间)select * from scott.emp where sal between 2000 and 3000;select * from scott.emp where job between MANAGER and CLERK;not between (不介于之间)select * from scott.emp where sal not between 2000 and 3000;select * from scott.emp where job not between MANAGER and CLERK;like(模式匹配)select * from scott.emp where job like M%;select * from scott.emp where job like M__;not like (模式不匹配)select * from scott.emp where job not like M%;select * from scott.emp where job not like M__;Is null (是否为空)select * from scott.emp where sal is null;select * from scott.emp where job is null;is not null(是否为空)select * from scott.emp where sal is not null;select * from scott.emp where job is not null;

:/第4章/4.6/461-3.sql。

like和not like适合字符型字段的查询,%代表任意长度的字符串,_下划线代表一个任意的字符。like m% 代表m开头的任意长度的字符串,like m__ 代表m开头的长度为3的字符串。

4.6.2 多行记录的录入

在数据的录入中,经常需要将从数据表中查询到的数据稍做修改成批录入的情况,这就是多行数据的录入。

  1. 语法

insert into 数据表(字段名1,字段名2,)

(select(字段名1或运算, 字段名2或运算,) from 数据表 where 条件)

实际上,首先利用子查询语句查询结果,然后再利用insert语句将结果插入数据表。子查询和insert中的数据表既可以相同,也可以不同,但要求查询结果的字段和insert插入的数据表中字段属性完全一致。

  1. 实例

在执行以下语句。

insert into scott.emp(empno,ename,hiredate) (select empno+100,ename,hiredate from scott.emp where empno=6999 );

:/第4章/4.6/462.sql。

单击按钮,出现如图4.44所示的结果。

4.6.3 表间数据复制

可以从一个数据表中选择需要的数据插入到全新的数据表中。

在执行以下语句。

 create table scott.test as ( select distinct empno,ename,hiredate from scott.emp where empno=7000 ); 

:/第4章/4.6/463.sql。

然后单击按钮,出现如图4.45所示的结果。

上述语句的功能是创建一个名为scott.test的数据表,表结构包含3个字段。并将scott.emp中具有不同的empno字段,且empno=7000的数据复制到scott.test数据表中。

在输入select * from scott.test;语句,然后单击按钮,出现如图4.46所示的结果。

这里的create table语句的功能是创建新的数据表,上述过程实际是分3步执行的。首先查询符合要求的数据,其次建立3个字段的名为test的数据空表,最后是将查询的数据插入到test数据表中。

本文由10bet手机官网发布于微服架构,转载请注明出处:sql常用语句,用SQL进行单表查询

上一篇:最常用的SQL语句,sql常用语句 下一篇:深刻理解Oracle数据库的启动和关闭,启动例程
猜你喜欢
热门排行
精彩图文