在创建表时设置非空约束
CREATE TABLE table_name(
column_name datatype NOT NULL,..
);
在修改表时添加非空约束
ALTER TABLE table_name
MODIFY column_name datatype NOT NULL;
在创建表时设置主键约束
CREATE TABLE table_name(
column_name datatype PRIMARY KEY,...
)
CONSTRAINT constraint_name
PRIMARY KEY(column_name1,...)
在修改表时添加主键约束
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
PRIMARY KEY(column_name1,....);
eg:
alter table users(表名)
add constraint pk_id primary key(column_name);
更改约束的名称
ALTER TABLE table_name
RENAME CONSTRAINT old_name
TO new_name
删除主键约束
DISABLE|ENABLE CONSTRAINT constraint _name
DROP CONSTRAINT constraint_name
DROP PRIMARY KEY[CASCADE]
在创建表时设置外键约束
CREATE TABLE table1
(
column_name datatype REFERENCES
table2(column_name),...
);
在创建表时设置外键约束
CONSTRAINT constraint_name FOREIGN
KEY(column_name) REFERENCES
table_name(column_name)[ON DELETE CASCADE]
在修改表时添加外键约束
ADD CONSTRAINT constraint_name FOREIGN
KEY(column_name) REFERENCES
table_name(column_name) [ON DELETE CASCADE]
删除外键约束
DISABLE|ENABLE CONSTRAINT constraint_name
DROP CONSTRAINT constraint_name
在创建表时设置唯一约束
CREATE TABLE table_name
(column_name datatye UNIQUE,...)
CONSTRAINT constraint_name
UNIQUE(column_name)
在修改表时添加唯一约束
ADD CONSTRAINT constraint_name
UNIQUE(column_name);
删除唯一约束
DISABLE|ENABLE CONSTRAINT constraint_name
DROP CONSTAINT constraint_name
在创建表时设置检查约束
CREATE TABLE table_name
(
column_name datatype CHECK(expression),...
)
在修改表时添加检查约束
ADD CONSTRAINT constraint_name
CHECK(expressions);
删除检查约束
DISABLE|ENABLE CONSTRAINT constraint_name
DROP CONSTRAINT constraint_name
非空约束
主键约束
外键约束
唯一约束
检查约束
查询:
基本查询语句
SELECT [DISTINCT] column_name,...|*
FROM table_name
[WHERE conditions]
在SQL*PLUS中设置格式
COLUMN column_name HEADING new_name
COLUMN column_name FORMAT dataformat
COLUMN column_name CLEAR
查询所有字段
select * from table_name;
查询指定的字段
select column_name,... from table_name;
给字段设置别名
SELECT column_name AS new_name,...
FROM table_name
精确查询:
工资 大于800的 usernam
select uername from users where salary>800;
工资 大于800且不等于1800.5 的 usernam
select uername from users where salary>800 and salary<>1800.5;
模糊查询:
通配符的使用(_,%)
逻辑运算符的优先级:按not,and,or的顺序依次递减
含有a的查询
select column_name from table_name where column_name like '%a%';
范围查询
1、between...and
select * from table_name where colnmu_name between column值 and column值
select * from users where salary not between 800 and 2000;
2、in/not in
查询用户名是aaa或bbb的用户语句
select * from table_name where column_name in('users值','users值');
select * from users where username not in('aaa','bbb');
对查询结果排序
select ...from...[where]
order by column1 desc/asc,....
eg:
select * from users order by id desc(降序)
select * from users order by id desc(升序)
case...when语句的使用
CASE column_name
WHEN value1 THEN result,...
[ELSE result]END
select username,case username when 'aaa' then '计算机部门'
when 'bbb' then '市场部门' else '其他部门' end as 部门
显示如下:
username 部门
----------------- ----------
aaa 计算机部门
bbb 市场部门
ccc 其他部门
CASE WHEN column_name=value1
THEN result1,...[ELSE result] END
eg:
select username,case when username='aaa' then '计算机部门'
when username='bbb' then '市场部门' else '其他部门' end as 部门
from users;
显示如下:
username 部门
----------------- ----------
aaa 计算机部门
bbb 市场部门
ccc 其他部门
distinct可以去除多余的行,如,查询员工信息表中的部门编号,要求去除重复数据:select distinct deptno from employee.
使用as关键字设置字段别名的语法:select column_name as new_name,... from table_name;可以同时为多个字段设置别名。
使用column命令设置字段别名的语法:column column_name heading new_name,只能为一个字段设置别名。
decode函数的使用
decode(column_name,value1,result1,
...,dsfaultvalue)
CREATE TABLE table_name(
column_name datatype NOT NULL,..
);
在修改表时添加非空约束
ALTER TABLE table_name
MODIFY column_name datatype NOT NULL;
在创建表时设置主键约束
CREATE TABLE table_name(
column_name datatype PRIMARY KEY,...
)
CONSTRAINT constraint_name
PRIMARY KEY(column_name1,...)
在修改表时添加主键约束
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
PRIMARY KEY(column_name1,....);
eg:
alter table users(表名)
add constraint pk_id primary key(column_name);
更改约束的名称
ALTER TABLE table_name
RENAME CONSTRAINT old_name
TO new_name
删除主键约束
DISABLE|ENABLE CONSTRAINT constraint _name
DROP CONSTRAINT constraint_name
DROP PRIMARY KEY[CASCADE]
在创建表时设置外键约束
CREATE TABLE table1
(
column_name datatype REFERENCES
table2(column_name),...
);
在创建表时设置外键约束
CONSTRAINT constraint_name FOREIGN
KEY(column_name) REFERENCES
table_name(column_name)[ON DELETE CASCADE]
在修改表时添加外键约束
ADD CONSTRAINT constraint_name FOREIGN
KEY(column_name) REFERENCES
table_name(column_name) [ON DELETE CASCADE]
删除外键约束
DISABLE|ENABLE CONSTRAINT constraint_name
DROP CONSTRAINT constraint_name
在创建表时设置唯一约束
CREATE TABLE table_name
(column_name datatye UNIQUE,...)
CONSTRAINT constraint_name
UNIQUE(column_name)
在修改表时添加唯一约束
ADD CONSTRAINT constraint_name
UNIQUE(column_name);
删除唯一约束
DISABLE|ENABLE CONSTRAINT constraint_name
DROP CONSTAINT constraint_name
在创建表时设置检查约束
CREATE TABLE table_name
(
column_name datatype CHECK(expression),...
)
在修改表时添加检查约束
ADD CONSTRAINT constraint_name
CHECK(expressions);
删除检查约束
DISABLE|ENABLE CONSTRAINT constraint_name
DROP CONSTRAINT constraint_name
非空约束
主键约束
外键约束
唯一约束
检查约束
查询:
基本查询语句
SELECT [DISTINCT] column_name,...|*
FROM table_name
[WHERE conditions]
在SQL*PLUS中设置格式
COLUMN column_name HEADING new_name
COLUMN column_name FORMAT dataformat
COLUMN column_name CLEAR
查询所有字段
select * from table_name;
查询指定的字段
select column_name,... from table_name;
给字段设置别名
SELECT column_name AS new_name,...
FROM table_name
精确查询:
工资 大于800的 usernam
select uername from users where salary>800;
工资 大于800且不等于1800.5 的 usernam
select uername from users where salary>800 and salary<>1800.5;
模糊查询:
通配符的使用(_,%)
逻辑运算符的优先级:按not,and,or的顺序依次递减
含有a的查询
select column_name from table_name where column_name like '%a%';
范围查询
1、between...and
select * from table_name where colnmu_name between column值 and column值
select * from users where salary not between 800 and 2000;
2、in/not in
查询用户名是aaa或bbb的用户语句
select * from table_name where column_name in('users值','users值');
select * from users where username not in('aaa','bbb');
对查询结果排序
select ...from...[where]
order by column1 desc/asc,....
eg:
select * from users order by id desc(降序)
select * from users order by id desc(升序)
case...when语句的使用
CASE column_name
WHEN value1 THEN result,...
[ELSE result]END
select username,case username when 'aaa' then '计算机部门'
when 'bbb' then '市场部门' else '其他部门' end as 部门
显示如下:
username 部门
----------------- ----------
aaa 计算机部门
bbb 市场部门
ccc 其他部门
CASE WHEN column_name=value1
THEN result1,...[ELSE result] END
eg:
select username,case when username='aaa' then '计算机部门'
when username='bbb' then '市场部门' else '其他部门' end as 部门
from users;
显示如下:
username 部门
----------------- ----------
aaa 计算机部门
bbb 市场部门
ccc 其他部门
distinct可以去除多余的行,如,查询员工信息表中的部门编号,要求去除重复数据:select distinct deptno from employee.
使用as关键字设置字段别名的语法:select column_name as new_name,... from table_name;可以同时为多个字段设置别名。
使用column命令设置字段别名的语法:column column_name heading new_name,只能为一个字段设置别名。
decode函数的使用
decode(column_name,value1,result1,
...,dsfaultvalue)