SQL Server的基础

数据库编程基础
SQL结构化查询语言,1970年代起源于IBM,是对Edgar Codd关系模型的第一个商业化语言实现。它是最广泛使用的数据库语言,在不同的数据库系统中往往有不同的实现,用于管理关系数据库管理系统(RDBMS),或在关系流数据管理系统(RDSMS)中进行流处理。

几乎所有的软件:都需要操作数据库!
比如QQ: 查询好友、添加好友、修改备注或个人信息、删除好
日志:新增、修改、查询、删除
下面将使用SQL server管理某大学学籍表
操作数据库

数据库的指令:增、改、删、查(最复杂)

1、增insert(标准):
insert into A02专业表(专业ID,院系ID, 专业名称, 国家专业编码,
专业简称, 学制, 培养层次, 年级)
values(143,5,‘工业艺术’,‘050111’,‘工艺’,4,‘本科’,2017)
insert into A03班级表( 专业ID, 学号前缀, 班级名称)
values(11,‘090340204’,‘电气09-4’)SQL Server的基础
表与表建立关系,拖动主键ID至另一张表的外键即可连接
SQL Server的基础

小结:(1)主键,设定为“标识符”,则不能显示为主键插入值;
(2)列的数据类型是“数字型”,不可以加任何引号
(3)插入的值,所有的指令符号都是英文状态
(4)插入的值的个数和数据类型必须和表结构定义的列的个数和数据类型保持一致。
(5)新增的外键的值,必须在主键表中存在。比如:在“A03班级表”中,新增的“专业ID”的值,必须在“A02专业表”中存在这个=值
(6)一条新增指令只能操作一个表。

2、修改(更新)update
update A02专业表
set 专业名称=‘视觉艺术’,国家专业编码=‘060111’,专业简称=‘视觉’,学制=5
where 专业ID=143

update A02专业表
set 专业名称=‘视觉艺术1’,国家专业编码=‘060111A’,专业简称=‘视觉’,学制=5
where 专业名称=‘视觉艺术’ AND 国家专业编码=‘060111’
SQL Server的基础

数据库只认ID号
SQL Server的基础

小结:(1)一条新增指令只能操作一个表
(2)一定要注意是否启用where;建议启用 “键值ID”精确定位数据。

3、删除Delete
delete from A02专业表
where 专业ID=143
SQL Server的基础

小结:(1)一条新增指令只能操作一个表
(2)一定要注意是否启用where;建议启用 “键值ID”精确定位数据。

4、查询select
1、最简单的单表查询
(1)查询所有列 (SELECT *)
SELECT 学生ID, 班级ID, 学号, 姓名
FROM A04学生表
(2)查询部分列
SELECT 学号, 姓名
FROM A04学生表

2、多表查询
(1)两个表查询
SELECT A01学院表.院系名称, A02专业表.专业名称,
A02专业表.国家专业编码, A02专业表.学制, A02专业表.培养层次,
A02专业表.年级
FROM A01学院表 INNER JOIN
A02专业表 ON A01学院表.院系ID = A02专业表.院系ID

(2)三个表连接
SELECT A01学院表.院系名称, A02专业表.专业名称, A02专业表.国家专业编码,
A02专业表.学制, A02专业表.培养层次,
A02专业表.年级, A03班级表.班级名称
FROM A01学院表 INNER JOIN
A02专业表 ON A01学院表.院系ID = A02专业表.院系ID INNER JOIN
A03班级表 ON A02专业表.专业ID = A03班级表.专业ID
(3)条件查询
(1)where and 多表
SELECT A01学院表.院系名称, A02专业表.专业名称,
A02专业表.国家专业编码, A02专业表.学制, A02专业表.培养层次,
A02专业表.年级, A03班级表.班级名称, A04学生表.学号, A04学生表.姓名
FROM A01学院表 INNER JOIN
A02专业表 ON A01学院表.院系ID = A02专业表.院系ID INNER JOIN
A03班级表 ON A02专业表.专业ID = A03班级表.专业ID INNER JOIN
A04学生表 ON A03班级表.班级ID = A04学生表.班级ID
where A01学院表.院系ID=3 and A02专业表.年级=2007
and A03班级表.班级名称=‘英语07-2’
(2)where and or () 多表
SELECT A01学院表.院系名称, A02专业表.专业名称,
A02专业表.国家专业编码, A02专业表.学制, A02专业表.培养层次,
A02专业表.年级, A03班级表.班级名称, A04学生表.学号, A04学生表.姓名
FROM A01学院表 INNER JOIN
A02专业表 ON A01学院表.院系ID = A02专业表.院系ID INNER JOIN
A03班级表 ON A02专业表.专业ID = A03班级表.专业ID INNER JOIN
A04学生表 ON A03班级表.班级ID = A04学生表.班级ID
where A01学院表.院系ID=3 and (A02专业表.年级=2007 or A02专业表.年级=2006 )
(2)like % % 模糊查询,多表
SELECT ltrim(rtrim(A01学院表.院系名称)), A02专业表.专业名称,
A02专业表.国家专业编码, A02专业表.学制, A02专业表.培养层次,
A02专业表.年级, A03班级表.班级名称, A04学生表.学号, A04学生表.姓名
FROM A01学院表 INNER JOIN
A02专业表 ON A01学院表.院系ID = A02专业表.院系ID INNER JOIN
A03班级表 ON A02专业表.专业ID = A03班级表.专业ID INNER JOIN
A04学生表 ON A03班级表.班级ID = A04学生表.班级ID
where ltrim(rtrim(A02专业表.专业名称)) like ‘%精细%’
and (A02专业表.年级=2007 or A02专业表.年级=2006 )
/----查询太复杂,这里只上源码不上图----/

(SQL server 2014版本)
新手上路 还请大神看到多多指教