变量、方法、类、包
类包括类声明和类体,类体又包括成员变量和方法。成员变量也叫域变量,成员变量分两种:
类变量(静态变量)和实例变量。
1、
(1)在类中声明的变量是成员变量;在类中用static修饰的变量是类变量,否则是实例变量。类变量是共享的,都可以使用。成员变量在整个类中均有效。
(2)在类中方法内声明的变量是局部变量,局部变量在该方法内并且在声明变量以下有效。在参数内声明的在该方法内均有效。
2、构造方法的特点:声明对象时要用到该类的构造方法,一个对象中可以有多个构造方法。但构造方法的参数的类型或个数不同。构造方法的名字必须与类名相同,而且没有类型。
3、方法分为类方法和实例方法,加static修饰的方法是类方法,类方法是共享的、公用的,类方法中不能使用实例变量。
4、包:区分名字相同的不同类,如果源程序省略了package语句,源文件中所定义命名的类隐含在一个无名的包中,在一个包中的类用引用另一个包中类要用import导入。
访问权限:访问权限有4中,从权限大到小有public 、protected、友好的、private;
1)Public是共有的,用它修饰的变量与方法可以在不同的包中使用。
2)protected受保护的,用它修饰的变量与方法可以在同一包中的不同类中使用(1、父子关系的类除外,子类继承父类的方法和变量可以在不同的包中继承;2、但在另一个类用子类声明的对象去访问用protected修饰的变量不能访问(如果在同一个包中可以使用))。
子类与父类
1) 子类可以继承父类的除构造方法外的所有变量和方法,但访问主类的变量和方法的时候受访问权限的限制。
2) Instanceof是双目运算符,左边操作元是对象,右边是类。当左面的操作元是右面的类或子类所创建的对象时,instanceof运算的结果是true,否则是false。
Super
Super代表父类的对象
对象的上转对型象
1、当子类创建一个对象,并把这个对象的引用放到父类对象中,称父类对象是子类对象的上转型对象。
2、上转型对象不能访问子类新增的方法或变量,但可以访问子类重写的实例方法(静态方法重写后不能调用,调用的是父类的静态方法)。
3、不能将父类创建的对象赋值给子类创建的对象。
4、将上转型对象重新赋值给子类对象,子类对象具备子类的所有属性和功能。
abstract类和abstract方法
1、抽象方法只可以只允许声明不可以实现,而且不可以同时用final和abstract同时修饰一个方法。
2、abstract类可以有抽象方法,也可以有非抽象方法。
3、abstract类不能不能用new运算符创建对象。
4、abstract类是abstract类的子类,它可以重写父类的abstract方法,同样也可以继承abstract方法。
5、如果以一个抽象类的子类是普通类,则子类必须重写父类的所有抽象方法
面向抽象过程
1、 不让类面向具体的类,而是面向抽象的类。
接口与多态
1、接口的声明用interface声明;
接口体内所有方法和常量的类型的都是用public修饰的,允许省略public 和final
2、接口体内只有抽象方法、和常量(没有变量)
interface USB{
public static final int MAX=100;//常量 等价于 int MAX=100;
public abstract void f1(){ //抽象方法 等价于void f1();
}
}
3、实现接口
1)用implement声明自己实现的一个或多个接口
2)用类实现接口,那么在这个类中要重写接口的所有方法(abstract修饰的抽象类除外),
abstract类可以不重写接口中的方法
3)在类中可以声明一个接口但不能实现及不能创建对象
4)若父类实现了某个接口,那么子类也实现该接口
Class Computer implements USB{
public void f1(){//注意不能降低权限
System.out.println(“我实现了接口USB中的f1()接口”);
}
}
4、接口的回调
class MainComputer{
public static void main(String agrs[]){
USB u1=new Computer();//上转类型
u1.f1();
}
}
5、接口与abstract的比较
1)abstract类和接口都可以有abstract方法。
2)接口中只可以有常量,不能有变量;而abstract类中既可以有常量也可以有变量。
3)absstract类中可以非abstract方法,接口不可以。
数据定义语言 :DDL
Create alter drop
数据操纵语言:DML
Insert delete update select
事物控制语言:TCL
Commit savepoint rollback
数据控制语言:DCL
Grant revoke
select… from
group by
where
having by
order by
1、 单行子查询
where
e.g. 查询工资低于平均工资的所有教师。
select name ,wage from teachers
where wage<
(select avg(wage) from teachers);//注意不要缺少了select
e.g.查询年龄小于王天仪的所有学生。
Select * from students
Where dob<(select dob from students where name=”王天仪”);
having
e.g.查询部门平均工资高于最低部门平均工资的部门和平均工资
select department_id,avg(wags) from teachers
group by department_id having avg(wags)>(select min(avg(wags)) from teachers
group by department_id
);
form
e.g.在students表中的男同学中,查询计算机专业的学生。
Select * from students (select * from students where sex=’男’) where despcialty=’计算机’;
select * from students where sex=’男’and despcialty=’计算机’;
2.多行子查询
查询后返回多行单列。
要使用到的多行比较符有:
In any all
e.g.在students表中检索姓王同学的学号与姓名
select student_id ,name from students
where name like ‘王%’;
select students_id,name from students
where students_id in(
select student_id from students
where like ‘王%’);
any
e.g. 查询工资低于任何一个部门平均工资的教师信息。
Select * from teachers
where wags
group by department_id);
select * from teachers
where wags<(any(select avg(wags) from teachers
group by departments_id);
all
e.g.查询工资高于各部门平均工资的教师信息
select * from teachers
where wags>(select max(avg(wags)) from teachers
group by department_id);
select * from teachers
where wags>all (select avg(wags) from teachers
group by department_id);
多列查询
多列单行和多列多行
e.g.查询与王天仪同学同生日同专业的同学
select * from students
where(sex, specialty)= (select dob,specialty from students where name=’王天仪’);
e.g.查询各自部门的工资最低的教师
select * from teachers where (department_id ,wags) in
select department_id min(wags) from group by department_id;
insert into 表名 values ()
update set
delete from
truncate table
数据库完整性
1、 实体完整性
2、 参照完整性
3、 自定义完整性 chack
DCL.DDL
1、 系统权限
Create session //连接权限
Create table //创建表的权限
Create any table
Drop table //删除表的权限
Create user //创建用户
Drop user //删除用户
2、 对象权限
数据库中的表示一个对象
Select //查看
Update//更新、更改
Insert //插入
Delete//删除
3、 用户
Create user 用户名
Identified by 密码
1) 建立一个用户:wang密码是office
Create user, drop user
权限控制
1、 系统控制
1) 授予用户系统权限
Grant 系统权限 to 用户名 给用户授权
Revoke 系统权限 from 用户名 撤销用户的权利
e.g.建立一个用户名叫xiaoli密码为gold,并给他授予系统权限
create user xiaoli identified by gold
connect xiaoli gold ;
connect system/jiaoxue;
grant create session,select table to xiaoli;
建表
约束:
1、 主键 primary
Constraint 约束名 primary key
2、非空 not null
在表中的写法 :not null
3、自定义 check
在表中的写法 constraint 约束名 check()
4、 唯一 unique
在表中的写法。 Constraint 约束名unique
5、 外键 foreign key
在表中的写法 constraint 约束名 foreign key
视图(view)
创建视图 create view 视图名 ;