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缝龄,數(shù)據(jù)操作語言):用于檢索或者修改數(shù)據(jù)范咨;
DDL
(Data Definition Language逾条,數(shù)據(jù)定義語言): 用于定義數(shù)據(jù)的結(jié)構(gòu)啼染,比如 創(chuàng)建宴合、修改或者刪除數(shù)據(jù)庫對象;
DCL
(Data Control Language迹鹅,數(shù)據(jù)控制語言):用于定義數(shù)據(jù)庫用戶的權(quán)限卦洽。
DML
組可以細分為以下的幾個語句:
SELECT
:用于檢索數(shù)據(jù);
INSERT
:用于增加數(shù)據(jù)到數(shù)據(jù)庫斜棚;
UPDATE
:用于從數(shù)據(jù)庫中修改現(xiàn)存的數(shù)據(jù)
DELETE
:用于從數(shù)據(jù)庫中刪除數(shù)據(jù)阀蒂。
DDL
語句可以用于創(chuàng)建用戶和重建數(shù)據(jù)庫對象。下面是DDL命令:
CREATE TABLE
ALTER TABLE
DROP TABLE
CREATE INDEX
DROP INDEX
DCL
命令用于創(chuàng)建關(guān)系用戶訪問以及授權(quán)的對象弟蚀。下面是幾個DCL命令:
ALTER PASSWORD
GRANT
REVOKE
CREATE SYNONYM
SELECT*FROMtableWITH(HOLDLOCK) 其他事務(wù)可以讀取表蚤霞,但不能更新刪除
SELECT*FROMtableWITH(TABLOCKX) 其他事務(wù)不能讀取表,更新和刪除
GRANT CREATE TABLE TO Alex WITH GRANT OPTION; --將建表的權(quán)限和授予建表權(quán)限的權(quán)限授予Alex;
GRANT SELECT TO Alex; --將SELECT權(quán)限授予Alex;
GO
REVOKE CREATE TABLE FROM Alex CASCADE; --撤回Alex建表和授予建表權(quán)限的權(quán)限;
DENY SELECT TO Alex; --否認Alex的SELECT權(quán)限;
常用數(shù)據(jù)庫對象
數(shù)據(jù)庫、登錄名义钉、架構(gòu)昧绣、表、觸發(fā)器捶闸、存儲過程夜畴、視圖、索引删壮、函數(shù)贪绘、類型和用戶等