SQL的基础学习
①,DML( Data Manipulation Language):数据操纵语言
②,DDL(Data Definition Language):: 数据定义语言
③,DCL(Data Control Language): 数据控制语言
- DML用于查询与修改数据记录,包括如下SQL语句:
INSERT:添加数据到数据库中
UPDATE:修改数据库中的数据
DELETE:删除数据库中的数据
SELECT:选择(查询)数据(SELECT是SQL语言的基础,最为重要。)
- DDL用于定义数据库的结构,比如创建、修改或删除数据库对象,包括如下SQL语句:
CREATE TABLE:创建数据库表
ALTER TABLE:更改表结构、添加、删除、修改列长度
DROP TABLE:删除表
CREATE INDEX:在表上建立索引
DROP INDEX:删除索引
- DCL用来控制数据库的访问,包括如下SQL语句:
GRANT:授予访问权限
REVOKE:撤销访问权限
COMMIT:提交事务处理
ROLLBACK:事务处理回退
SAVEPOINT:设置保存点
LOCK:对数据库的特定部分进行锁定
SQL 语言大小写不敏感。
SQL 可以写在一行或者多行
关键字不能被缩写也不能分行
各子句一般要分行写。
使用缩进提高语句的可读性。
-
数字和日期使用的算输运算符:+,-,*,/
-
操作符优先级:
乘除的优先级高于加减
同一优先级运算符从左向右执行
括号内的运算先执行
空值是无效的,未指定的,未知的或不可预知的值
空值不是空格或者0
重命名一个列, 便于计算。
紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或 特殊的字符并区分大小写。
把列与列,列与字符连接在一起。
用 ‘||’表示。
可以用来‘合成’列,如:System.out.println(123 + “hello” + 123) ; —> 123hello123
字符串可以是 SELECT 列表中的一个字符,数字,日期。
日期和字符只能在单引号中出现。
每当返回一行时,字符串被输出一次。
如:
--------筛选条件:日期为1980-12-17入职的员工--------
select a.* from emp a where a.hiredate = ‘17-12月-1980’;
select a.* from emp a where to_char(a.hiredate, ‘yyyy-MM-dd’) = ‘1980-12-17’;
默认情况下,查询会返回全部行,包括重复行,在 SELECT 子句中使用关键字 ‘DISTINCT’ 删除重复行。如:select distinct depart_id from employees;
SQL 和 SQL * Plus
- 使用SQL*Plus可以干什么?:
描述表结构。
编辑 SQL 语句。
执行 SQL语句。
将 SQL 保存在文件中并将SQL语句执行结果保存在文件中。
在保存的文件中执行语句。
将文本文件装入 SQL*Plus编辑窗口。
- 比较运算符
- 其它比较运算
--------名字的第二位是m的员工--------
select a.* from emp a where a.ename like ‘_m%’;
--------员工中名字含有_的员工有那些’'表示转义字符--------
select a.* from emp a where a.ename like ‘%_%’ escape ‘’;
- 优先级
排序
order by 需要排序的字段 默认从小到大
desc从大到小 asc小到大
--------多重排序,如果工资从高往低排序,如果工资相同名字从低往高排序--------
select a.*,a.rowid from emp a order by a.sal desc ,a.ename asc
--------按照别名排序--------
select a.ename,a.sal*12 yearSal from emp a order by yearSal desc