create table students
(
sno numeric(6,0) not null,
sname char(8) not null,
age numeric(3,0),
sex char(2),
bplace char(20),
primary key(sno)
)
create table enrolls
(
sno numeric(6,0) not null,
cno char(4) not null,
grade int,
primary key(sno,cno),
foreign key(sno) references students(sno),
foreign key(cno) references courses(cno),
check((grade is null)or(grade between 0 and 100))
)
select * from
(select S#,Score from SC where C#='001') a,
(select S#,Score from SC where C#='002') b
where a.S#=b.S# and a.Score>b.Score
select a.lastname '姓', a.firstname '名' from persons a
select lastname as 姓, firstname as 名 from persons
like 通配符 % *
操作符 = < > <>>==<
where 条件
drop table 表名
delete from table 表名 where 条件 group by 列名(asc默认是降序,desc是升序)
insert into 表名(列名,)values(值1,)
SQL功能强大,但是概括起来,它可以分成以下几组:
DML
(Data Manipulation Language,数据操作语言):用于检索或者修改数据;
DDL
(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删除数据库对象;
DCL
(Data Control Language,数据控制语言):用于定义数据库用户的权限。
DML
组可以细分为以下的几个语句:
SELECT
:用于检索数据;
INSERT
:用于增加数据到数据库;
UPDATE
:用于从数据库中修改现存的数据
DELETE
:用于从数据库中删除数据。
DDL
语句可以用于创建用户和重建数据库对象。下面是DDL命令:
CREATE TABLE
ALTER TABLE
DROP TABLE
CREATE INDEX
DROP INDEX
DCL
命令用于创建关系用户访问以及授权的对象。下面是几个DCL命令:
ALTER PASSWORD
GRANT
REVOKE
CREATE SYNONYM
SELECT*FROMtableWITH(HOLDLOCK) 其他事务可以读取表,但不能更新删除
SELECT*FROMtableWITH(TABLOCKX) 其他事务不能读取表,更新和删除
GRANT CREATE TABLE TO Alex WITH GRANT OPTION; --将建表的权限和授予建表权限的权限授予Alex;
GRANT SELECT TO Alex; --将SELECT权限授予Alex;
GO
REVOKE CREATE TABLE FROM Alex CASCADE; --撤回Alex建表和授予建表权限的权限;
DENY SELECT TO Alex; --否认Alex的SELECT权限;
常用数据库对象
数据库、登录名、架构、表、触发器、存储过程、视图、索引、函数、类型和用户等