3.SQL
3.1数据定义
操作对象 | 创建 | 删除 | 修改 |
---|---|---|---|
模式 | create schema | drop schema | |
表 | create table | drop table | alter table |
视图 | create view | drop view | |
索引 | create index | drop index | alter index |
3.1.1模式的定义与删除
- 模式的定义
create schema 模式名
- 模式的删除
drop schema 模式名(cascade级联/restrict限制)
SQL server不支持cascade,要正确删除模式,先删除模式下的表和视图等数据对象,然后再删除模式。
3.1.2基本表的定义,删除与修改
- 基本表的定义
create table 表名
(
列名 数据类型 完整性约束条件,
列名 数据类型 完整性约束条件,
...
);
- 基本表的删除
drop table 表名(cascade级联/restrict限制)
- 基本表的修改
alter table 表名 add 新列名 数据类型 完整性约束条件 //增加列
alter table 表名 add 表级完整性约束条件 //增加表级约束
alter table 表名 drop column 列名 //删除列
alter table 表名 drop constraint 完整性约束名 //删除约束
alter table 表名 alter column 列名 数据类型 //修改列的定义
3.1.3索引的建立与修改
- 索引的建立
create index 索引名 on 表名 (列名 asc,列名 desc)
create unique 索引名 on 表名 (列名 asc) //建立唯一索引
asc:升序(默认) desc:降序
- 索引的删除
drop index 索引名
- 索引的名称修改
alter index 旧索引名 rename to 新索引名
3.2数据查询
select (*/查询属性列/计算表达式) //查询的对象
from (查询所需表) //查询的范围
where //查询的条件
group by
order by //对查询结果的处理
3.2.1 单表查询
1.选择表中的若干列
1.select Sno,Sname from Student //查询属性列
2.select * //查询所以列
3.select 2014-Sage //目标表达式是表达式形式 无列名,需要起别名
4.select lower(Sdept) //院系属性列在表中用小写表示 无列名,需要起别名
别名:select 属性 as/空格 别名
select 2014-Sdept birthday
select 2014-Sdept as birthday
2.选择表中的若干元组
where子句
插叙条件 | 谓词 |
---|---|
比较 | =,>,<,>=,<=,!=,!>,!< |
确定范围 | between and,not between and |
确定集合 | in,not in |
字符匹配 | like,not like |
空值 | is null,is not null |
多重条件 | and,or,not |
select distinct Sno from Student //distinct (去重) all(默认)
where Sage<20;
where Sage between 20 and 23;
where Sdept in('CS',"MA");
where Sname like '刘%'; //%任意长度,_一个长度,
where Sname like 'DB\_Design' escape'_'; //escape设置一个换码字符,这个字符后面的转义字符为普通字符
where Grade is null;
where Sdept='CS' and Sage<20;
3.order by 字句
排序字句:ASC(升序),DESC(降序)
order by Grade desc //按成绩降序排列