sql简介:
SQL是什么?
- Structured Query Language结构化者询语言
对程序增删改查时使用
SQL的组成:
-
数据定义语言(DDL): CREATE、ALERT、 DROP、TRUNCATE
-
数据操作语言(DML): INSERT、UPDATE、 DELETE、 SELECT
-
事务控制语言(TCL): COMMIT、SAVEPOINT、ROLLBACK
-
数据控制语言(DCL): GRANT、REVOKE
运算符:
-
一种符号,它是用来进行列间或者变量之间的比较和数学算的
-
包括算术运算符、赋值运算符、比较运算符、逻辑运算符
-
算数运算符: + - * %
-
赋值运算符: 把一个数或变量或表达式复制给另一个变量
-
逻辑运算符: AND(和) OR(并且) NOT(取反)
逻辑运算符
AND 当且仅当两个布尔表达式都为true时,返回TRUE。
OR 当且仅当两个布尔表达式都为false,返回FALSE。
NOT 布尔表达式的值取反
- 比较运算符: = > < <> >= <= !=
-
+加运算,求两个数或表达式相加的和,如6+8
-
-减运算,求两个数或表达式相减的差
-
*乘运算,求两个数或表达式相乘的积
-
/除运算,求两个数或表达式相除的商,如5/3的值为1
-
%取模运算,求两个数或表达式相除的余数,如: 5%3的值为2
语法(增删改查):写完一定要用commit;提交
增加:
//添加单行注释
INSERT INTO (表名字段)values(值); --每个数据值的数据类型必须相匹配注意约束
//添加多行注释复制添加复制其他表中的数据 --注意列的数量
insert into 表名(列名)
select列名
from 表名
--默认值可以写把字段1设置成默认值
--insert的话, defalt可以要盖not nul约束
insert into表明(字段1) values(default);
修改:
//修改set后面写修改的值where后面是判断要修改的值
UPDATE表名SET列名=更新值
[WHERE更新条件]
--update,则default不一 定能要盖not null约束
1、更新多列数据使用逗号隔开
2、勿忘条件限制,以防有效数据的丢失
删除:
使用DELETE删除数据行
语法
DELETE [FROM]表名[WHERE <删除条件>]
使用TRUNCATE删除数据行
语法
TRUNCATE TABLE 表名
delete和truncate 的异间:
delete和truncate的区别相同都是删除数据操作
删除数据操作
不同:
1.delete可 以删除部分数据(加入where); truncate不行
2.在删除相间的数据量时,delete效率慢,truncate效率快
3.delete 删除数据后,会生成数据碎片会记录到日志中,可以恢复,truncate不能恢复
4.delete truncate删除 后都不会影响自增(和mysql不同的地方)
查询:
普通查询:select字段from表名where字段=值:
查询全部:select * from表名;
起别名别名的使用范围:当前sq语句中字段别名不需要用引号括起来
select字段名as字段别名from表名:
常量列:一般适用于分页 select'云图智联as学院from表名;
排序 :
升序:select字段from表名order by根据排序字段asc,
降序:select字段from表名order by根据排序字段desc;
两列排序:当第一个排序遇到相同时,根据第二个排序
select * from表名order by字段1.字段2;
第一个升序第二个降序:select * from表名order by字段1 desc字段2 asc;
sqlplus常用语句
show user;
select * from user_role_privs;
select * from tab; --查看当前用户所有表 tab指对象
desc student3; --查询当前表结构
exit; --退出
conn --更换用户
Oracle常用SQL语句
1、连接SQL*Plus system/manager
2、显示当前连接用户SQL> show user
3、查看系统拥有哪些用户SQL> select * from all_users;
4、新建用户并授权SQL> create user a identified by a;(默认建在SYSTE M表空间下)SQL> grant connect,resource to a;
5、连接到新用户SQL> conn a/a
6、查询当前用户下所有对象SQL> select * from tab;
7、建立第一个表SQL> create table a(a number);
8、查询表结构SQL> desc a
9、插入新记录SQL> insert into a values(1);
10、查询记录SQL> select * from a;
11、更改记录SQL> update a set a=2;
12、删除记录SQL> delete from a;
13、回滚SQL> roll;SQL> rollback;
14、提交SQL> commit;
15、查出当前用户所有表名select unique tname from col;
常用函数
Oracle SQL 提供了用于执行特定操作的专用函数。这些函数大大增强 了 SQL 语言的功能。
- 单行函数:对每一个函数应用在表的记录中时,只能输入一行结果,返回一个结果,
比如:MOD(x,y)返回 x 除以 y 的余数(x 和 y 可以是两个整数,也可以是表中的整数列)。 常用的单行函数有: 字符函数:对字符串操作。
数字函数:对数字进行计算,返回一个数字。
转换函数:可以将一种数据类型转换为另外一种数据类型。 日期函数:对日期和时间进行处理。 - 聚合函数:聚合函数同时可以对多行数据进行操作,并返回一个结果。比如 SUM(x)
字符函数
函数 | 功能 |
---|---|
initcap(char) | 首字母大写 |
lower(char) | 转换为小写 |
upper(char) | 转换为大写 |
trim(char,ser) | 左剪裁 |
rerim(char,set) | 右剪裁 |
translate(char.,from,to) | 按字符翻译 |
replace(char,search str,replace str) | 字符串替换 |
instr(char,substr[post]) | 查找子串位置 |
substr(char,pos,len) | 取子字符串 |
length(char) | 字符串长度 |
concat(char1,char2) | 连接字符串 |
数字函数
函数 | 功能 |
---|---|
abs(n) | 取绝对值 |
ceil(n) | 向上取值 |
sin(n) | 正弦 |
cos(n) | 余弦 |
sign(n) | 取符号 |
floor(n) | 向下取整 |
power(m,n) | m的n次幂 |
mod(m,n) | 取余数 |
round(m,n) | 四舍五入 |
trunc(m,n) | 截断 |
sqrt(n) | 平方根 |
1 ‐‐ 四舍五入
2 select round(255,‐1) from dual;
3 ‐‐ 舍弃小数位
4 select trunc(255,‐1) from dual;
常用日期函数
函数 | 功能 |
---|---|
month between(date1,date2) | 返回两个日期间的月份 |
add_ month(date,n) | 返回把月份数n加到日期date,上的新日期 |
next_ day(date,week) | 返回指定日期后的星期对应的新日期 |
last-day(date) | 返回指定日期所在月的最后一天 |
常用转换函数
函数 | 功能 |
---|---|
to_ char(字符串 列,格式字符串) | 转换成字符串类型 |
to date(字符串,格式字符串) | 转换成日期类型 |
to_ number(字符串) | 转换成数值类型 |
其他函数
函数 | 功能 |
---|---|
nvl(exp1,exp2) | 如果exp1的值为null,则返回exp2的值,否则nvl(exp1,exp2) 返回exp1的值 |
nvl2(exp1,exp2,exp3) | 如果exp1的值不为null,则返回exp2的值,否则返回exp3的值 |
decode(value,if1,then1,if2.hen…else) | 如果value的值为if1,则返回then1的值,如果为if2,则返回then2的值,… 否则else的值 |
统计函数
(1)avg(x):返回x的平均值
select avg(grade) from sc;
(2)count(x):返回统计的行数
select count(name) from sc;
(3)max(x):返回x的最大值
select max(grade) from sc;
(4)min(x):返回x的最小值
select min(grade) from sc;
(5)sum(x):返回x的总计值
select sum(grade) from sc;