1.数据库的作用:不仅仅是存储,更重要的是将数据进行存储以后怎么样才能方便快捷的查询修改

2.数据库的特点:海量存储、查找速度快、并发性问题控制、安全性、数据完整性(保存在数据库中的数据是正确的、真是的)

3.数据库管理软件:SQL Server Management System

数据库软件:SWL Server以服务的方式存在

数据库文件:itcast.mdf

管理软件向数据库服务发出指定,数据库服务指向到具体的数据库文件

4.SQL 是一种语言 结构化查询语言

SQL Server也是一种语言,MSSQLServer微软的数据库

安装了服务器软件的机器就叫做服务器

5.不同的数据应该放到不同的数据库中:

便于对各个数据类别的进行个性化管理(分布式部署)

避免命名冲突、安全性更高

6.Table:关系数据中的关系指的就是表。不用的货物要放到各自的货物架,将这种区域叫做表,不同的表根据放在数据不同进行空间的优化,找起来也方便

Column:实体记录

用表格格式化数据:即便是引入了自动识别设备也很容易识别
7.主键(PrimaryKey):就是数据行的唯一标识。不会出现重复数据的列才能当主键。一个表可以没有主键,但会非常难以处理,因此没有特殊理由表都要设定主键
业务主键和逻辑主键。业务主键是使用有业务意义的字段作为主键;逻辑主键是使用没有任何业务意义的字段做主键,完全给程序看的,业务人员不会看的。一般推荐逻辑主键。
8.Master:记录系统的所有系统级别信息
Tempdb:保存所有的临时表和临时存储过程以及临时生成的工作表
9.数据存放在数据文件中(.mdf),对数据文件的每一次操作都记录在日志文件中(.ldf),存放日志记录
10.主数据文件和次数据文件
11.DATALENGTH 实际上存储的字节数
LEN 字符的个数
用char和Nchar时若输入的数据未达到指定的长度,则用空格填充
text其实在数据库里面存储的是一个指针,数据是存在另外一个地方的
null代表可以不输入值

12.

 //数据的插入(INSERT INTO),如果有自动增长的字段,不需要给值
INSERT INTO class VALVE('广州','很好')
//如果指定列名插入数据那么没有被指定的列名 要么允许为null 要么有默认值
INSERT INTO student (Name,Gender) VALUES('xiao',)
//如果没有指定列名,那么就表示是为全部的列名插入数据,就要每个列名都要指定数据(除了自动增长的)
INSERT INTO class VALUE ('','',--)
// 如果就是要插入数据为null,那么就把值写为null,前提是这个列允许为null.
INSERT INTO class VALUE('',null,--)
//如果要使用默认值可以使用DEFAULT代表这个字段的默认值,前提是要有默认值
INSERT INTO class VALUE('',null,default)
//将选出来的数据插入到指定的数据库中 选出来的数据的列数和插入进去的列数要保持一致
INSERT INTO class SELECT Name ,[DESCRIPTION],Addtime FROM classes

架构:只会导入表的结构
架构和数据选项:不仅导入结构,还能导入数据
GO:分批次的执行语句,将第一个GO与第二个GO之间的内容先发送出去执行,执行完之后再继续执行下一个GO

将选出来的数据插入到指定的数据库中,选出来的数据的列数和插入进去的列数要保持一致,类型也要匹配,如果满足自动转换的条件那么会

自动转换
insert into classes(Name)select Name FROM classes
复制旧表数据到新表,自动创建新表 只会复制数据 但是列的属性是不会复制的 select * into 新表 from 旧表
如果新表名存在则报错
在存储过程和触发器中显示的Unicode字符串常量必须以大写字母N为前缀
新插入数据的时候,主键不能重复

13.数据的更新修改(UPDATE)

