您的位置:首页 > 数据库

数据库基础知识回顾

2017-12-13 20:22 309 查看
在展开工作展开前,有必要准备以下知识,目的是方便我们在工作中可以更好地、 准确地定出我们想要的东西,如下(待完善):

A. SQL 语句的知识储备

B. 表与表之间的关系模型

C. 常用的 SQL 函数

 

注意:以下的例子全部以 SQL SERVER 2014 数据库进行说明。

 

需要准备的软件:SQL SERVER 2014 数据库

Notepad++

Google Chrome

 

注意:装数据库是为了能够在学习的过程更清楚的去理解和使用 SQL 的语法; Notepad++ 是一款高级记事本,可以更好的对一些语言的支持;

Google Chrome 浏览器,是工作中最常用的浏览器,对语言的支持较好。

 

1.1 SQL 语句的知识储备

SQL 语句中有四个处理逻辑,分别是 C(CREATE)、R(RETRIEVE)、U(UPDATE)、D(DELETE)对应添加、查询、修改、删除。简单就是增删改查。

接下来我们就可以在数据库里创建这样的一个表来完成这些操作了,我们看看如何 完成创建一张数据表吧

CREATE TABLE Student(
id int primary key,
name varchar(50),
sex varchar(3),
phone int,
address varchar(50)
);
意思是:创建一张学生表,学生当前的属性有:id、name、sex、phome、address。

语法为: CREATE TABLE 表名称(

数据名称 数据类型,

...

数据名称 数据类型

);

注意:

A. primary key 意思是主键,主键是区分每一条数据库的重要标识,它是 唯 一的,不可重复的。例如:两个学生同名同姓,考试时我们可以用他们的 唯一标识(学号)去区分,就可以把学号理解为这个学生表的主键。
foreign key 意思是外键,下面会做出解释。

B. 数据类型是对一个数据名称进行说明的,例如:name varchar(50) 这个数据类型是varchar(50) 代表
name 是一个文本类型,可以存放50个字符。

 

 

接下来就是往学生表里面插入数据

 

INSERT INTO Student(id,name,sex,phone,address) 
VALUES (1,'小明','男',110,'广州市中心');
意思是:往学生表插入id为1,姓名为小明,性别为男,电话是110,地址是广州市中心的数据。

语法为:

INSERT INTO 表名称(列名)VALUES (对应列名所需要的数据);

 

注意:数字类型(int)不需要加单引号’’,文本类型(varchar(50))需要加单引 号’’。

 

数据插入成功后,我们看看如何查询插入成功的数据

SELECT * FROM Student;
意思是:查询学生表的全部信息。

语法为:

SELECT *
FROM 表名称
WHERE 条件;
 
注意:查询语句丰富多样,常用的有左连接、右连接、内连接、外连接、全连接等 查询方法,接下来会详细说明几个常用的连接查询语句。条件
 
如果我们想修改其中的数据该如何操作呢,继续看
UPDATE Student
SET sex = '女' WHERE id= 1;
意思是:在学生中找到id为1的数据,并把性别修改成女生。

语法为:

UPDATE 表名称SET 修改的列名 = 修改的内容WHERE 条件;
 
注意:SET 关键字后面对应的是修改后的内容,WHERE 关键字后面对应的需要修改 对应数据的标识(一般用主键)。
 
当一条数据失去意义了,我们可以尝试把这条数据进行删除操作
DELETE Student
WHERE id = 1;
意思是:删除学生表中id为1的数据。

语法为:

DELETE 表名称WHERE 条件;
补充:删除表操作(慎用)
DROP TABLE Student;
意思是:删除学生表。
语法为:
DROP TABLE 表名称;
 
注意:删除操作属于危险性操作,一般情况不推荐使用此操作进行处理,WHERE 条 件是必须添加的,否则会删除整张表的数据,后果很严重。
 
1.2 SQL 语句进阶
接下对 SQL 语句的高级查询进行展示
常用的高级查询有:
左连接查询(LEFT JOIN)
右连接查询(RIGHT JOIN)
内连接查询(INNER JOIN)
连接查询(JOIN)
复合连接查询
补充:
之前漏了一个
foreign key 外键知识点,在这里进行说明。
问题:一个班级有很多个学生,我们如何把很多个学生和班级联系起来呢?
答:这个时候则需要一个关系,让我们把学生和班级联系起来,联系起来的标 识符就叫做外键。这样我们就可以根据这段话来设计一张带有外键的表。
 
CREATE TABLE Classes(
id int primary key,
name varchar(15),
number varchar(15)
);
 
CREATE TABLE Student(

id int primary key,

name varchar(50),

sex varchar(3),

phone int,

address varchar(50),

cless_id int

)

 
注意:学生表多了一个 cless_id 的字段,它是用来和班级表进行关联的标识。 注意关联的字段类型保持一致,否则失败。
 
我们把两张表进行关联起来
ALTER TABLE StudentADD CONSTRAINT stu_classes
FOREIGN KEY(cless_id) REFERENCES Classes(id);
意思是:把学生表中的 cless_id 字段和 班级表的id进行关联。
语法为:
ALTER TABLE 从表的表名称ADD CONSTRAINT 外键约束名

FOREIGN KEY(从表的列,用来进行关联主表的) REFERENCES 主表的表名称(列名);

 

先往表里面插入几条测试数据试试吧
INSERT INTO Student(id,name,sex,phone,address,cless_id) VALUES(1,'小明','男',110,'广州市中心',1);

INSERT INTO Student(id,name,sex,phone,address,cless_id) VALUES(2,'小王','男',110,'广州市中心',2);

INSERT INTO Student(id,name,sex,phone,address,cless_id) VALUES(3,'小尹','男',110,'广州市中心',1);

INSERT INTO Student(id,name,sex,phone,address,cless_id) VALUES(4,'小黄','男',110,'广州市中心',2);

INSERT INTO Student(id,name,sex,phone,address,cless_id) VALUES(5,'小赖','男',110,'广州市中心',3);

 

INSERT INTO Classes(id,name,number) VALUES(1,'1班',1);

INSERT INTO Classes(id,name,number) VALUES(2,'2班',2);

INSERT INTO Classes(id,name,number) VALUES(3,'2班',3);

 

测试数据插入完成,我们这个时候来找找1班有那些同学
 
SELECT c.name,s.name,s.sex,s.phone,s.address FROM Classes
C LEFT JOIN  Student sON c.id= s.cless_idWHERE c.id= 1;

意思是:查询1班中的学生姓名、学生性别、学生电话、学生家庭地址。
语法为:
SELECT 展示的列名 FROM 主表主表别名 LEFT JOIN 主表主表别名 ON 主键和
外键的关系 WHERE 条件;

 

在这条查询语句中我们看到了一个陌生的单词
LEFT JOIN(左连接),它的用 法是把右表(一般是从表)中的数据和左表(一般是主表)的数据进行条件筛 选,满足条件的显示反之不显示。

 

我们再来看看
RIGHT JOIN(右连接),其实和LEFT JOIN(左连接)是同一个 道理,它的用法是把左表(一般是从表)中的数据和右表(一般是主表)的数 据进行条件筛选,满足条件的显示反之不显示。

 

不妨你在本地试试RIGHT JOIN(右连接)是什么效果。

 

目前使用次数最高的两个连接查询的用法已经演示了,接下来再看看剩余的三 个连接内连接、连接查询、复合连接。

 

INNER JOIN(内连接)与JOIN(连接):

这两个放在一块讲,是因为这两个作用相同,语法结构和
LEFT JOIN(左 连接)相同,它俩的作用是满足条件则显示反之不显示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息