基于数据库概述下的SQL SEVER 转换学习(一)
一.SQL的主要特点:
1.面向集合的操作
2.综合统一
非关系型数据库需要区分DDL、模式DDL、子模式DDL、DSDL、DML,而SQL功能统一于一体
3.高度非过程化
4.以同一种语法结构提供多种使用方式:
SQL语句可以内嵌到JAVA,C++,C
5.简洁易学
二、定义模式与删除
create schema test1 authorization guest/dbo
create table tab1(col1 smallint,
col2 int,
col3 char(20),
col4 numeric(10,3),
col5 decimal(5,2)
);
//删除模式
--删除模式
drop schema <模式名> <cascade|restrict>
cascade(级联)表示在删除模式的同时把该模式中所有的数据库对象全部删除
restrict(限制)表示如果该模式中已经定义了下属的数据库对象,如表或视图等,则拒绝该删除语句的执行。
--cascade(级联), restrict(限制),(不过sqlserver 并没有这两个选项),需要手动先删除模式下的数据库对象(表,视图...)
drop table test.tab1
drop schema test
注意删除的时候的先后关系,由于没有级联删除,所以需要手动先删除数据库对象(只有当模式中没有任何下属对象时才能执行drop schema)
三、//定义SC表,使用外码
1.参照表为和被参照表为同一个表时
create table Course
(
Cno char(4) primary key,
Cname char(40)not null,
Cpno Char(4),
Ccredit SMALLINT,
foreign key (CPNO) references Course(Cno)
);
2..参照表为不同的表
create table SC
(
Sno char(9),
Cno char(4),
Grade smallint,
primary key(Sno,Cno),/*主码由两个属性构成,必须作为表级完整性约束条件进行定义*/
foreign key (Sno) references student(Sno),
foreign key (Cno) references Course(Cno),
);
三、单表查询
不一一累述关键字:(缺省下as,like,in,between,order by 等等)+聚集函数
如果查询的字符串本身就含有通配符%或_,这时就要使用如下,且采用字符匹配
Where 子句中是不能用聚集函数作为条件表达式的,正确查询因当是