//修改表的全部记录的字段的值
UPDATE class SET [description]=N'很好'
//修改制定的行的指定的列的值
UPDATE class SET [description]=N'很好' WHERE Id=
//修改符合多个条件的行的值(AND相当于&& OR相当于||)
UPDATE class SET [description]=N'很好' WHERE Id= OR Id=
//修改符合1个范围内的指定的值
UPDATE class SET [description]=N'很好' WHERE Id<
//修改符合1个范围内的指定的值,时间可以用运算符来比较
UPDATE class SET [description]=N'很好' WHERE Addtime<'2012-10-25'
//判断不等于
UPDATE class SET [description]=N'很好' WHERE Id!= 只能在2008的版本可用
//判断不等于的常用方式
UPDATE class SET [description]=N'很好' WHERE Id<>
//判断两个并列条件 AND 操作
UPDATE class SET Addtime=GETDATE() WHERE Name=N‘广州’AND [description]='很好'
//要修改多个列,用‘,’隔开
UPDATE class SET Name=N'广州',[description]=N'哈哈',Addtime=GETDATE() WHERE id=;
//判断相等是用1个等号,字符串是用‘’引起来的
//在原有的基础上取值并修改
UPDATE class SET [count]=[count]+ WHERE Id=
// 在原有的基础上取值并修改,'+'表示连接
UPDATE class SET name=name+N'好厉害' WHERE Id=
// 优先级 not and or,用括弧可以改变优先级
UPDATE class SET [description]=N'你好你好你好' WHERE id= OR (name='广州' AND [count]=)
//WHERR中可以用到其他的逻辑运算符:NOT、 AND 、OR、 <= 、>= 、<>、 != 、=

  数据的删除

//删除符合条件的行
DELETE FROM class WHERE Id=
// 删除整个表中的数据
DELETE FROM class
// delete语句中FROM是可以省略的
DELETE class WHERE Id=
//删除指定范围的
DELETE class WHERE Id<
ID自动增长 如果删除记录再新增,ID将不会紧接在后面,是根据最后一次产生的ID数
//删除表并且重置自动增长列
TRUNCATE TABLE class
DELETE 和 TURNCATE的区别
//DELETE删除的时候,不会重置自动增长列,效率较低 TRUNCATE要重置自动增长列,语句非常高效,语句不触发delete触发器
//DELETE删除的时候 每删除1条记录 都会在日志文件里面保存1条记录 TRUNCATE在日志文件里只保存1条记录,少量记录的时候用DELETE
//DROP是删除整个表 DELETE和TRUNCATE是删除表里的数据
DROP TABLE class

15.约束-保证数据完整性
数据库约束是为了保证数据的完整性(正确性)而实现的一套机制 
非空约束
主键约束(PK) primary key constraint唯一且不为空
唯一约束(UQ) unique constraint 唯一允许为空,但只能出现一次
默认约束(DF) default constraint 默认值
检查约束(CK) check constraint 范围以及各式限制
外键约束(FK) foreign key constraint 表关系:保证外键值来源于主键
增加外键约束是,设置级联更新、级联删除,外键表里的外键必须在主键表中存在
如果要删除主键表,必须先删除外键表中所有引用主键表中的数据

16.数据检索

//查询指定表中所有的行和列,不建议使用*,因为会进行两次查询 1次是去系统表中查询表中所有的列名,1次是到表中查询列名对应的数据
SELECT * FROM Student
//查询指定的列
SELECT Name,Xingbie FROM Student
//取别名 结果集 AS关键字可以省略 但一般不建议
SELECT Name AS 姓名,Xingbie AS 性别 FROM student
//限定条件的查询
SELECT Name,Gender FROM Student WHERE Name=N‘杨’
SELECT * FROM Student WHERE Age>
//检索常量或者表达式的值
SELECT +;
SELECT GETDATE() AS 当前时间
//[]标识符
//获取指定结果中的前三条--top
SELECT TOP * FROM Student
//对结果集进行排序 默认是升序asc 降序是desc
SELECT * FROM Student ORDER BY age ASC/DESC
//对条件排序 前面的一样才会去排后面的
SELECT * FROM Student ORDER BY age ASC,ID DESC
//取年龄最大的三个人
SELECT TOP * FROM Student ORDER BY Age ASC
//取前面百分之三十
SELECT TOP PERCENT * FROM Student ORDER BY Age ASC
//DISTINCT去除重复的数据(*)表示所有
SELECT DISTINCT (Name) FROM Student
//如果要过滤的重复数据有多列的情况下,是列的组合如果是唯一的才会算一个唯一项
SELECT DISTINCT Name,[ADDRESS] FROM Student

