数据库常用操作



Mysql操作数据库

cmd 中连接mysql时报’mysql’不是内部或外部命令,也不是可运行的程序或批处理文件

添加环境变量,路径指到 bin ,例如:D:\MySQL\MySQL_Server_5.5\bin

将sql文件导入mysql

1、首先使用cmd登录mysql,命令:

1
2
3
4
5
mysql -h localhost -u root -p
或 (root为用户名)
mysql -u root -p
-----------------------------
然后输入密码即可登录成功。

2、查看服务器上有哪些数据库:

1
show databases;

3、切换当前使用的数据库:

1
use databaseName;

4、创建数据库:

1
create database databaseName;

5、删除数据库:

1
drop database databaseName;

6、导入sql文件,输入“source sql文件的路径”(注意你的文件路径要是复制来的,要将”"全部换成“/”)

7、显示当前数据库中的表:

1
show tables;

8、查询表中的所有数据:

1
select * from tableName;  //属于sql语言的范畴了

9、修改密码

1
update user set authentication_string=password('新密码') where user='root' ;

10、退出:

1
exit;

mysql计算两个日期之间的天数/周数/分钟/秒数

1、利用TO_DAYS函数

  • 计算相差天数
    1
    select to_days(now()) - to_days('20200827')

2、利用DATEDIFF函数

1
select datediff(now(),'20200827')

以上两个:参数1 - 参数2 等于间隔天数

3、利用TIMESTAMPDIFF函数

  • 计算两日期之间相差多少周
1
2
// 以差七天为一周
select timestampdiff(week,'2020-09-29','2020-10-04');
  • 计算两日期之间相差多少天

    1
    select timestampdiff(day,'2020-10-01','2020-10-07');
  • 计算相差分钟

    1
    select timestampdiff(MINUTE,'2020-10-01','2020-10-07')
  • 计算相差秒数

    1
    select timestampdiff(SECOND,'2020-10-01','2020-10-07')

感谢:CSDN博主-jobbible

mysql查询语句where后面加if判断

1
2
3
4
5
// 当 id=1 为true,执行 count < 10
// 当 id=1 为false,执行 count > 500
SELECT *
FROM user`
WHERE IF( id = 1, count <10, count > 500 )

说明:WHERE IF(条件, true执行条件, false执行条件 )

感谢:CSDN博主-027099

MySQL函数

GROUP_CONCAT

MySQL数据库,将一列数据组合成一行,并以逗号分割,GROUP_CONCAT

执行这段SQL:

1
SELECT GROUP_CONCAT(ENIN_NAME) FROM  sys_c_en_entityinfo;

就可以将如下列的值合并成一行,并以逗号间隔。

也可以执行这段SQL:

1
SELECT GROUP_CONCAT(CONCAT('\'',ENIN_NAME,'\'')) FROM  sys_c_en_entityinfo;

就变成这样了,而且相对于第一种,每个值都以单引号’ ‘包裹

参考链接:CSDN博主-javaPie

Oracle数据库操作

常见用户操作

无密码登录数据库(Dos命令)

1
sqlplus / as sysdba

查看oracle版本

1
select * from v$version

查看所有用户

1
2
select * from all_users;
select * from user_users;

查看用户或角色系统权限

1
select * from user_sys_privs;

查看角色包含的权限

1
select * from role_sys_privs order by role;

查看用户对象权限:

1
2
select * from all_tab_privs;
select * from user_tab_privs;

查看用户或角色所拥有的角色

1
select * from user_role_privs;

创建用户

1
create user test identified by test;

更改用户

1
2
<!-- 注意添加双引号 -->
alter user test identified by "123456";

解锁scott用户

1
2
3
4
5
6
7
8
9
1.打开cmd 输入sqlplus
>输入用户名:system
输入口令:安装时候你设置的密码

2.输入:**alter user scott account unlock;**(来进行用户解锁)
>一定要注意 ';'

3.成功解锁,去plsql上进行登陆,密码为你安装时候设置的,默认为tiger
>若是原始密码,输入后会提示你设置新的密码

删除用户

1
2
语法:drop user 用户名;
例子:drop user test;

用户密码的修改

1
2
输入:alter user scott identified by 密码
>例如 alter user scott identified by 123; 即将scott账户的密码修改为123

授予权限

1
2
3
4
5
6
7
8
GRANT "CONNECT" TO user  WITH ADMIN OPTION;
GRANT "DBA" TO user WITH ADMIN OPTION;

GRANT CREATE ANY TABLE TO user;
GRANT SELECT ANY TABLE TO user;
GRANT COMMENT ANY TABLE TO user;
GRANT LOCK ANY TABLE TO user;
GRANT SELECT ANY DICTIONARY TO user;

使用imp导入dmp文件

方式一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
--创建数据表空间
create tablespace CICI
logging
datafile 'D:\OpenSourse\Oracle\oradata\sample\CICI.DBF'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;

--创建用户并指定表空间
CREATE USER cici IDENTIFIED BY cici
PROFILE DEFAULT
DEFAULT TABLESPACE CICI
ACCOUNT UNLOCK;
-- 为用户赋予权限
GRANT connect, resource TO cici;
GRANT create session to cici;

方式二

创建表空间

1
create tablespace mall_vue DATAFILE  'D:\OpenSourse\Oracle\oradata\sample\daping.dbf' size 100M

创建用户并指定表空间

1
2
3
4
5
6
7
'username' 为创建的用户名; '12345678'为创建的新用户登录密码; 指定数据表空间

create user username identified by 12345678
default tablespace file_data

示例:
create user mall_vue identified by mall_vue default tablespace mall_vue

赋予权限

1
2
3
4
5
grant connect,    -- 连接权限
resource, -- 资源权限
dba -- 数据库管理员权限

grant connect,resource to mall_vue

授权管理员权限

1
grant dba to  mall_vue

导入数据

1
2
3
4
imp 用户名/密码@实例名 file=dmp文件路径 log=要导出的日志路径 full=y

full=y -- 配置导入文件中的全部内容,有可能有多个用户的内容
ignore=y -- 配置导入的时候,如果没有表,创建表并导入数据,如果已经存在的表,忽略创建表,但不忽略导入。

Oracle 常用命令
Oracle 基础知识小结

用sys和system登陆提示权限不足 ORA-01031 解决方法

1
2
3
1、win+R键调出运行窗口,然后输入: compmgmt.msc
2、依次展开本地用户和组-组,在里面找到ora_dba,右键属性-添加-高级-立即查找
3、找到你登陆win10系统的账号,选择确定-确定-确定,就OK啦。

IMP-00010: 不是有效的导出文件,头部验证失败。

问题描述,由于是从11G导入到10G,那么只需要修改imp的dmp文件使其为本库 版本即可。

解决办法:

将dmp文件头部的”V11.02.00” 改为”V10.02.00”即可。

Oracle导出数据库表

记得赋予用户权限
方式一:
PL/SQL中Tools工具栏里选择 Export User Objects…,可以导出 .sql文件

方式二:
win+R导出 dmp文件:包含sql代码和数据

exp 用户名/密码@orcl file=D:\dtgl_20200214.dmp owner=用户名

查找 oracle 数据库中包含某一字段的所有表的表名

1
select table_name  from DBA_TAB_COLUMNS where COLUMN_NAME='字段名';

注意:字段名需要大写,否则你查不出来

mybatis+oracle实现简单的模糊查询

1、使用 concat

1
2
select * from cat_table where cat_name like concat(#{catName},'%')      --单个百分号
select * from cat_table where cat_name like concat(concat('%',#{catName}),'%') --前后百分号

2、使用 ||

1
select * from cat_table where cat_name like '%' || #{catName} || '%'

3、使用 instr

1
select * from cat_table where instr(#{catName},'helloworld')>0

参考链接

Oracle函数

wm_concat()

wm_concat()函数是oracle行列转换函数,该函数可以把列值以‘,’分割开来,并显示成一行。同MySQL的 GROUP_CONCAT 函数

进阶用法-传送门-可以拼接单位/数值

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  1. © 2020-2021 Lauy    湘ICP备20003709号

请我喝杯咖啡吧~

支付宝
微信