数据库常用代码

提示:未结束,后面还会更新

说明:Oracle和Navicat数据库几乎都可以通用(看好备注即可)。如有错误或需要帮助的请联系博主QQ/微信:3132876589

1、创建/删除表指令,以表stu_inf为参考

非空(not null)、
唯一(unique)、
检查(check)、
主键(primary key)、
外键(references或foreign key)
//删除整张表
delete from stu_inf;
//创建表
create table stu_inf(
xh number(12),
xm varchar(10),
xb varchar(5),
csrq date,
sfzh varchar2(20),
jg varchar(50)
);

将员工id为3的员工工资增加100的sql语句

使用 update 更新记录:
update 工资表 set 工资 = 工资 + 100 where id = 3

2、为表stu_inf增加字段age,数据类型number(3)

alter table stu_inf add(age number(3),birthday date default sysdate);

3、修改表stu_inf字段xm,数据类型改成VARCHAR2(20)

alter table stu_inf modify(xm varchar(20));

4、给stu_inf的字段xm,重新命名为xmname

alter table stu_inf rename column xm to xmname;

5、删除stu_inf字段age

alter table stu_inf drop column age;

6、查询”男“字占用多少个字符

select lengthb('男') from dual;

7、修改XSB表数据,把王林的性别改为女

update xsb set xb='女' where xm='王林';

8、删除XSB表数据,删除专业为“通信工程”的学生数据

delete from xsb where zy='通信工程';

9、插入数据库(这里是oracle数据库的插入方法)

insert into xsb values('081101','王林','男',to_date('19990101','YYYYMMDD'),'计算机',50,null);
insert into xsb values('081103','王燕','女',to_date('19891006','YYYYMMDD'),'计算机',50,null);
insert into xsb values('081108','林一凡','男',to_date('19890805','YYYYMMDD'),'计算机',52,'已提前修完一门课');
insert into xsb values('081102','王林','女',to_date('19890129','YYYYMMDD'),'通信工程',40,'有一门课不及格');
insert into xsb values('081104','马琳琳','女',to_date('19890210','YYYYMMDD'),'通信工程',42,null);

Navicat数据库的插入方法

insert into 表名(字段名,字段名,字段名)values('0352',2,85);

10、只能输入男女,默认值为”男“(这里是oracle数据库方法)

xb char(3) default '男' check(xb='男' or xb='女'),

Navicat数据库的只能男女的方法

alter table 表名 modify column 字段名 enum('男','女');

11、常用数据字典

说明:数据字典作为一种元数据,在Oracle中的作用是存放整个数据库实例的基本信息,很多的数据字典都必须以system或者是sysdba用户登录才能够使用的。这些数据字典的结构,可以通过输入“desc 数据字典名称”的方式查询。

(1) 查看USER视图(当前用户所拥有的表)
SQL>select table_name from USER_TABLES;
(2) 查看ALL视图(当前用户可以查询的表)
SQL>select table_name from ALL_TABLES;
(3) 查看DBA视图(查询数据库中所有的表)
SQL>select table_name from DBA_TABLES;
(4) 查询数据库中当前存在的Oracle用户
SQL>select username from dba_users;
(5) 查询本用户所拥有的系统权限
SQL>select * from user_sys_privs;
(6) 查询本用户拥有其他用户对象的权限 
SQL>select * from user_tab_privs; 
(7) 查询本用户拥有的对象
SQL>select * from user_catalog;
(8) 查询当前数据库的详细信息 
SQL>select * from V$DATABASE;
(9) 取得oracle版本的详细信息 
SQL>select * from V$VERSION;
(10) 查看当前数据库所有日志文件的信息
SQL>select * from v$logfile;
(11) 查看当前数据库所有控制文件的信息。 
SQL>select * from V$CONTROLFILE; 
(12) 查看当前数据库所有数据文件的详细信息。 
SQL>select * from V$DATAFILE;

12、赋予用户连接数据库的权限(Oracle数据库)

grant create session to student ;

13、赋予用户连接数据库的角色(Oracle数据库)

grant connect to student;

14、回收用户连接数据库的权限(Oracle数据库)

revoke create session from student;

15、回收用户连接数据库的角色(Oracle数据库)

revoke connect from student;

16、创建表空间(Oracle数据库)

//ylxt是数据库名
create tablespace ylxt
datafile 'd:\temp\ylxt.dbf'
size 10m
autoextend on next 1m;
1.建立存放数据库的地方(创建表空间、数据文件)。图书存放地?
2.谁来管理数据库?(创建概要文件、创建用户、用户配置) 谁来管书?
3.数据改如何组成和维护?(创建表,增删改数据)书放哪个架子上,分类?
4.使用系统数据信息(数据查询,生成报表)统计书还有多少本?学生借读情况
5.数据备份和恢复(数据安全)书籍资料备份。


1、表空间管理
		1、表空间的操作有:数据文件(datafile)、数据文件的大小(size)、数据文件数据填满后要自动扩展(autoextend on next)。教材第49页
		2、语法格式:
			通用:create 对象类型 对象名  操作或属性;
			具体语法结构:
			 create tablespace sudent --表空间名 
			 datafile '数据文件存放的路径\数据文件名.dbf' --表空间文件存放路径 
			 size XXm --表空间默认初始大小
			 autoextend on  --用于设置自动增长,如果存储超过初始值之后,开始自动扩展
			 next XXm --用于设置扩展的空间大小
			 maxsize unlimited 或者XXm;--最大值无限制

