提示:未结束,后面还会更新
说明: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=导出用户名:导入用户名