Oracle数据库基础2-关键字

--1.Select...From 查询数据
SELECT * FROM t_users;--查询表中的所有数据;实际工作中不建议这样写;
SELECT t.*,t.rowid FROM t_users t;--查询并编辑表中的所有数据,t是系统自动生成的别名,rowid在这里表示伪列,代表每一行数据唯一的标识符,在oracle内部通常就是使用它来访问数据的;
--2.insert into -插入数据(进行增删改的操作的时候, 一定记得提交);
INSERT INTO t_users VALUES ('小王','123456');--向表中插入数据,value值需要写全才行;
INSERT INTO t_users(uname,psw) VALUES ('小明','123456');--向表中uname列和psw列插入数据;字符串用''单引号表示;这一步的操作相当于在表里直接写了几个数据, 并且点了对号;此时窗口列表中图标变为绿色,表示当前操作没有进行提交或回滚;
--3.commit 提交数据
COMMIT;--对当前数据的修改进行提交;需要单独一行,否则报错;
--4.delete 删除数据(from可省略不写)
DELETE FROM t_users;--删除表中所有的数据;
DELETE FROM t_users WHERE psw='123456';--删除表中psw为123456的所有数据;
DELETE FROM t_users WHERE psw='123456' AND uname='小明';--删除表中psw为123456和uname为小明的所有数据;
--5.update 更新数据
UPDATE t_users SET psw='122334' WHERE uname='小明';--将表中unme为小明的数据中psw列改为122334;如果不写条件则将表中psw列全部修改为1234;
--6.drop 删除表(约束或键)
DROP TABLE t_users;--删除这个表;不需要提交;
--7.where 用来给执行语句添加限制条件,不单独使用;
--8.in 在某一列的数据集合中的任意一个值;
SELECT * FROM t_users WHERE age IN(21,22,23);--从表中查询所有age列数据为21,22,23的数据;
--9.like(%,_) 模糊查询, %表示任意多个字符, _表示单个字符
SELECT * FROM t_users WHERE psw LIKE '12__';--从表中查询psw列中所有以12开头加2个单字符组成的数据;
SELECT * FROM t_users WHERE psw LIKE '12%';--从表中查询psw列中所有以12开头的数据;
--10.order by 排序(ASC 表示从小到大,可省略不写;DESC表示从大到小)
SELECT * FROM t_users ORDER BY age ;--查询表中数据以age列从小到大排序;
SELECT * FROM t_users ORDER BY age DESC;--查询表中数据以age列从大到小排序;
SELECT uname,age FROM t_users order BY 2 ;--查询表中uname和age列并以索引为2的列(即指age)排序;
--11.group by 按照某几列分组
SELECT age, COUNT(1) FROM t_users GROUP BY age;--查询表中age列并对age里的数据行进分组,这里调用count函数显示每组的数量;
--12.having 分组之后的过滤
SELECT age FROM t_users GROUP BY age HAVING COUNT(1) > 2;--查询表中age列里分组数据数量大于2的数据;
--13.case...when...then...else...end  end可省略
SELECT t.*, CASE t.sex WHEN 0 THEN '' WHEN 1 THEN '' ELSE '未知' END FROM t_users t;--查询表中的sex列,当数据为0时显示为男,当数据为1时显示为女,其他显示为未知;
SELECT t.*, CASE WHEN t.sex=0 THEN '' WHEN t.sex=1 THEN '' ELSE '未知' END FROM t_users t;--另一种写法,效果同上;
--14.distinct 去除重复
SELECT DISTINCT t.psw FROM t_users t;--查询显示表中psw列中去除重复数据后的数据;只显示psw列数据;
--15.between...and...区间查询,是闭合区间,包含前面和后面的数;
SELECT * FROM t_users WHERE age BETWEEN 21 AND 25;--查询表中age列数据值在21到25之间所有的数据;
--16.all... 表示一个集合中所有元素;
SELECT * FROM t_users t WHERE t.age > ALL(22,23);--查询表中age列数据值大于22和23的所有数据;
--17.any/some 表示一个集合中任意一个元素;
SELECT * FROM t_users t WHERE t.age > ANY(22,23);--查询表中age列数据大于22或23的所有数据;

猜你喜欢

转载自www.cnblogs.com/wyc1991/p/9062017.html