oracle基础语句
来源:互联网 发布:怎么开个淘宝网店手机 编辑:程序博客网 时间:2024/06/07 09:22
USE lin;#数据库
#建表
CREATE TABLE acct (
acct_no VARCHAR(32) NOT NULL,
acct_name VARCHAR(60) NOT NULL,
acct_status VARCHAR(2),
reg_date DATE,
balance DECIMAL(16,2),
PRIMARY KEY (acct_no)
);
DESC acct;#查看表结构
#账户交易明细表
CREATE TABLE acct_detail (
acct_no VARCHAR(32) NOT NULL,
trans_date DATE NOT NULL,
trans_sn VARCHAR(10) NOT NULL,
trans_type INTEGER NOT NULL,
amt DECIMAL(16, 2),
balance DECIMAL(16, 2),
PRIMARY KEY (trans_date, trans_sn)
);
#客户关系表
CREATE TABLE cust(
cust_no VARCHAR(32) NOT NULL,
cust_name VARCHAR(60) NOT NULL,
tel_no VARCHAR(32),
PRIMARY KEY(cust_no)
);
#增加一列
alter table acct add t_name varchar(64);
#删除一列
ALTER TABLE acct DROP COLUMN t_name;
#重命名
RENAME TABLE acct TO linxing;
RENAME TABLE linxing TO acct;
#建表
CREATE TABLE acct (
acct_no VARCHAR(32) NOT NULL,
acct_name VARCHAR(60) NOT NULL,
acct_status VARCHAR(2),
reg_date DATE,
balance DECIMAL(16,2),
PRIMARY KEY (acct_no)
);
DESC acct;#查看表结构
#账户交易明细表
CREATE TABLE acct_detail (
acct_no VARCHAR(32) NOT NULL,
trans_date DATE NOT NULL,
trans_sn VARCHAR(10) NOT NULL,
trans_type INTEGER NOT NULL,
amt DECIMAL(16, 2),
balance DECIMAL(16, 2),
PRIMARY KEY (trans_date, trans_sn)
);
#客户关系表
CREATE TABLE cust(
cust_no VARCHAR(32) NOT NULL,
cust_name VARCHAR(60) NOT NULL,
tel_no VARCHAR(32),
PRIMARY KEY(cust_no)
);
#增加一列
alter table acct add t_name varchar(64);
#删除一列
ALTER TABLE acct DROP COLUMN t_name;
#重命名
RENAME TABLE acct TO linxing;
RENAME TABLE linxing TO acct;
#给acct插入数据
INSERT INTO acct(acct_no,acct_name,acct_status,reg_date,balance)
VALUES('0007','tom',1,NOW(),4000.00),('0008','Mavelin',1,NOW(),6000.00);#now()取日期函数
INSERT INTO acct(acct_no,acct_name,acct_status,reg_date,balance)
VALUES('0001','to',2,NOW(),4000.00);
SELECT *FROM acct;#从acct表查询所有行、所有列
INSERT INTO acct_detail VALUES('0001',NOW(),'sn0001','1',2000.00,2000.00),
('0001',NOW(),'sn0002','1',500.00,2500.00),
('0002',NOW(),'sn0003','1',2500.00,2500.00);
INSERT INTO acct_detail VALUES('0007',NOW(),'sn0004','1',2000.00,2000.00);
SELECT *FROM acct_detail;
#查询
SELECT *FROM acct;
SELECT *FROM acct WHERE acct_no='0007';#带一个条件查询
SELECT *FROM acct WHERE acct_no='0007'OR balance=6000.00;
#统计 表里有几条数据
SELECT COUNT(*) FROM acct;
#统计 balance金额>=3000的
SELECT COUNT(*) FROM acct WHERE balance >=3000;
SELECT COUNT(*) FROM acct WHERE balance >=3000 AND acct_status='0';#两个条件
SELECT COUNT(*) FROM acct WHERE balance NOT IN
( SELECT balance FROM acct WHERE balance >1500);#带条件查数目条件为子查询
SELECT COUNT(*) '笔数',acct_status '状态' FROM acct
GROUP BY acct_status
HAVING COUNT(*) >=2;#组合查询having过滤 having笔数大于等于1笔就显示
#模糊查询
SELECT *FROM acct WHERE acct_name LIKE'z%';#z开头的
#最大 最小 平均 求和
SELECT MAX(balance),MIN(balance),AVG(balance),SUM(balance) FROM acct;
#联合union all 不去重复
SELECT '最大'AS '统计项',MAX(balance) AS '金额' FROM acct
UNION ALL
SELECT '最小'AS '统计项',MIN(balance) AS '金额' FROM acct
UNION ALL
SELECT '平均'AS '统计项',AVG(balance) AS '金额' FROM acct;
INSERT INTO acct(acct_no,acct_name,acct_status,reg_date,balance)
VALUES('0007','tom',1,NOW(),4000.00),('0008','Mavelin',1,NOW(),6000.00);#now()取日期函数
INSERT INTO acct(acct_no,acct_name,acct_status,reg_date,balance)
VALUES('0001','to',2,NOW(),4000.00);
SELECT *FROM acct;#从acct表查询所有行、所有列
INSERT INTO acct_detail VALUES('0001',NOW(),'sn0001','1',2000.00,2000.00),
('0001',NOW(),'sn0002','1',500.00,2500.00),
('0002',NOW(),'sn0003','1',2500.00,2500.00);
INSERT INTO acct_detail VALUES('0007',NOW(),'sn0004','1',2000.00,2000.00);
SELECT *FROM acct_detail;
#查询
SELECT *FROM acct;
SELECT *FROM acct WHERE acct_no='0007';#带一个条件查询
SELECT *FROM acct WHERE acct_no='0007'OR balance=6000.00;
#统计 表里有几条数据
SELECT COUNT(*) FROM acct;
#统计 balance金额>=3000的
SELECT COUNT(*) FROM acct WHERE balance >=3000;
SELECT COUNT(*) FROM acct WHERE balance >=3000 AND acct_status='0';#两个条件
SELECT COUNT(*) FROM acct WHERE balance NOT IN
( SELECT balance FROM acct WHERE balance >1500);#带条件查数目条件为子查询
SELECT COUNT(*) '笔数',acct_status '状态' FROM acct
GROUP BY acct_status
HAVING COUNT(*) >=2;#组合查询having过滤 having笔数大于等于1笔就显示
#模糊查询
SELECT *FROM acct WHERE acct_name LIKE'z%';#z开头的
#最大 最小 平均 求和
SELECT MAX(balance),MIN(balance),AVG(balance),SUM(balance) FROM acct;
#联合union all 不去重复
SELECT '最大'AS '统计项',MAX(balance) AS '金额' FROM acct
UNION ALL
SELECT '最小'AS '统计项',MIN(balance) AS '金额' FROM acct
UNION ALL
SELECT '平均'AS '统计项',AVG(balance) AS '金额' FROM acct;
#union 去重复 union all 不去重复
SELECT 'aaa' FROM DUAL
UNION
SELECT 'aaa' FROM DUAL;
SELECT 'aaa' FROM DUAL
UNION ALL
SELECT 'aaa' FROM DUAL;
#修改数据
UPDATE acct SET balance =balance+1000
WHERE acct_no='0007'
#
UPDATE acct SET reg_date=(SELECT NOW() FROM DUAL)
WHERE acct_no='0008';
#排序
SELECT *FROM acct ORDER BY balance ASC;#升序
SELECT *FROM acct ORDER BY balance DESC;#降序
SELECT *FROM acct ORDER BY acct_name ASC, balance DESC;#两个条件name升balance降
#delete
SELECT *FROM acct;
DELETE FROM acct WHERE acct_no='0007';
SELECT 'aaa' FROM DUAL
UNION
SELECT 'aaa' FROM DUAL;
SELECT 'aaa' FROM DUAL
UNION ALL
SELECT 'aaa' FROM DUAL;
#修改数据
UPDATE acct SET balance =balance+1000
WHERE acct_no='0007'
#
UPDATE acct SET reg_date=(SELECT NOW() FROM DUAL)
WHERE acct_no='0008';
#排序
SELECT *FROM acct ORDER BY balance ASC;#升序
SELECT *FROM acct ORDER BY balance DESC;#降序
SELECT *FROM acct ORDER BY acct_name ASC, balance DESC;#两个条件name升balance降
#delete
SELECT *FROM acct;
DELETE FROM acct WHERE acct_no='0007';
SELECT *FROM acct ORDER BY balance DESC
LIMIT 3 #limit 函数将前面3行取出
LIMIT 3 #limit 函数将前面3行取出
SELECT *FROM acct WHERE acct_no IN('0001','0008');#in 后跟一个集合
SELECT *FROM acct WHERE acct_no NOT IN('0001','0002');#not in 不在集合里的
SELECT *FROM acct WHERE acct_no IN
(SELECT acct_no FROM acct WHERE balance>3000);#in后可跟一个查询的结果
SELECT *FROM acct WHERE acct_no NOT IN(SELECT acct_no FROM acct WHERE acct_no='0005');
#显示查询到的所有信息 #显示查acct_no满足条件的信息
DESC acct;
INSERT INTO acct(acct_no,acct_name,acct_status,balance)VALUES(
'0005','wangwu','1',2000);
SELECT *FROM acct WHERE reg_date IS NULL;
SELECT *FROM acct WHERE acct_no NOT IN('0001','0002');#not in 不在集合里的
SELECT *FROM acct WHERE acct_no IN
(SELECT acct_no FROM acct WHERE balance>3000);#in后可跟一个查询的结果
SELECT *FROM acct WHERE acct_no NOT IN(SELECT acct_no FROM acct WHERE acct_no='0005');
#显示查询到的所有信息 #显示查acct_no满足条件的信息
DESC acct;
INSERT INTO acct(acct_no,acct_name,acct_status,balance)VALUES(
'0005','wangwu','1',2000);
SELECT *FROM acct WHERE reg_date IS NULL;
SELECT *FROM acct WHERE acct_no NOT IN(
SELECT DISTINCT acct_no FROM acct_detail
#不同的有区别的
)
SELECT DISTINCT acct_no FROM acct_detail
#不同的有区别的
)
#联合查询 先看表SELECT *FROM acct_detail;
SELECT a.acct_no, a.acct_name, b.trans_date, b.amt
FROM acct a, acct_detail b
WHERE a.acct_no = b.acct_no;
#外联接 左联接
SELECT a.acct_no,a.acct_name,b.trans_date,b.amt
FROM acct a
LEFT JOIN acct_detail b
ON a.acct_no =b.acct_no;
SELECT a.acct_no, a.acct_name, b.trans_date, b.amt
FROM acct a, acct_detail b
WHERE a.acct_no = b.acct_no;
#外联接 左联接
SELECT a.acct_no,a.acct_name,b.trans_date,b.amt
FROM acct a
LEFT JOIN acct_detail b
ON a.acct_no =b.acct_no;
#case
SELECT *FROM acct;
SELECT acct_no,
CASE acct_status
WHEN '0'THEN'正常'
WHEN '1'THEN'冻结'
WHEN '2'THEN'销户'
WHEN '3'THEN'挂失'
WHEN '9'THEN'待激活'
ELSE'未知'
END'status'
FROM acct;
SELECT *FROM acct;
SELECT acct_no,
CASE acct_status
WHEN '0'THEN'正常'
WHEN '1'THEN'冻结'
WHEN '2'THEN'销户'
WHEN '3'THEN'挂失'
WHEN '9'THEN'待激活'
ELSE'未知'
END'status'
FROM acct;
阅读全文
0 0
- Oracle基础语句
- Oracle 基础 语句大全
- oracle基础sql语句
- Oracle 基础语句备忘
- Oracle基础语句大全
- oracle基础数据库语句
- ORACLE基础语句-建表
- Oracle基础sql语句
- oracle基础语句
- oracle sql语句优化基础
- oracle 建表 各种基础语句
- Oracle基础 --常用SQL语句
- Oracle—SQL基础语句
- 【oracle资料】oracle sql语句 基础 学习
- ORACLE基础SQL,常用语句大集合
- 最实用的oracle基础语句
- Oracle 最基础的一些语句
- Oracle DBA 基础之 DDL 语句
- Java语言程序设计(基础篇)第十版
- HDU 4370 0 or 1(邻接矩阵+定点非自环最小环)
- CSS学习—文字排版
- Feign使用Hystrix无效原因及解决方法
- 记录Django 连接Mysql 以及出现问题
- oracle基础语句
- Coach CodeForces
- ORACLE连接配置
- CentOS7.3安装zip、unzip命令
- socket
- Elasticsearch
- 树状数组(BIT)
- tensorflow让彩色图变成灰度图
- Deep Watershed Transform for Instance Segmentation