数据常见使用方式(CRUD)-复杂SQL

数据库如何创建

如何使用命令进入数据库: 
mySQl :1. 链接本地:`mysql -u root(定义的用户名) -p (填写密码)` 
  		2.通用:`mysql -u(root) -p(密码) -h 127.0.0.1 -P 3306`
  		
创建库:`1.create database 库名 
		2.create database 库名 charset 编码(一般常见UTF8/JBK)`
		3.create database if not exists  库名 charset 编码
删除库: 1.drop database 库名
		2.drop database if exists 库名
查看库:show databases 
进入库: use 库名
查看表:show table 
删除表:1.drop table 表名
		2.drop table if exists 表名
进入表/查看表元素:desc 表名
退出客户端 :quit /exit /ctrl+c
为什么需要指定编码?
在数据库中的数据一般防止乱码多数属于UTF8,使用cmd命令属于JBK编码格式,若在添加数据若不指定编码默认会使用cmd默认编码,为了防止乱码情况才会指定编码。
数据库常见类型与Java八大基本类型分表是什么:
1.数据库常见类型:char varchar int text 
2.java八大基本类型:byte short char int long float double boolean

SQL的基础用法

1. 查询:`select 字段 as 别名 form 表名 (后面可以跟筛选条件)`
*:若直接仅实现排序可以不用写where 可以直接order by (升序默认)/(desc)
*:稍微变相用法:可以使用select 包含:另一个select 
如:` select 
		* 
	from
		a1 as a 
	left join
		(select * from b)
		as c
	on
		a.uuid = c.id
	where ...
	 `
2.修改:`update 表名 set 字段  = 修改字段 (可以修改多个字段,后面可以跟筛选条件)`
例:`update tableName  set a=c ,b=d where a isnotNull or b isnotNull`
*:使用 CASE 
WHEN ...THEN  END (也可以使用于查询中,可以将数据存储的数值可以转为所需数据)
实例:`   UPDATE
        a vjd
       SET
vjd.END_TIME =
        CASE WHEN
        jd.PARENT_NODE_CODE ='0'THEN jd.END_TIME END,

vjd.LAST_TIME =
        CASE WHEN
       jd.PARENT_NODE_CODE !='0' THEN jd.END_TIME END
       FROM
       APP_PRO_JINDU_DOC jd
       WHERE
       jd.PRO_ID =  vjd.PRO_ID
       AND
       jd.PRO_ID = #{proId}
       AND
       vjd.NODE_CODE = jd.NODE_CODE`
3.删除:`delete from 表名 (后面可以跟子查询)`
例:`delete from a where a.uuid = '1'`// 当id为1,才会删除该条数据,若不适用筛选条件则会清空该表所有数据 
//等同于 TRUNCATE TABLE 表名
TRUNCATE TABLE 表名:保留表结构,清空表数据
4.添加:
若在数据库使用命令添加,为了确保数据不出现乱码:
使用命令:charset set  utf8;(因时间过长,大概是这个样子)
一种:insert into 表名 values(这里指表中所有字段值)   
二种:insert into 表名 (字段1,字段2....values (字段1,字段2...) 
扩展Oracle数据库:查询所有的父节点
若模糊查询情况
select * from aa 
start wITh 列名='需要获取统一底层的数据'
connect by  parente = id  // 若根据顶级获取所有的子节点可以将数据倒过来

*根据自己的总结得: 若不存在任何条件时,可以使用此方法,若查询出来的层级关系再去使用过滤条件等同于没用使用层级查询.*
*个人解决方法:前提时查询层级结构,可以根据条件获取说需要的数据,再写一个查询所有的方法,通过list集合再所有的数据中过滤掉已经需要显示的数据,通过递归去实现传入查询条件参数(查询所有数据集合list<对象>,需要的数据与上级的关联关系set<string>,接受集合list<对象>),将查询条件查询的数据与递归获取的数据合并为一个集合,(为了考虑一个节点存在子字节情况,可以合并根据set或者遍历去除重复的数据)即可获取所得的数据结构 ,获取数据存在其他条件根据业务去调整了。*
扩列:
sqlplus有几种登陆方式Oracle数据库, 比如:

1.以操作系统权限认证的oracle sys管理员登陆

C: > sqlplus "/as sysdba"

2.不在cmd或者terminal当中暴露密码的登陆方式

C: > sqlplus /nolog

SQL> conn /as sysdba

或者

C: > sqlplus /nolog

SQL> conn sys/password as sysdba

3.非管理员用户登陆

C: > sqlplus scott/tiger

4.非管理员用户使用tns别名登陆

C: > sqlplus scott/tiger@orcl

5.管理员用户使用tns别名登陆

C: > sqlplus sys/password@orcl as sysdba

你可能感兴趣的:(知识分享,数据库,mysql,database)