1.组函数用法规则
mysql中组函数在select语句中可以随意使用,但在oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错
eg:
select name,count(money) from user;这个放在mysql中没有问题在oracle中就有问题了。
而select name,count(money) from user group by name或者select max(name),count(money) from user;
在oracle就不会报错,同样这两种情况在mysql也不会报错
create table 表名字(id number(5,2), name varchar2(20
byte));//创建一个表单,里面有两列,第一列是id 是数值型 切共有5位数字,
并有两位是小数,三位是整数 ,第二列是name 字符型,能输入20个字节,必须是 字节
左右模糊查询(INSTR相比LIKE效率高):
INSTR(column_name,value) > 0 或 LIKE '%value%'
INSTR(column_name,value) = 0 或 NO LIKE '%value%'
1、where不能放在group by后面
2、having通常跟group by一起使用,放在group by后面,此时作用相当于where
3、where后面的条件中不能有聚集函数,比如SUM(),AVG()等,而having可以
创建索引:
create index 索引名 on 表名(字段,...)
查
查询表中多余的重复数据(多个字段)
select column_name1,column_name2 from table_name group by column_name1,column_name2 having count(*) > 1;
查询表有多少条数据:
select count(primary_key) from table_name;
查询表中某字段有多少个不重复的数据:
select count(distinct column_name) from table_name;
查看表结构(命令行语句):
desc table_name;
查看序列当前值和下一个值:
select seq_name.currval from dual;
select seq_name.nextval from dual;
左连接查询(以左表为基础,加上左表和右表匹配后的数据):
select t.column_name1,t.column_name2,u.column_name1 from table_name1 t left join table_name2 u on t.column_name1 = u.column_name1 where ...
修改
UPDATE customers
SET last_name ='Orange'
WHERE customer_id = 2;
删除
DELETE customers
WHERE customer_id = 2;
增加
insert into temp values(1,'张三',30);