笔记1

数据库系统 DBS
数据库管理系统 DBMS


SQL Server服务的启动方式
一、操作系统的服务中启动
二、SQL Server Mangement Studio中启动


数据文件.mdf/.ndf
日志文件.ldf

备份
完全备份
差异备份
事务日志备份
文件和文件组备份

12/22
分类/数据类型 说明
二进制
image 图像
文本
char 固定长度的非Unicode字符数据
varchar 可变长度非Unicode数据
nchar 固定长度的Unicode数据
nvarchar 可变长度Unicode数据
text 存储长文本信息
ntext 存储可变长度的长文本
日期
datetime
数字
int/smallint 整数
float/real 浮动数
货币
moeny
bit数据
bit 存储布尔数据类型

12/23
如果两列或多列组合起来唯一标识中的每一行,该主键叫“复合主键”

选择主键的原则
最少性
尽量选择单个操作作为主键
稳定性
尽量选择数值更新少的列作为主键


标识列是自动生成的,不能再该列上输入数据


12/26
1.当主表中没有对应的记录时,不能讲记录添加到子表
2.不能更改主表中的值而导致子表中的记录孤立
3.字表存在于主表对应的记录,不能从主表中删除改行
4.删除主表前,先删子表

12/27
DML(数据操作语言)
插入、删除和修改数据库中的数据

DOL(数据控制语言)
用来控制存取许可、存取权限等

DQL(数据查询语言)
用来查询数据库中的数据

DDL(数据定义语言)
用来建立数据库、数据库对象和定义表的列

运算符-通用
赋值-通用

逻辑运算符
AND 当且仅当两个布尔表达式都为true时,返回true
OR 当且仅当两个布尔表达式都为flase时,返回flase
NOT 布尔表达式的值取返

比较运算符
不等于为:<> or !=
-其余通用

插入数据行语法 可省略列名
INSERT INTO 表名 [(列名)]VALUES(值列表)
列:INSERT INTO Emp (ename,salary,job,depnum,sex) VALUES
('悟能',4000,'设计',2,'M');


插入多行数据
语法 INSERT INTO<表名>(列名)
SELECT<列名>
FROM<源表名>

12/28
通过SELECT INTO语句将现有表中的数据添加到新表中
语法 SELECT(列名)
INTO<表名>
FROM<源表名>
该语法只能执行一次
列:select*into 表名 from Emp;
指定列 列:select 列名 into 表名 from Emp;


通过UNION关键合并数据进行插入
语法 INSERT INTO<表名>(列名)
SELECT<列名>UNION
SELECT<列名>UNION
.....
SELECT<列名>;


使用UPDATE更新数据行
语法 UPDATE 表名 SET 列名 =更新值
[WHERE 更新条件]
列:--update Emp_03 set salary=salary+1000 where emnum=1001;
--update Emp_03 set ename='李白' where emnum=1001;

1.更新多列数据使用逗号隔开
2、勿忘条件限制,乙方有效数据的丢失█

12/29
删除:
DELETE[FROM] 表名 [WHERE<删除条件>];

TRUNCATE TABLE 表名; 基本不使用

查询:
SELECT 列名
FROM 表名
WHERE 查询条件表达方式
ORDER BY 排序的列名ASC/DESC

使用AS命名列
注意:1.+连接的数据类型必须兼容
2.如果+连接字符类型数据,结果为字符串数据的连接
3.如果+连接数值类型数据,结果为数值的和
SELECT SCode AS 学生编号,SName AS 学生姓名,SAddress AS 学生地址
FROM Students
WHERE SAdderess '河南新多';

12/30

数据查询空行、常量列
语法 select * from 表名 where 列名 is null/not null;

数据-限制行数
限制固定
select top 5 列名 from 表名 where 条件;
百分数返回行数
select top 20 percent 列名 from 表名 where 条件;

排序 升/降
select * from 表名 order by 列名;
select * from 表名 order by 列名 desc;

多列排序 第一列名重复时、使用第二列名
select * from 表名 order by 列名xN;
select * from 表名 order by 列名 desc,列名 desc,....;

SQL Server中的函数

01/03

模糊查询
select*from 表名 where 姓名列 like '张%';

通配符
‘_’一个字符 ‘%’不限字符 [1-2]限制字符

like只与字符类型数据联合使用

—BETWEEN
select*from 表名 where 列名 between 值and值; 值可以是数字/日期

—IN
select*from 表名 where 列名 in('某某','某某');


聚合函数:对一组值进行计算,并返回计算后的值具有统计数据的作用。
//自动忽略空值

01/04
分组查询
select...from 表名 where ... group by...;

分组筛选
select...from 表名 where... group by...having;


where子句:
用来筛选from 子句中指定的操作所产生的行
froup by子句:
用来分组where子句的输出
having 子句:
用来从分组的结果中筛选行


01/05
常用的多表连接查询
内连接 inner join
外链接 左:left join 右:rigth join

内连接:内连接使用比较运算符根据每个表的通用列中的值匹配两个表中的行
语句:select 列名 from 表名 inner join 表名2 on 表名 =/<> 表名2;
select 列名 from 表名,表名2 where ...;

01/06
左外连接:主表(Student)中的数据逐条匹配表(Score)中的数据
1.匹配,返回到结果集
2.无匹配,NULL值返回到结果集

右外连接:右外连接的原理与左外连接相同
右表逐条去匹配记录;否则NULL填充

原文地址:https://www.cnblogs.com/PBT95/p/6852799.html