1.创建临时表空间
create temporary tablespace car_data //car_data,表空间名
tempfile 'C:\Users\Administrator\Desktop\car_data.dbf'//表空间路径
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
2.创建数据表空间
SQL> create tablespace car_data
2 logging
3 datafile 'C:\Users\Administrator\Desktop\car_data.dbf'
4 size 50m
5 autoextend on
6 next 50m maxsize 20480m
7 extent management local;
3.创建用户并指定表空间
创建一个用户名为admin 密码为888888的用户
SQL> create user admin identified by 888888
default tablespace car_data;
User created
4.给刚才创建的用户授权
SQL> grant connect,resource,dba to admin;
Grant succeeded
5.创建表
SQL> create table car(
2 carId number(20) not null primary key,
3 carName varchar(20),
4 carType varchar(20),
5 carNum varchar(20),
6 carAge int);
Table created
6.修改表
//修改表car,添加check约束
alter table 表名 add constraint check名 check(列名 约束);alter table car add constraint car_carAge check(carAge between 0 and 10);
//设置外键alter table 表名 add constraint 外键名 foreign key (列名) references 表名(列名);alter table car add constraint userId foreign key(userId) references userN(userId);//修改一个列的数据类型(一般限于修改长度,修改为不同类型时有很多限制)alter table 表名 modify(列名 数据类型);alter table car modify(carid number(10));//修改列名alter table 表名 rename column 当前列名 to 新列名;alter table car rename column carid to carcar;//修改表名alter table 当前表名 rename to 新表名;alter table car rename to carcar;//删除列alter table 表名 drop colunm 列名;alter table car drop colunm carname;//添加列alter table 表名 add(column1 datatype,column2 datatype...);alter table car add(car1 number(20),car2 number(20),...);
7.创建userN表
里面有建表和添加外键及主键
SQL> create table userN(
2 userId number(20) not null primary key,
3 licNum number(20),
4 userName varchar(10),
5 sex varchar(2),
6 userAge int,
7 userNative varchar(10),
8 userAddress varchar(100),
9 userNum number(13),
10 carId number(20),
11 constraint carId FOREIGN KEY (carId) REFERENCES car(carId));
//添加外键的方法
Table created
8.插入数据的语句
insert into car values('201311010101','宝马','宝马X6','jk02c8',3);
9.更新数据的语句
//修改某一数据。例如:将表salary中编号为110001的职工收入改为10000
update salary set income=10000 where employeeid=110001;
//修改某一列数据。例如:给每个职工增加收入100元
update salary set income=income+100;
10.trigger触发器
create or replace trigger 触发器名
before/after delete/insert/updata
on 表名或视图名
for each row//表示行级触发器,可以百度了解更多
begin
写一些操作
例如:插入数据
insert into recyclecar(carid,carname) values(:old.carid);
end;
//删除触发器
drop trigger droptrigger;
11.查询
(1)//查询car表里面车牌号为888888的车的信息(单条件)
SQL> select *from car
2 where carnum = '888888';
(2)//查询车牌号为888888并且carname为奔驰的车的所有信息(多条件)
SQL> select *from car
2 where carnum='888888' and carname='奔驰';
(3)//查询车牌号为888888的车主的所有信息(跨表查询)
SQL> select *from Usern
2 where carid in(select carid from car where car.carnum='888888');
(4)//查询车主的所有身份信息以及车信息(外连接)
SQL> select *from usern left join car on(car.carid=userN.carid);
(5)//查询车牌号为888888的车主的所有身份信息以及车信息(外连接)
SQL> select *from usern left join car on(car.carid=userN.carid)
2 where carnum='888888';
(6)//查询车名为宝马的用户信息(子查询)
SQL> select *from usern where carid
2 in(select carid from car where carname='宝马');
(7)//查询换过尾灯且加过导航的奔驰车信息(多表连接)
select *from car ,reparis,variation where rtype='尾灯' and vtype='加导航' and carname='奔驰';
(8)//查询各种类型的车的数量分别为多少(分组加计数)
select carname,count(*) 数量 from car group by carname;
12.视图和索引
1.创建视图
create view temp as select carid,cartype from car;
2.创建索引
create index cartype on car(cartype);