2、创建用户时,跟用户有关的操作(属性)有哪些?
	create 对象类型 对象名 操作;
	create user 用户名 操作;
	(1)、密码->认证方式(identified by)
	(2)、默认表空间->default tablespace  ->机房
	(3)、使用表空间大小 ->quota          ->机位
	(4)、资源限制(概要文件) -> profile
	(5)、账号状态(account)->lock 或 unlock

	语法格式:
	create user 用户名 
	identified by 密码
	default tablespace 表空间
	quota 使用表空间大小 on  表空间 
	profile 概要文件
	account lock 或 unlock;




3、权限管理
	分两类:系统权限、对象权限
	
	grant 权限 to 用户;
	revoke 权限 from 用户;
	
	权限委托:
	
	grant 权限 to 用户 with admin option;
	
	对象权限:grant 权限 on 其他用户.对象名 to 用户;
	例子:
	grant select,insert,update,delete on hr.employee to 用户;



4、角色(role)
	一组权限的集合,便于管理权限
	(1)创建角色  ->生成放权限的袋子
		create role 角色名;
	(2)把权限放入角色中 ->把权限放到袋子中
		grant 权限 to 角色;
	(3)把权限从角色中撤销 ->把权限从袋子中拿走
		revoke 权限 from 角色;	
	(4)把角色(袋子)给用户(授权)
		grant 角色 to 用户;
	(5)把角色(袋子)从用户中撤销(取消权限)
		revoke 角色 from 用户;
	
	
5、概要文件(profile)的创建,限制limit
	 (1)create 对象类型 对象名 操作;
	
                create profile 概要文件名
	limit
	sessions_per_user --连接最大回话数
	connect_time 连接活动最大时间(分)
	idle_time --不操作空闲最大时间(分)
	failed_login_attempts --尝试输错口令次数
	password_lock_time --锁定时间(天)
	password_life_time --密码有效期(天)
	password_grace_time 宽限天数(天)
                password_reuse_time 能够使用重复密码间隔天数;
	
               (2)把概要文件配置给用户
              alter user 用户名 profile 概要文件名 ;

               (3)激活启用概要文件
              alter system set resource_limit=true;
6、创建表
(1) 表的操作:字段(列)、数据类型及长度、约束。
	(2) 语法格式
		通用:
			create 对象类型 对象名 操作;
		具体:
			create table 表名
			(
				列1 数据类型 列约束1,
				....
				列n 数据类型 列约束n,

				表(行) 约束1,
				...
				表(行)约束n
			);

(2)插入数据
    语法格式:
		insert into 表名(列1,列2,...,列n) 
		          values(列值1,列值2,...,列值n); 
				  
		insert into 表名 values(列值1,列值2,...,列值n); 


7、查询
(1)语法格式:
	select 显示的列或表达式(Excel的列)               约束显示的列,列之间用逗号分隔
	from 显示的信息来源于哪里(Excel表单)             如果有多个表,表之间用逗号分隔
	where 条件                                         约束显示的行
	group by 分类统计的列 having 统计函数作为条件      如果有多个统计列,列之间用逗号分隔
	order by 排序列1 asc或desc,排序列2 asc或desc,...;

	提示:select语句必须有from子句,如果不能确定显示的信息来源于某张表,则使用伪表dual代替。

(2)书写查询语句常用的步骤:
	 (1) 确定显示的列 =>解决select子句
	 (2) 确定显示的列是来自于哪张表 =>from子句
	 (3) 确定条件 =>where子句
	 (4) 确定条件中是否有来自另外的表的列 =>from 子句
	 (5) 如果from子句后有多张表,则要加上表之间的连接关系(外键)。
	 
8、数据备份
 1.在计算机上创建目录d:\dump,

   2.并把DIRECTORY对象指定到d:\dump中。
   create directory dump_dir as 'd:\dump';

   2.给用户授权可以读、写该目录的权限。
   grant read,write on directory dump_dir to scott;



导出(expdp)语法格式:

   1.expdp 用户名/密码  导出用户的账号和密码,放在第一个。
   2.directory=目录名称  输入数据存放的逻辑目录名称。
   3.dumpfile=备份数据名称  数据导出之后的文件名称(后缀.dmp)
   4.导出对象参数 导出数据的对象参数选择。
    4.1 tables=表名 多个表用‘,’分隔开; query=‘筛选条件’
    4.2 schemas=用户名 多个用户‘,’分隔开
    4.3 tablespaces=表空间名
    4.4 full全部用户对象
	
	
导入(impdp)语法格式:
   1.impdp 用户名/密码  导入用户的账号和密码,放在第一个。
   2.directory=目录名称  数据存放的逻辑目录名称。
   3.dumpfile=备份数据名称  选择导入数据的文件名称(后缀.dmp)
   4.导入对象参数 导入数据的对象参数入择。
    4.1 tables=表名 多个表用‘,’分隔开;
    4.2 schemas=用户名 多个用户‘,’分隔开
    4.3 tablespaces=表空间名
  5.不同用户之间导入:remap_schema=导出用户名:导入用户名

二哈

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