×

关注微信公众号

免备案网站空间虚拟主机双线空间域名查询PS数码后期
photoshop互助课堂数百G视频教程下载英语培训机构初中英语如何学随时随地聆听大师开讲/课堂
软件安装教程 远程服务 超值!手绘教程抠图教程路径专辑photoshop cs3视频教程
查看: 5442|回复: 0

[java] SQL单表查询总结

[复制链接]
发表于 2008-6-15 10:30:22 | 显示全部楼层 |阅读模式
SQL:

数据定义:
基本表:
create table 表名
列名 数据类型  列级完整性约束条件
例如:
create table empoyeeInfo(
empId int primary key not null,
主关键码不允许为空
(主关键码都是在数据类型后加上  primary key(主键码))
empName varchar(20),
empSex varchar(10),
empAge int,
empAdress varchar(20)
)

为基本表增加内容:
insert into 表名 values (“所添加的值,要与数据库类型相符”)
例如为上面的empoyeeInfo 增加
insert into empoyeeInfo values (1,'zhangsan','male',20,'wuhan')
insert into empoyeeInfo values (2,'lisi','female',22,'beijing')
insert into empoyeeInfo values (3,'xiaoxi','male',25,'hebei')
insert into empoyeeInfo values (4,'xitian','female',30,'shandong')
insert into empoyeeInfo values (5,'yangfan','male',35,'shanghai')
insert into empoyeeInfo values (6,'boluo','female',24,'guagndong')
insert into empoyeeInfo values (7,'wuzhe','male',22,‘’)
注:可以为空,为空的不写东西

查询
select * from 表名
“*是指匹配的所有属性,  from 是指从哪里查询”

修改
update 表名 set 设置名 where 主码
“set是指重设   where 是指针对哪行重置”
例如:
update empoyeeInfo set empName='fangfang',empAge=22,empAdress='shandong' where empId=3

select *from empoyeeInfo

删除
delete from 表名 where 主码
例如:
delete from empoyeeInfo where empId=4

修改字段
例如:

create table emp_dep(
empId int not null,
empName int not null,
empAcheivementGrade int

)



撤消
drop table emp_dep

添加字段    add alter
alter table emp_dep add name varchar(20)

删除字段   drop column
alter table emp_dep drop column name

修改字段  alter column
alter table emp_dep alter column empAcheivementGrade varchar(30)


修改表名
sp_rename '原来的表名','新表名','object'

单表查询
1.选择表中的列
例如:
查询员工的生日
select empName as'姓名',2007-empAge '生日'from empoyeeInfo


2.选择表中的若干元组
例如:查询所有员工的年龄段
select empAge '年龄' from empoyeeInfo
select ditinct empAge from empoyeeInfo
ditinct (取消重复的)


六种情况:
1)比较:<;  >;   =;  
例1.查询员工中来自武汉的
select empName from empoyeeInfo where empAress ='wuhan'
例2.查询员工中年龄在22岁以下的
select * from empoyeeInfo where empAge<22
查询员工中年龄不小于22的
select *from empoyeeInfo where not empAge<22
2)确定范围   betweem;   and
例3.查询员工年龄在20-25之间的
select * from  empoyeeInfo where empAge between 22 and 25

3)确定集合   in(), not in
例4.查询员工中家庭住址是在北京和上海的
select * from empoyeeInfo where empAdress in('beijing','shanghai')
4)字符匹配  like
例5.员工姓名当中姓王的
select * from empoyeeInfo where empName like 'wang%'
select * from empoyeeInfo where empName like '%h%'
5)空值   is null ;     is not null
例6.查询表中地址为空值的
select * from empoyeeInfo where empAdress is null

6)多重条件  and ;    or
例7.来自武汉的女员工的姓名
select empName from empoyeeInfo  where empAdress ='wuhan' and empSex ='male'
例8.来自北京或是武汉的女员工
select * from empoyeeInfo where empAdress in('beijing') or in('wuhan')and empSex like 'male'


3.对查询结果的排序            order by
例9.对员工年龄进行排序   
select  * from empoyeeInfo  order by empAge
对员工年龄进行从小到大的排序   降序 desc
select * from empoyeeInfo order by empAge desc
注:order by 可以指定查询结果如何排序,形式为字段名排序关键词;asc代表升序排列,desc代表降序排列,多个排序字段之间通过逗号分割。若有where查询条件,order by要放在where语句后面。

4.使用集函数    count 总计,记数;    avg  平均量  ;
                 aum   和 ,总额;    min 最小  ;    max 最大的
例10.员工的总人数
select count (*) as '总人数' from empoyeeInfo
select count (empId) as '总人数' from empoyeeInfo
员工的平均年龄
select avg (empAge) as '平均年龄' from empoyeeInfo
员工中来自武汉的最小年龄
select min (empAge) as '最小年龄' from empoyeeInfo where empAdress ='wuhan'

5.对查询结果进行分组   分组查询是指将查询结果按照字段分组。  group by
例11.对来自不同地方的员工进行分组
select empAdress ,count(empId) from empoyeeInfo group by empAdress
对来自不同地方员工有两个以上的进行分组
select empAdress, count(empId) from empoyeeInfo group by empAdress having count(empId)>2
注:having是检查分组后的各组是否满足条件。having语句只能配合group by语句使用,没有group by时不能使用having
本帖的地址:http://bbs.jcwcn.com/forum.php?mod=viewthread&tid=187900
跟着教程做一遍,做完的图要到这里评论交作业,教程有看不懂的地方,可以在贴子下面评论
发表于 4 天前 | 显示全部楼层
酷素材
好帖就是要顶
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
顶顶多好
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
真心顶。。。。
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
酷素材
不错不错
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
酷素材
学习了。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | [立即注册]

本版积分规则

2345