Oracle-SQL命令复习总结_1

SQL命令复习:

  • 取值语句:SELECT

  • 数据操作语句 Data manipulation language(DML)
    INSERT UPDATE DELETE

  • 数据定义语句 Data definition language(DDL)
    CREATE ALTER DROP RENAME TRUNCATE

  • 事务控制语句 Transaction control
    COMMIT ROLLBACK SAVEPOINT

  • 数据控制语句 Data control language(DCL)
    GRANT REVOKE

登陆sys超管账户:

conn sys as sysdba
--提示输入密码

创建新用户:

create user name identified by password;
--name:新用户的名字
--password:新用户的密码

给创建的用户授权:

grant connect,resource to Oliver [with admin option 同时获得权限分配权];
--将连接数据库和进入数据缓存区权限赋予给Oliver用户
--还有其他权限可用赋予,根据需要授权

用户登陆:

conn oliver
conn oliver/password
--第一种会提示输入密码,第二种密码直接输入,但是密码会显示,不安全

导入SQL脚本

start e:\oracle.sql;
--start 后面接文件路径,或者可以直接@ 文件路径

查看表结构:

desc user_table 
--user_table为自带的数据字典表

调整表显示结构:

col colname format 9999;
--设置colname列显示4个数字的宽度
col colname format a10;
--设置colname列占有10个字符的宽度
set linesize 20;
--设置行宽为20个字符
--不要设置的小于该列数据的宽度,否则显示会乱码

查询语句:

  • SELECT语句
SELECT [DISTINCT] {*,column[alias],....} 
FROM table;
--DISTINCT表示查找不重复的语句
--*为通配符,代表查询table中所有的列,或查指定的列,table为查找的表名
--SELECT 语句可以写成一行或者多行,语句长时分行有益于理解,不区分大小写,关键字最好大写

--算术表达式
--可使用加减乘除来处理查到的列值,但仅限数字和日期类型,若是有一项为null,结果也为null
--可用NVL(column,value)函数将空值换成指定值,value为替换的值
--查询员工年薪
SELECT name,salary*12 
FROM emp_t;

--列的别名
--别名用来替换原来的列名,增加可读性
--若是别名里包含了空格、特殊的字符或者要区分大小写则需要双引号
SELECT name "名字" 
FROM emp_t;
  • ORDER BY 子句
SELECT [DISTINCT] {*,column[alias],....} 
FROM table
[ORDER BY {column,expr,alias} [ASC|DESC]];
--ORDER BY 总是放在SELECT语句末尾
--column为列名,expr为表达式,alias为别名,ASC为升序(默认可省略),DESC为降序
--后面可接多列,按顺序排列过来,空值永远是最大的!
SELECT name,dept_id,salary FROM emp_t
ORDER BY dept_id,salary DESC;
--这里dept_id按升序排列,salary按降序排列 
  • WHERE子句
SELECT [DISTINCT] {*,column[alias],....} 
FROM table
[WHERE condition(s)]
[ORDER BY {column,expr,alias} [ASC|DESC]];
--在FROM子句后面,condition(s)为一个或者多个条件
--对SQL语句返回的数据集进行筛选,数据集可以是一张表,也可以是另一条SELECT语句返回的数据集
--字符串和日期用单引号括起来,数值不用,日期格式为显示格式(‘DD-MON-YY’),否则作为一个字符串

--比较运算符:
-- = > >= < <= != <> 
--BETWEEN...AND..., IN(list), LIKE, IS NULL,NOT BETWEEN,NOT IN,NOT LIKE,IS NOT NULL 

--BETWEEN...AND...包括起止值
SELECT name,salary
FROM emp_t
WHERE salary BETWEEN 5000 AND 8000;

--IN 限定内容,仅是括号内的值
SELECT name,dept_id
FROM emp_t
WHERE dept_id IN (2,3);

--LIKE 模糊查询 %表示0或多个字符 区分大小写,以下表示以O开头
SELECT name 
FROM emp_t
WHERE name LIKE 'O%'

--IS NULL 判断是否为空,不能用   =运算符
SELECT name,age
FROM emp_t
WHERE age IS NULL;

--逻辑运算符
--NOT(非) AND(与) OR(或)

--AND 要求满足前后两个条件
SELECT name,salary
FROM emp_t
WHERE name='oliver'
AND salary>4000;

--优先级 NOT>AND>OR
--先判断salary>300 AND dept_id=3
SELECT name,salary,dept_id
FROM emp_t
WHERE salary>3000
AND dept_id=3
OR dept_id=2;

如果有错误或者是可以改进的地方,还请各位大神指点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值