数据库基础知识
- 创建表(增删查改),视图。
(1)下面我为大家创建了三个表:Student , Course, SC表。代码如下:
create table Student
(
Sno char(9) primary key,// primary key代表主键
Sname char(20) unique,//unique代表唯一性
Ssex char(2),
Sage Smallint,
Sdept char(20)
);
create table Course
(Cno char(4) primary key,
Cname char(40),
Ccredit smallint,
);
create table SC
(Sno char(9),
Cno char(4),
Grade smallint,
primary key(Sno,Cno),
foreign key (Sno) references Student(Sno),//意思是将Student表的Sno作为SC的外键。
foreign key (Cno) references Course(Cno)
);
(2)修改表结构:
Alter table Student ADD Sadress char(40);/*给Student表添加学生地址属性*/
Alter table Student Alter Column Sage int;/*将Sage字段smallint类型改为int*/
(3)现在我们往表Student插入数据:
Insert into Student(Sno,Sname,Ssex,Sdept,Sage)
Values('2012440000','陈东','男','计算机',18);
insert into Student(Sno,Sname,Ssex,Sdept,Sage)
values('2012440001','张力','男','石油',19);
(4)数据更新:
Update Student
Set Sage = 40
Where Sno = '2012440000';
(5)删除表结构:
Drop table Student(cascade/restrict)
(6)数据查询:
查询所有数据:以查询Student表为例
select *from Student;
选择出专业是计算机和石油的同学的姓名和性别:
select Sname,Ssex
from Student
where Sdept in('计算机','石油');/*类似有between..and..,like,%,_,*/
order by 子句:
(7)对查询结果按照一个或多个属性列升序(ASC)或降序(DESC)排列。
例如:查询所有学生信息并按年龄排序。
select *from Student
order by Sage ASC/*默认为升序*/
(8)聚集函数:
COUNT(*)/*统计元组个数*/;
COUNT(<列名>);/*统计一列中值的个数*/
SUM(<列名>);/*计算一列值的总和*/
AVG(<列名>);/*计算一列值的平均值*/
MAX(<列名>);/*求一列中的最大值*/
MIN(<列名>);/*求一列中的最小值*/
(9)Group by 子句
将查询结果按某一列或多列的值分组,值相等的为一组。
例如:
Select Cno,count(Sno)
From SC
Group by Cno;
该语句按Cno的值分组,再以count计算该组的人数。
总结:
SQL 中最重要的 DDL 语句:
- CREATE DATABASE - 创建新数据库
- ALTER DATABASE - 修改数据库
- CREATE TABLE - 创建新表
- ALTER TABLE - 变更(改变)数据库表
- DROP TABLE - 删除表
- CREATE INDEX - 创建索引(搜索键)
- DROP INDEX - 删除索引
查询和更新指令构成了 SQL 的 DML 部分:
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
2 视图
对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。
区别:1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改
5、表是内模式,视图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
创建视图:
create view F_Student(F_sno,F_name,F_SCGrade)
as
select Student.Sno,Student.Sname,Grade
from Student,SC
where Student.Sno='201244000'and Cno=2;
执行视图:
select *from dbo.F_Student
运行结果: