初识数据库

结构化查询语言SQL(Structured Query Language)

数据定义语言DDL(Data Definition Language)

针对数据库以及数据库中的对象的语句

分类

create、alter、drop

数据库中的对象

表、视图、触发器、存储过程、规则、缺省、用户自定义的数据类型等

create

定义基本表

create table 表名(
    列名1 类型 约束,
    列名2 类型 约束,
    列名3 类型 约束,
    ...
);
create table student(
    sno char(10) primary key,
    sname varchar(20) not null,
    sage smallint,
    ssex char(2),
    sdept varchar(20));

 alter

增加表中的属性(列)

alter table r add 列名 类型;
alter table student add phone char(16);
注意:

allow null(新添加的属性要允许为空)

已有的元组中该属性的值被置为空

修改表中的某属性(某列)

alter table r alter column a
alter table student alter column sdept varchar(100) not null;

本质:重新定义某属性

删除表中的某属性(某列)

alter table r drop column a;
alter table student drop column sage;

drop

删除表

drop table r;
drop table student;

 数据操控语言DML(Data Manipulation Language)

用来查询、添加、修改和删除数据库中数据的语句

分类

insert、delete、update、select

数据添加

insert into r values(some values); 
insert into r(value1,values2,...) values(value1,value2,...);
insert into student
values('01001','张三',27,'M','CS');

insert into student
values('01002',null,'李四');

数据删除

delete from r where p;
delete from student
where sno='001';

delete from sc
where grade is null;

delete from sc;

数据更新

改变符合条件的某个(某些)元组的属性值

update student 
set sdept = 'MA',sage += 1
where sno='001';

update student
set sage += 1;

数据查询

select col1,col2,col3,...,coln
from r1,r2,r3,...,rn
where p

select默认保留重复元组(all),可用distinct去除重复元组

星号 * 表示所有属性

select * from student;

显示列出属性名:按用户顺序排列

更名

为结果集中的某个属性改名

使结果更具有可读性

select sno as '学号',cno as '课程号',grade as '成绩'
from sc;

select sno,Year(Getdate())-sage as birthYear
from student;

where子句

运算符:比较、确定范围(between A and B 或者 not between A and B)、确定集合(in或者not in)、字符匹配(like或者not like)、空值(is null 或者 is not null)、多重条件(and or not)

SELECT Sno, sage  FROM Student
WHERE Sno IN (‘001’,’003’,’004’) 
ORDER BY sage

字符匹配:like、not like(配合通配符使用)

通配符:% _

转义符escape/(转义_和%)

from子句

列出将被查询的关系(表)

order by子句

ASC升序(默认)、DESC降序

写在where语句后

order by r1 ASC/DESC,r2 ASC/DESC,...
Select sno, sname,ssex,sage
From Student
Where sdept = ‘CS’ And ssex=‘m’
Order By 4,sage DESC 

 数字代表select后的第几个列名

 

posted @ 2021-03-27 21:10  栎眠尔  阅读(53)  评论(0)    收藏  举报