基于数据库概述下的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 子句中是不能用聚集函数作为条件表达式的,正确查询因当是