C#面向对象之数据库(理论、插入、修改、删除、查询)的更多相关文章

  1. Hibernate 插入,修改,删除,查询语句

    /* *具体操作hibernate的类 *增加,删除,修改,按ID查询,模糊查询,查询全部 **/ public class PersonOperate { //在hibernate中所有操作都是由S ...

  2. android SQLite(安卓数据库的插入显示删除)

    1.利用android自带数据库实现增加.删除.显示用户等操作 只是一个基本模型,为即将的与 复利计算apk整合做牺牲. 就不上传百度云供大家下载了 等整合了复利计算再上传. 数据的插入和显示:   ...

  3. java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

    插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...

  4. 图文并解Word插入修改删除批注

    .插入批注 首先选择对象,比如部分文字[hd1] ,之后执行这样的操作:"插入"→"批注":插入的批注处于编辑状态,可以直接输入批注的文字即可;图解如下: .修 ...

  5. oracle 数据库更新 新增 修改 删除

    数据增加 INSERT INTO 表名称 [(字段,字段,...)] VALUES (值,值,...) ; 考虑到日后代码的可维护性,一定要使用完整的语法进行数据的增加. 数据修改 UPDATE 表名 ...

  6. jdom 插入 修改 删除

    创建XML文档 XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点.而每个子元素都是一个Element对象,对象可以向下包含. 1 因此我们可以通过先创建元素再将元素添加 ...

  7. SQL server 数据库基本插入、删除命令

    一.实验素材: 附加学生信息表(student) 二.实验要求: 1.  查询student表中所有学生的信息 select  * from  student 2.  查询student表中“姓名”“ ...

  8. ado.net c#基本的增加,修改,删除,查询

    自己初次学习用的,各种不规范,注释没写 class AdoDemo { static string strConn = @"Data Source=server1;Initial Catal ...

  9. Xamarin.Android 入门实例(4)之实现对 SQLLite 进行添加/修改/删除/查询操作

    1.Main.axml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...

  10. spring-data-jpa 新增 修改 删除 查询 分页

      1.查询所有数据 findAll() 2.分页查询 findAll(new PageRequest(0, 2)) 3.根据id查询 findOne() 4.根据实体类属性查询: findByPro ...

随机推荐

  1. 解决树莓派8G的SD卡只能识别3.3G,SD卡扩容

    8GB microSD在Windows下使用Win32 Disk Imager下载映像后,在RPi中只能识别出3.3GB.而本身还有很多容量没有释放出来. 使用sudo raspi-config工具可 ...

  2. Flux --> Redux --> Redux React 入门 基础实例使用

    本文的目的很简单,介绍Redux相关概念用法 及其在React项目中的基本使用 假设你会一些ES6.会一些React.有看过Redux相关的文章,这篇入门小文应该能帮助你理一下相关的知识 一般来说,推 ...

  3. MMT事务处理来源类型-INV_OBJECT_GENEALOGY.GETSOURCE

    INV_OBJECT_GENEALOGY.GETSOURCE (MTL_MATERIAL_TRANSACTIONS.ORGANIZATION_ID,                           ...

  4. android EditText监听和长度监测事件

    <?xml version="1.0" encoding="utf-8"?> <!-- 定义基础的LinearLayout布局 --> ...

  5. 自己动手写CPU之第九阶段(4)——载入存储指令实现思路

    将陆续上传新书<自己动手写CPU>,今天是第40篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了,一直都有事,不好意思哈. 开展晒书评送书活动,在q=%E4%BA%9A%E9%A9 ...

  6. dvm进程,linux进程,应用程序进程是否同一概念

    Android 运行环境主要指的虚拟机技术——Dalvik.Android中的所有Java程序都是运行在Dalvik VM上的.Android上的每个程序都有自己的线程,DVM只执行.dex的Dalv ...

  7. spring 事件模式 源代码导读

    一,jdk 事件对象基类 package java.util; import java.io.Serializable; public class EventObject implements Ser ...

  8. mac上的xampp出现Access forbidden! You don’t have permission to access the requested object. It is either

    一个Joomla!程序,之前是在win上的xampp上运行得非常好的,当我把它拿到mac下面的xampp上去运行的时候,发现有问题,没法运行,报以下的错误: Access forbidden!  Yo ...

  9. Yii2 behaviors中verbs access的一些理解

    public function behaviors() { return ArrayHelper::merge(parent::behaviors(), [ 'verbs' => [ 'clas ...

  10. java 相关博客

    Intellij Idea 创建Web项目入门(一) SpringMVC 和 MyBatis 学习笔记,搭配示例,主要讲解一些基础的概念.用法和配置 包含框架有:SpringMVC.MyBaits.A ...