-- 我是注释信息 sql语句
-- 创建用户: create user 用户名 identified by 密码;
create user jack identified by j123;
-- lacks CREATE SESSION priviledge 用户没有权限连接数据库
-- 授权用户: grant 权限1,权限2 to 用户名;
-- 管理员 dba
-- 普通用户 connect,resource
grant connect,resource to jack;
-- 收回权限: revoke 权限1,权限2 from 用户名;
revoke connect,resource from jack;
-- 修改用户密码
-- alter user 用户 identified by 新密码;
alter user jack identified by jack;
-- 锁定用户
-- alter user 用户 account lock;
alter user jack account lock;
-- 解锁用户
-- alter user 用户 account unlock;
alter user jack account unlock;
--删除用户: drop usre 用户 cascade;
drop user jack cascade;
--oracle 数据类型
-- number(m[, n]) 数值类型,最高精确m位,小数点后面精确n位
-- char(m) 固定长度字符类型,长度是m个字节
-- varchar2(10) 可变长度字符类型,最长m个字节
-- date 日期时间类型,精确到秒
-- timestamp 精度更高的日期时间类型,精确到小数秒
-- 约束
-- 主键约束 primary key
-- 唯一约束 unique
-- 非空约束 not null
-- 检查约束 check()
-- 默认约束 default()
-- 外键约束 references 表(列)
--创建表
create table classinfo(
cid varchar2(10) primary key,
ctype varchar(10),
cdate date
);
create table student(
sno number(3) primary key,
--sname varchar2(40) unique,
sname varchar2(40) default ('佚名'),
--sex char(2) not null,
--sex char(2) check(sex='男' or sex='女'),
sex char(2) check(sex in('男', '女', '中')),
--age number(2) check(age >= 20 and age <= 30),
age number(2) check( age between 20 and 30 ),
birthday date,
sclass varchar2(10) references classinfo(cid)
);
select * from classinfo;
select * from student;
-- 创建商品信息表
-- 字段如下:
-- 商品编号
-- 名字
-- 价格
-- 库存
-- 商品类别编号
-- 出厂日期
create table goods(
gno number(3),
gname varchar2(20),
price number(6, 2),
kucun number(5),
leibie varchar2(10),
outdate date
);
-------------------------------------
alter user scott account unlock identified by tiger;
--emp 员工信息表(employee)
-- empno 员工编号
-- ename 员工姓名
-- job 职位
-- mgr 主管员工编号(manager)
-- hiredate 入职日期
-- sal 工资(salary)
-- comm 提成
-- deptno 部门编号(department number)
-- select 查询语句
-- select 字段 from 表 [where clause(where 字句)];
-- * 代表所有字段
-- e 表别名 代表 emp
select * from emp e;
select ename,hiredate from emp e;
select emp.ename, emp.sal from emp;
select e.ename,e.sal from emp e;
-- 列别名
select ename as 姓名, sal as 工资 from emp;
select ename 姓名, sal 工资 from emp;
-- 关系运算符
-- > 大于
-- >= 大于等于
-- < 小于
-- <= 小于等于
-- = 相等
-- != 或者 <> 不等
-- 逻辑运算符
-- and cond1 and cond2
-- or cond1 or cond2
-- not not cond
-- 查询工资超过2000的员工信息
select * from emp e where e.sal > 2000;
-- 查询Scott的工资
-- 字符串用单引号,而且区分大小写
select e.sal from emp e where e.ename = 'SCOTT';
-- 查询30号部门工资低于1000的员工信息
select * from emp where deptno = 30 and sal < 1000;
-- 查询30号部门和工资低于1000的员工信息
select * from emp where deptno = 30 or sal < 1000;
-- 查询工资大于等于3000的员工信息
select * from emp where sal >= 3000;
select * from emp where not sal < 3000;