SQL数据库常用命令

  • SQL常用命令

1、order by  对结果集 排序。ASC:升序(默认),DESC:降序。

Select * from A order by age desc,id ASC     //age降序,id升序


     group by 根据一定规则对数据进行分组,将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。用group by all 多列分组。常和 sum,max,min ,count 等聚合函数一起使用,与group by联用的having子句是筛选满足条件的组,与where不同的是在分组之后过滤数据
 
 比如一个表中,有a、b、c三种类别,每个类别不同的数量,可以用
     select  类别,数量  from  表名  group by 类别
 返回的结果实际就是分类汇总a、b、c三种对应的数量

     select 类别,数量 from 表名 group by 类别 having  数量>20
在结果里显示分组数量>20的结果



CREATE TABLE Student(
ID int PRIMARY KEY,
NAME VARCHAR2(50) NOT NULL);//建表
    CREATE VIEW view_name AS
Select * FROM Table_name;//建视图
CreateUNIQUEINDEXindex_nameONTableName(col_name);//建索引
//插入
INSERT INTO tablename {字段1,字段2,字段3 …} values(值1,值2,值3 …);

insert into 目标数据表 select * from 源数据表  //把源数据表的记录添加到目标数据表
//插入视图
INSERT INTO Viewname {column1,column2,…} values(exp1,exp2,…);
//更新数据
update table1 SET 字段名=字段值 where 条件表达式 ;
update table1 SET 字段1=值1,字段2=值2...字段n=值n where 条件表达式;
//查询
select * from tablename where 字段名=值 order by 字段名 desc
select * from tablename where 字段名 like '% 值 %' 
select * from tablename where 字段名 in ('值1','值2','值3')
select * from tablename where 字段名 between 值1 and 值2
//删除
DELETE FROM Table WHERE ...;
delete from tablename; //将数据表所有记录删除 注意表还在,DROP 是永久性删除一个数据表
GRANT (Select,delete,…) ON (对象) TO USER_NAME [WITH GRANT OPTION];//授权
REVOKE (权限表) ON(对象) FROM USER_NAME [WITH REVOKE OPTION] //撤权
Select E.NAME, S.NAME FROM EMPLOYEE E S
WHERE E.SUPERName=S.Name     //列出工作人员及其领导的名字


//列出不同的值  distinct

select distinct name from A     //作用于单列,只有name不同的行被显示
select distinct name, id from A     //作用于多列,name+id都不同的行被显示
//规定返回的行数  top

Select TOP 2 *FROM A     //TOP n 说明返回n行
Select TOP 20 PERCENT * FROM A     //;TOP n PERCENT说明返回的行数等于总行数的百分之几
//合并或多个 SELECT 语句的结果集          UNION

select name from table_name1
UNION
select name from table_name2

select name from table_name1
UNION ALL
select name from table_name2

注意:UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL
//连接

通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。
内连接:等值连接、不等连接、自然连接
外连接:左外连接、右外连接、全连接
交叉连接:也称迪卡尔积

内连接
//等值连接     在连接条件中使用等于号(=),结果包括重复列
 select * from A,B where A.Id = B.Id
 等同于
 select * from A inner join B on A.Id = B.Id
//不等连接     >、<、<>、>=、<=、!>和!<
select * from A inner join B on A.Id <> B.Id
//自然连接     使用=,结果不能重复

外连接
//左连接     返回左表中的所有行,如果左表中行在右表中没有匹配行,则结果中右表中的列返回空值
select * from A left join B on A.Id = B.Id
//右连接
select * from A right join B on A.Id = B.Id
//全连接     返回左表和右表中的所有行。当某行在另一表中没有匹配行,则另一表中的列返回空值
select * from A full join B on A.Id = B.Id

交叉连接     
//返回结果的行数等于两个表行数的乘积,m×n
select *from A cross join B


posted @ 2017-05-04 21:43  二哈yoo  阅读(370)  评论(0编辑  收藏  举报