SQL语法

SQL基本语法

  • 另附:大学数据库关系
    在这里插入图片描述

The create clause

create table instructor (
ID char(5),
name varchar(20),
dept_name varchar(20),
salary numeric(8,2));     --定点数,总共p位数字,d位在小数点右边
  • 加上完整性约束:not null,primary key,foreign key
  • unique\default\check\assertion
create table takes (
ID varchar(5),
course_id varchar(8),
sec_id varchar(8),
semester varchar(6),
year numeric(4,0),
grade varchar(2), 
primary key (ID, course_id, sec_id, semester, year) ,
foreign key (ID) references student,
foreign key (course_id, sec_id, semester, year) references section);

The insert clause

  • 插入一行数据
insert into instructor values (10211, ’Smith’, ’Biology’, 66000);
  • 插入一行数据在指定的字段上
INSERT INTO Persons (LastName, Address)
VALUES ('Rasmussen', 'Storgt 67')

The delete clause

  • 删除表中的数据
DELETE FROM Person WHERE LastName = 'Rasmussen'

The drop clause

  • 删除表
DROP TABLE table_name

The alter clause

  • 修改表,在已经存在的表中增加或者移除字段

  • 增加字段

ALTER TABLE Person ADD City varchar(30)
  • 移除字段
ALTER TABLE Person DROP COLUMN Address

The select clause

  • select\into\from\where\group by\having\drder by
  • and|or\between…and\distinct\all\join\as\into\like

select\from\distinct\all

  • 找出所有教员的系名,并删除重复的
select distinct dept_name
from instructor
  • 重复的不删除
select all dept_name
from instructor

as\where\and

select ID, name, salary/12 as monthly_salary
from instructor
where dept_name = 'Comp. Sci.' and salary > 80000

as

select S.supervisor 
from emp_super as T, emp_super as S
where T.peroson = ‘Bob’ and T.supervisor = S.p

like

select name
from instructor
where name like '%dar%'
-- like ‘100 \%' escape '\'

order by

select distinct name
from instructor
order by dept_name,name

group by\having

  • 每个 Company 的 Amout 的合计在 10000 以上的数据
SELECT Company,SUM(Amount) FROM Sales
GROUP BY Company HAVING SUM(Amount)>10000

join

SELECT Employees.Name, Orders.Product
FROM Employees
INNER JOIN Orders
ON Employees.ID = Orders.ID
SELECT Employees.Name, Orders.Product
FROM Employees, Orders
WHERE Employees.ID = Orders.ID

The update clause

UPDATE Person
SET Address = 'Stien 12', City = 'Stavanger'
WHERE LastName = 'Rasmussen'

Aggregate Functions(聚集函数)

  • avg\min\max\sum\count

Nested Subqueries(嵌套子查询)

  • Find courses offered in Fall 2009 but not in Spring 2010
select distinct course_id
from section
where semester = 'Fall' and year= 2009 and 
course_id not in (select course_id
from section
where semester = 'Spring' and year= 2010);
t distinct course_id
from section
where semester = 'Fall' and year= 2009 and 
course_id not in (select course_id
from section
where semester = 'Spring' and year= 2010);
  • exists,not exists,unique,with
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值