一:核心数据库概念简绍(掌握)
1.关系型数据库
①字段(又叫域和属性)
行(又叫记录和实列)
列
②DBMS:数据库管理系统(SQL Server的如SSMS就像我们的navat)
③RDBMS:关系型数据库管理系统
④DataBase Server 数据库服务器
SQL Server的如SSMS就像我们的navat
2.常见的数据库组件
①:--单行注释 /* 多行注释
②:大小写不敏感
③:sql命令不支持全角字符
④:可以在查询分析的时候选中哪行执行哪行
---------------------------------------------
系统数据库:master:元数据存储的地方,记录所有有关sql server的系统信息,包括:初始信息,登录账户
model:模板
msdb:比如我们在一周时间进行数据库的更新(专供sql server代理程序使用的数据库,它存放有关警告,作业,数据备份,数据复制)
tempdb:用来存放所有暂时的数据表和存储过程(一定要有一定的(磁盘空间)存储空间)
二:关系概念(理解)
数据建模(建立表与表之间的关系)那么怎么判断数据建模符合呢?(那就是范式)
属于第三范式就是符合了:
1.第一范式:原子性(每一列都不重复)符合1NF的关系中的每个属性都不可再分。
修改后:
2.第二范式:其改进是,2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖。第一范式基础上(其实就是每一行有一个主键和别的行区分),不存在非主属性对于码(码)的部分函数依赖 解决方法进行拆表
部分函数依赖(指的是我们的码有多个,其中有些非主属性可以通过多个码中一个就可以进行确定)
组成码的所有属性就是表的主属性(主键),其它就是非主属性
码:码可以是一个字段也可以是多个字段的组合
3.第三范式:在第二范式的基础上,删除所有与主键无关的列(消除传递依赖)
有时候我们不得不在第二范式中:因为我们在第二范式的查询效率会高
第三范式容易造成数据一致性问题(比如某个表的数据有点差错影响其他的表)
4.数据引用完整性
主键的约束(一般大型企业不会用)在当前表唯一,外键约束:在其主表必须存在(一般大型企业不会用),级联删除
三:创建数据库与数据库对象(掌握)
数据类型:1.数字类型(整数int bigint smallint tinyint,精确数值decimal(20,2) numeric,日期datetime,字符类型Unicode字符类型什么都可以存储(因为存储的字节大 比如多国语言)nchar (固定的) nvarchar(可变的))
索引:主键设置索引,频繁用到的字段设置索引,连接俩个表的字段设置索引,频繁的排序和过滤
点开表中的索引,后点击新建索引-》非聚集索引
脚本sql(将我们数据库中的表给客户,将我们自己的脚本sql复制就行):打开表后进行编写表脚本为
四:DML(掌握)
动作select name,地址from PO,条件where id=0;
表别名:可以运用到sql语句的任意
字段别名:只可以在我们的
---------------------------------------------------------------------------------
delete 字段 from 表名 where 条件
--------------------------------------------------------------------------------
select * into a from b ;将我们的b中数据,放入到a中
区别***:delete unit_bak where funitname=N'张';(为啥我们加N呢,因为我们创建的时候是Unit类型的)
--------------------------------------------
(动作)insert into 目标(表)(列1,列2) values(列1值,列2值);
上面一般不这样一次性插入所有的数据,我们一般将我们插入的字段要写清楚
-------------------------------------------------------------------------
update 表名 set name1=?, name2=? where 条件;
因为是Unit格式的,所以要加入N
用一个表更新另一个表(表的关联):
底下的from是将 我们的数据连接起来看结果,然后进行from前面的更新(重点就是建立俩表的关联(就是从笛卡尔积中找到符合条件的),用inner join)
五:顾问要掌握的数据库工具(掌握)