SQL基础

数据库

2008-03-27 14:00

基本4条:
select * from   表 where   条件 order by 字段 [desc]
insert into 表   (字段,字段) values (值,值)
update 表 set 字段=值,字段=值 where 条件
delete from 表 where 条件

---显示前几.
SELECT TOP N * FROM 表

----显示前%.
SELECT TOP N PERCENT * FROM 表

select DISTINCT 字段,字段 from 表

给列起别名.
     1> 字段名 as 别名
       2> 字段名"别名"

排序
--按姓名升序排列.
SELECT * FROM 表 ORDER BY NAME ASC;
--按年龄降序
SELECT * FROM 表  ORDER BY AGE DESC;
--按性别排序,然后相同性别的学生按年龄升序.
SELECT * FROM 表 ORDER   BY SEX DESC,AGE ASC

特殊条件:       [NOT]
BETWEEN...AND...     字段 BETWEEN 1 AND 100 等于   字段>=1 and 字段<=100
IS NULL,     该字段是null值
IN,               字段   IN (80,70,90,40)   等于 字段 =80 or 字段 =70 or 字段 =40 or 字段 =90
LIKE,     模糊查询   字段 like '%值%'       [a-z]   [^a-z]   X%   %X     _ 代表一个字符
ANY,     字段 条件 ANY (1,2,3,4,5)   只要有一个满足就OK
ALL,     字段 条件 ALL(1,2,3,4,5)   必须全部满足
EXISTS   存在性测试   至少返回一行值

相等连接:
SELECT ... FROM 表,表WHERE 表.字段= 表.字段
SELECT ... FROM 表JOIN 表ON 表.字段= 表.字段

左外连接:
SELECT...FROM 表LEFT OUTER JOIN 表ON 相等连接条件.
表示除了显示相等连接条件的结果外,还可以显示左表(表)中无法匹配相等连接条件的数据.
右外连接:
SELECT...FROM 表RIGHT OUTER JOIN 表ON 相等连接条件.
表示除了显示相等连接条件的结果外,还可以显示右表(表)中无法匹配相等连接条件的数据.
本表自连
select * from 表 as a ,表 as b where 条件


1> SUM(字段) : 求某集合中某字段值的总和.
要求: 该字段必须为数值类型. (去除了NULL值)
2> AVG(字段) : 求某集合中某字段值的平均数.
要求: 该字段必须为数值类型. (去除了NULL值)
3> MIN(字段) : 求某集合中某字段的最小值(数值最小值,ASCII最小值,日期最小值)
4> MAX(字段) : 求某集合中某字段的最大值
5> COUNT : 求某集合中的非空行数!
A. COUNT(*) 表示集合的总行数.
B. COUNT(字段名) 表示集合中某字段的非空个数.
C. COUNT(DISTINCT 字段名) 表示集合中某字段的非空非重复个数.

select   avg(字段) ,字段 from 表 group by 字段
比如:
求每个部门的最高工资 部门必须多余5个人
select 部门,max(工资) from 表 group by 部门 having count(*)>5
having 条件 是分组后的条件

子查询:
select * from 表 id=(select id from 表2 where 条件)  必须是单行
select * from 表 id on (select id from 表2)  

笛卡儿运算:多表联合查询.
select a.china1 ,b.china2 from table1 as a ,table2 as b
A1 B1
A1 B2
A2 B1
A2 B2

联合
select * from   表1,表2 where   条件 order by 字段 [desc]
insert into 表   select 字段,字段 from 表  
update 表 set 字段=值,字段=值 from 表2   where 条件
delete from 表 where 条件


insert into 表 default values   全默认
select * into 新表 from 表 复制表
select * into 新表 from 表 where 1=2 复制表结构