数据库学习相关常用语句

1.创建用户:
create user username identified by password ;
grant create session, create table ,create view to username;


2.查询相关:
desc tables;
select * from table;
select fieldname1,fieldname2 from tablename;
2.1查询并排序
select fieldname from table order by fieldname desc/asc;//desc 降序 asc升序。
2.2查询表连接:
select field from table1 join table2 on (连接条件) where (查询条件); 


3.创建表:
create table tablename(X type);


4.备份表:
create table tablename2 as select * from table;


5.插入数据:
insert into tablename values(values);
insert into tablename(fieldname1,fieldname2) values(values1,values2);//为制定字段插入数据。
insert into tablename2 select * from tablename;//将表1的字段全部插入表2 .


6.rownum 这是oracle自带功能 他会给插入的字段依次填一个尾子段 即rownum 且自动排序。但是只能取小或小于等于不能取大或等。
6.1 查大于可以写成子查询:select fieldname from (select rownum r,fieldname from table) where r > 10;


7.update 语句 
update field set field = new field where field = new X;


8.delete 语句
delete from table;
delete from field where field = X;


9.提交 commt;


10.约束
unique //唯一约束
constraint  Xname unique/not null // 添加约束 约束名 约束条件
10.1多条约束 
//需要添加多表约束 在建表语句最后加“,” 然后写:
constraint Xname unique/not null/X(dieldname1,fieldname2,...);


11.键
//对于外键(foreign key) 被参考字段必须是主键。
//同时插入数据后 作为被参考字段无法用delete删除。
//主键唯一 不可重复 不过需注意有组合主键的情况。


12.alter
alter table tablename add/modify(field type);


13.不知道有多少张表时:
desc user_tables;


14.建立索引:
create index indexname on tablename(fieldname);//fieldname 是要建立的字段;


15.建立视图://视图是一个子查询 有时可以用来保护数据
create view v$_viewname as select fieldname1,fieldname2 from tablename;


16.自动递增
首先创建一个"sequence" create sequence seq;
然后select seq.nextval from dual;
16.1依次插入:
insert into fieldname values (seq.nextval,'value1','value2','...');




17.三范式://4,5范式一般不用 
  //三范式一般追求数据的不冗余。
17.1第一范式:
a。要有主键
b。列不可分
17.2第二范式:
不能存在部分依赖(对于组合主键,非主键部分不能仅仅依赖部分主键而不是依赖整个组合主键)//解决方法为拆分列
17.3第三范式:
非主键要一拉主键。


18.plsql
18.1 输出:
dbms_output.putline("");//这种输出方式不能打印boolean类型。
18.2 declare ://declare是声明。
例: declare
v_name varchar2(20);
    begin
v_name :='myname';// ':=' 为赋值语句
dbms_output.put_line(v_name);
    end;
输出结果为:myname
18.2.1 declare 错误处理:
例:
    declare
v_num number :=0;
    begin
v_num := 2/v_num;
dbms_output.put_line(v_num);
      exception
when others then
dbms_output.put_line('error');
    end;


19.常用变量类型:
binary_integer:整数,主要用来计数而不是用来表示字段类型。
number:数字类型
char:定长字符串
varchar2:变长字符串
date:日期
long:长字符串 最长2GB
boolean:布尔类型,可以取值为true,false和null值。//plsql里 boolean不赋值默认为null 而不是false。


20.table  变量类型://相当于java数组
例:
declare
type_table_emp_empno is table of emp.empno%type index by binary_integer;
v_empnos type_table_emp_empno;
begin
v_empnos(0) := 7369;
v_empnos(2) := 7839;
v_empnos(-1) := 9999;
dbms_output.put_line(v_empnos(-1));
end;


21.record 变量类型 ://相当于java类
例:
declare
type type_record_dept is record
(
deptno dept.deptno%type,
dname dept.dname%type,
loc dept.loc%type
);
v_temp type_record_dept;
begin
v_temp.deptno := 50;
v_temp.dname := 'aaaa';
v_temp.loc := 'bj';
dbms_output.put_line(v_temp.deptno||''||v_temp.dname);
end;


22.DDL语句://要加execute immediate'语句'
begin
execute immediate 'create table T (nnn varchar2(20) default ''aaa'')';//对于“aaa” 在语句例需要单引号 但是由于本身已经写在一对单引号里,所以写两个单引号。
end;


23.if语句:
例:
取出7369的薪水,如果<1200,则输出‘low’,如果<2000则输出‘middle’,否则‘high’
declare 
v_sal emp.sal%type;
begin
select sal into v_sal from emp
where empno = 7369;
if(v_sal < 1200) then
dbms_output.put_line('low');
elseif(v_sal < 2000) then
dbme_output.put_line('middle');
else
dbms_output.put_line('high');
end if;
end;


24.游标 cursor 相当于指针
declare
cursor c is 
select * from emp;
v_emp c%rowtype;
begin
open c;//游标必须执行打开语句才会起效。
fetch c into v_emp; //游标的移动
dbms_output.put_line(v_emp.ename);
close c;
end;


26.触发器:
create table emp2_log
(
uname varchar2(20);
action varchar2(10);
atime date
);

create or replace trigger trig //触发器关键字 trigger
after insert or delete or update on emp2 for each row
begin
if inserting then
insert into emp2_log values(USER,'insert',sysdate);
elsif updating then 
insert into emp2_log values(USER,'insert',sysdate);
elsif deleting then
insert into emp2_log values(USER,'insert',sysdate);
end if;
end;
本研究基于扩展卡尔曼滤波(EKF)方法,构建了一套用于航天器姿态与轨道协同控制的仿真系统。该系统采用参数化编程设计,具备清晰的逻辑结构和详细的代码注释,便于用户根据具体需求调整参数。所提供的案例数据可直接在MATLAB环境中运行,无需额外预处理步骤,适用于计算机科学、电子信息工程及数学等相关专业学生的课程设计、综合实践或毕业课题。 在航天工程实践中,精确的姿态与轨道控制是保障深空探测、卫星组网及空间设施建设等任务成功实施的基础。扩展卡尔曼滤波作为一种适用于非线性动态系统的状态估计算法,能够有效处理系统模型中的不确定性与测量噪声,因此在航天器耦合控制领域具有重要应用价值。本研究实现的系统通过模块化设计,支持用户针对不同航天器平台或任务场景进行灵活配置,例如卫星轨道维持、飞行器交会对接或地外天体定点着陆等控制问题。 为提升系统的易用性与教学适用性,代码中关键算法步骤均附有说明性注释,有助于用户理解滤波器的初始化、状态预测、观测更新等核心流程。同时,系统兼容多个MATLAB版本(包括2014a、2019b及2024b),可适应不同的软件环境。通过实际操作该仿真系统,学生不仅能够深化对航天动力学与控制理论的认识,还可培养工程编程能力与实际问题分析技能,为后续从事相关技术研究或工程开发奠定基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值