1、对于外链接(left join ,right join),不管on后面跟什么条件,左表(右表)的数据全部查出来,要想过滤需把条件放到where后面。
2、对于内连接(inner join),满足on后面的条件表的数据才能查出,可以起到过滤作用,也可以把条件放到where后面。
3、Case两种的写法:简单Case函数和Case搜索函数:
简单Case函数:
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
Case搜索函数:
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
4、Oracle数据库递归查询父节点和子节点。
--查询所有子角色(不包括本身)
select * from mt_role t where t.delete_flag='0'
start with t.parent_code='org' connect by prior t.code=t.parent_code;
--查询所有子节点(包括本身)
select * from mt_role t where t.delete_flag='0'
start with t.code='org' connect by prior t.code=t.parent_code;
--查询所有父节点(包括本身)
select * from Mt_role role start with role.CODE='21323' connect by prior role.PARENT_CODE=role.CODE;
--start with :根结点的限定语句
--connect by :连接条件,其中用prior表示上一条记录,比如connect by prior id=parentid就是说上一条记录的id是本条记录的parent,即本记录的父亲是上一条记录。
5、oracle、mysql、sqlserver数据库连接写法
JDBC的URL=协议名+子协议名+数据源名。
(1)协议名总是"jdbc"。
(2)子协议名由JDBC驱动程序的编写者决定。
(3)数据源名也可能包含用户与口令等信息。
1、Oracle
驱动:oracle.jdbc.driver.OracleDriver
URL:jdbc:oracle:thin:@localhost:port:dbname
port:端口号,默认是1521
Oracle的URL有几种写法:
1)Oracle JDBC Thin using an SID 方式:
jdbc:oracle:thin:@host:port:SID
例如:
jdbc:oracle:thin:@localhost:1521:orcl
(1)jdbc:oracle:thin:@localhost:1521:databaseName 常用操作sql的工具:sqlDeveloper.exe,还可以用其他数据库,如mysql等。
(2)jdbc:oracle:oci:@localhost:1521:databaseName 用来操作SQL的工具只能用:PL/SQL Developer,数据库集群时候常用此连接,比上面那个多点功能,性能好点。
2)Oracle JDBC Thin using a ServiceName 方式:
jdbc:oracle:thin:@//host:port/service_name
例如:
jdbc:oracle:thin:@//localhost:1521/orcl
2 、MySql
驱动:com.mysql.jdbc.Driver
URL:jdbc:mysql://localhost:port/dbname
port:端口号,默认3306
3 、SQL Server
驱动:com.microsoft.jdbc.sqlserver.SQLServerDriver
URL:jdbc:microsoft:sqlserver://<localhost><:port>;DatabaseName=<dbname>
port:端口号,默认是1433