sql-server 创建

来源:互联网 发布:mac好玩的免费游戏 编辑:程序博客网 时间:2024/06/01 08:20

                                                              MYSQL教程                                 MYSQL教程       mysql教程

我的MYSQL学习心得(一) 简单语法

我的MYSQL学习心得(二) 数据类型宽度

我的MYSQL学习心得(三) 查看字段长度

我的MYSQL学习心得(四) 数据类型

我的MYSQL学习心得(五) 运算符

我的MYSQL学习心得(六) 函数

我的MYSQL学习心得(七) 查询

我的MYSQL学习心得(八) 插入 更新 删除

我的MYSQL学习心得(九) 索引

我的MYSQL学习心得(十) 自定义存储过程和函数

我的MYSQL学习心得(十一) 视图

我的MYSQL学习心得(十二) 触发器

我的MYSQL学习心得(十三) 权限管理

我的MYSQL学习心得(十四) 备份和恢复

我的MYSQL学习心得(十五) 日志

我的MYSQL学习心得(十七) 复制


DB databaseDBMS database manager systemsql struct quary langure小型数据库  access foxbase负载量小 100人内成本  千元内   中性数据库mysql sql server informix  负载 PV 日访问量5千-15千成本万元内大型数据库sybase < oracle < db2负载可以处理海量数据库 千万级成本 破万做项目时 用什么数据库 1.看项目的规模负载量多大(用户多大  新浪搜狐 这样)成本安全性oracle 1.oca oracle初级认证2.ocp oracle 专家认证3.ocm oralce 大师认证系统数据库 系统自带必须有 master 系统配置信息model 模版使用 用于用此为模版msdb  tempdb 临时表一.数据库安装sql2000  解决挂起问题为什么学sql  因为要挣钱我们学习 sql 2005尽量学习数据库原理数据结构跟数据库的区别数据库在应用软件级别研究数据存储和操作(硬盘)数据结构主要在系统软件级别研究数据存储和操作(内存)什么是连接 重要!!我们通过SQL——Server 客户端 来查看数据 明白客户端跟 数据库的区别标准数据库语言第四代 语言 是命令 没有if  for循环什么的 重点明白 可视化客户端 跟服务器的概念 有了编程语言为什么还需要数据库通过JAVA C# C++ 输入输出流就可以实现 但是!!!对内存数据操作是编程语言的强项。但是对硬盘数据的操作是编程语言的弱项。对硬盘数据的操作是数据库的强项 也是数据库的核心。 PL-SQL 对数据的复杂操作我们通过数据库将数据通过编程语言带入到内存中 编程语言对数据进行处理 然后再存回到数据库中   通过io流进行读数据什么的  大致的一个流程初学者 从三个方面学习数据库1.数据库是如何存储数据的sql-server如何存储数据的字段 记录 表 约束(主键 外键  唯一键 非空键 check default 触发器)2.数据库是如何操作数据的insert updata delete T-SQL 存储过程 函数 触发器3.数据库是如何显示数据的select 重点的重点建立数据库    mdf Ldf数据文件 日志文件如何删除数据库 如何附加和分离数据库分离 将当前数据库跟 可视化客户端 联系断开  这样可以将mdf跟ldf文件给别人附加 别人将收到的两个文件 附加到自己数据库中去数据库是如何解决存储问题的 类似java中的类 事物是如何存储的  事物跟事物之间的关系如何存储 重点员工员工姓名  员工工资  员工性别  员工年龄张三        20000     男        26张三        20000     男        26这样存储时可能出现重复数据 数据冗余   因此需要唯一编号员工员工编号(主键)    员工姓名  员工工资  员工性别  员工年龄 部门编号(外键)1张三        20000     男        2612张三        20000     男        262部门部门姓名部门人数 部门地址部门编号市场部10000西安1研发部400北京2如何将 员工跟部门联系起来   成为关系型表  部门编号 主键  能够唯一辨识员工信息的 字段 就是主键   存事物就需要主键来区分外键  将事物跟事物联系起来    一个表中数据来自 另外一个表字段(列,属性)  说白了就是一列,一个事物的某个特征记录(元组)      每一行就是一个记录  某一个具体的事物 具备的信息 字段的组合表              记录的组合 同一类事物的集合字段是事物的属性, 记录是事物的本身  表是事物的集合。delete from  表建立外键 关系  是在多对1  在员工表上建立跟部门表的联系 有外键的表叫外键表  有时候 性别   年龄 等信息  对数据进行约束  等等约束   use 表名 create table company ( com_id int constraint PK_name primary key, com_name nvarchar(100) not null, com_address nvarchar(100) ) --是注释 --PK 主键 --FK 外键 create table person ( per_id constraint PK_name primary key, per_name nvarchar(100) not null, per_sex nchar(1), cmp_id int constraint  FK_name foreign key references company(com_id) ) constraint 约束名  任何一种约束都可以自定义命名 三. 什么是约束  对一个表中一列 一个属性(字段)的限制分类1. 主键约束 primary key  不允许重复元素  放置数据冗余2. 外键约束 foreign key  通过外键约束表示表与表之间的关系3. check约束 保证事物字段属性合法性create table student( stu_id int constraint PK_STU primary key, stu_sal int check (stu_sal>=1000 and stu_sal<=8000))insert into student (stu_id, stu_sal) values (1, 10000) 1万错了4. default 约束  保证事物属性一定有一个值 默认值create table student( stu_id int constraint PK_STU primary key, stu_sal int check (stu_sal>=1000 and stu_sal<=8000), stu_sex nchar(1) default('男') --默认男的 数据库中字符串必须用' ')insert into student (stu_id, stu_sal) values (1,6000);insert into student values(1,6000,'男') ; --男不能丢掉 这种插入情况5. 唯一约束  保证事物属性取值不能重复 可以为空 但是只能一列为空create table student(stu_id int constraint PK_STU primary key,stu_sex nchar(1) default('男'),stu_name nvarchar(200) unique)insert into student  values (1,'男','张三');insert into student  values (2,'男','张三'); --错误 违反唯一约束insert into student  values (null,'男','王五');stu_id 不能为空insert into student  values (5,'男',null); 唯一键可以为空 stu_name nvarchar(200) unique not null    unique跟not null  可以组合使用unique 键是否允许多列为空 SQL-server 只允许一个unique列为空Oracle11G 允许多个unique 列为空--如何合理的利用主键跟唯一键合理建表--QQ登陆时 QQ号是主键  邮箱或者手机号就是唯一键--外键一般是别的表的主键 一一对应关系create table StudentPU(stu_id int primary key identity,  --identity自增stu_name nvarchar(50) unique not null,stu_email nvarchar(20) unique not null,stu_address nvarchar(50))drop table student  --删除表delete from Student -- 清空not null 要求用户必须为该属性赋值如何一个字段null 和not null  都没写则默认 可以为空defalut跟null 区别default跟null 都可以 不写 一个为默认值 一个为空四. 表和约束区别数据库通过表来实现数据的存储数据库通过约束来实现取值的限制跟表跟表之间的关联建表的过程就是指定事物属性跟约束等信息。五. 什么是关系表跟表之间的联系数据库模拟显示真是的关系。分类(A表和B表)1对1 夫妻关系A的主键是B的外键B的主键是A的外键1对多 二叉树 root 对应left跟right1A  多B   或者  部门    员工把表A的主键充当表B的外键或者讲 把表A的主键添加到表B来充当表B外键多对多 网状图班级 和 老师关系多对多必须通过单独一个表班级是一个表, 老师是一个表班级跟老师关系单独一个表--班级create table banji(banji_id int primary key,banji_num int not null,banji_name nvarchar(20),)--教师create table jiaoshi(jiaoshi_id int primary key,jiaoshi_name nvarchar(200))--教师跟班级的关系create table banji_jiaoshi_mapping(banji_id int constraint fk_banji_id foreign key references banji(banji_id),jiaoshi_id int constraint fk_jiaoshi_id foreign key references jiaoshi(jiaoshi_id),kecheng nvarchar(20),constraint pk_banji_id_jiaoshi_id primary key (banji_id, jiaoshi_id))可以删了约束 那样表跟表之间就没有约束了但是还有数据 删除的是 constraint约束机器01 汇编语言编程语言C C++ JAVA 等(通过IO流方式)数据库语言(命令)自己脑子里过以下 字段 属性  记录行 表 约束(主键 外键 check default unique not null) 等等信息constraint primary foreign references identity 主键是严格的约束 为防止数据冗余 必须设置一个主键且智能有一个  不能为空唯一约束是在主键外 为保证数据有效性 可以设置多个唯一约束 可以为空 以上就是关于数据库的存储五. 什么是主键能够唯一标识区别一个事物的一个字段或者多个字段的组合(多对多时)含有主键的表叫主键表主键通常是整数,不建议使用字符串 如果主键用于集群式服务(跨数据库服务,银行转帐工行到农行) 才可以考虑字符串主键要设置成 xx_id 通常不允许修改 除非删除。主键 尽量设置为一个没有业务含义的变量六. 什么是外键如果一个表中的一个或者若干字段来自别的表的主键或者唯一键  则这些来自外面的字段都是外键外键通常是别的表的主键而不是唯一键,唯一可能为空。外键不一定来自外面的表,可能来自本表的主键( 员工表 中员工编号为主键  员工上司编号一定是主键中的一个值 )七. 主键表外键表删除问题先删外键表 再删主键表  否则外键表所依赖的主键表没有了


1 0
原创粉丝点击