数据库2014年6月10日08:17:28

平时谈到“数据库”可能有两种含义:MSSQLServer、Oracle等某种DBMS(软件);存放一堆数据表的一个分类Catalog(数据库文件)。

SQL----Structured Query Language,结构化查询语言。SQL != SQL server != MS SQL
server(MicroSoft)

主键(PrimaryKey)---一个表中每个数据行的唯一标识,是唯一非空的。不会有重复值---不能为null---有且仅有一个(不涉及复合主键)。

业务主键是使用有业务意义的字段做主键,比如身份证号、银行账号等;逻辑主键(推荐)是使用没有任何业务意义的字段做主键,完全给程序看的,业务人员不会看的数据。

脱机---软件中存在着数据库文件----通过联机还原,分离---不存在数据库文件---通过附加还原。

数据库的备份和还原: 还原----右击数据库文件---任务,还原数据库----源设备,选取备份文件。*选项中“覆盖现有数据库”一定要勾选。

数据类型:bit(Bool类型)数据库中存储的是true和false,sql语句中用1和0代表;DateTime类型在SQL语句中用单引号输入;

















char类型 固定长度(空格补充) 不包含中文 最长8000字符
varchar类型 可变长度 不包含中文 最长8000字符
nvarchar类型 可变类型 可含中文 最长4000字符

SQL语句中字符串用单引号括起来,大小写不敏感(关键字+数据库名字+表名+列名)。

SQLserver中生成GUID的函数NEWID(),.NET中生成GUID的方法是 Guid.NewGuid(),返回类型是Guid类型。

【1】insert into 表名
(列1,列2---) values
(值1,值2---);列名和values值必须一一对应。

    insert into 表名 values (值1,值2---);省略列名,则values值应该给(除标识列以外)其他列都有对应值(有默认值的,default代替)。

【2】update 表名 set 列名=新值
where 列名=旧值。

【3】delete from 表名
where 列名=某值。-----delete和truncate区别:前者清空过后,但是主键不会从1开始;后者清空数据,还原标识列,从1开始。

【4】drop 表名。------drop和delete区别:drop是删除整个表;delete是清空表中的数据,但是表还在。

【5】select
列名 from 表名 where 判断。------select number as 学号, name as 姓名,age as 年龄 from
student:AS是给结果集中的列起个别名

order
by---此字句位于select语句的尾部,语序按照一个列或多个列进行排序----默认为升序ASC,(降序为DESC)-----select *
from employee order by age DESC,salary ASC;先按年龄从大到小排,年龄相同按工资从低到高排列。

Where中可以使用的其他逻辑运算符:or、and、not、<、>、>=、<=、!=(或<>)等。

WHERE------GROUP
BY------HAVING(先后顺序)

WHERE+GROUP BY:是对原始数据进行过滤,在进行分组;GROUP BY+HAVING:对分组后的数据进行过滤。WHERE+GROUP BY+HAVING:select
name,sum(salary) from employee WHERE
name=‘Bush‘ or name=‘Adas‘ GROUP BY name HAVING
sum(salary)>1500,查找员工表中姓名为"Bush"或“Adas”工资超过1500的按姓名排列。

联合结果集:union因为要进行重复值扫描,所以效率地下,因此如果不是确定要合并重复,推荐使用union
all。

通配符:必须和LIKE一起使用。单字通配符"_";多字通配符"%",匹配任意次数(0或者多个)出现的任意长度(0或者多个)字符;[]括号内所指定范围内的一个字符-----[ao]代表a与o里二选一;[^]不在括号范围内的一个字符。

null在c#和数据库中的区别
:C#中,一个变量赋值为null,表示变量不指向任意对象;数据库中的null表示不知道,而不是没有。------select * from employee
where name is null-----对姓名为null时,用IS关键字。

BETWEEN:在where子句中使用,select
* from employee where name between ‘Adas’ and
‘salar‘----------SQLserver会列出姓名介于‘adas’和‘salar’之间并且包括这两个值的人。

IN关键字:IN 操作符允许我们在 WHERE
子句中规定多个值;SELECT * FROM Persons WHERE
LastName IN (‘Adams‘,‘Carter‘)-----
从表中选取姓氏为 Adams
Carter 的人。

DISTINCT:select distinct 列名
from 表名-----去掉重复数据,返回唯一不同的值。

时间: 2024-08-24 22:37:09

数据库2014年6月10日08:17:28的相关文章

数据库2014年6月10日11:13:10

SQL语句创建数据库: create table student(id int not null primary key,number nvarchar not null,name nvarchar not null,brithday DateTime default getdate(), adress nvarchar ) 创建一个学生表,主键为id,not null 表示不为空,default getdate()表示设定默认值为当前时间. 空值处理函数:select isnull (Name

2014年6月7日08:51:30

一个函数由这么几部分组成,函数名.参数个数.参数类型.返回值,就是把函数名字去掉以后,剩下的东西(返回值.参数.调用方式等)就是函数的签名.函数在重载时,利用函数签名的不同(即参数个数与类型的不同)来区别调用者到底调用的是那个方法. 构成重载的条件:参数类型不同,顺序不同或者参数个数不同(不严谨的),与返回值无关. 1 //C#中方法重载有:参数的顺序不同的方法称为重载这一条. 2 public static int Add(int j, double i) 3 { 4 int sum = 0;

2014年6月7日03:17:08

1 int i = 9; 2 Console.WriteLine("{0}", i == 1); 3 Console.WriteLine("{0}", i = 1); 4 Console.ReadKey(); 5 //输出falese和1. C#中赋值表达式也有值,它的值表示为赋值后变量的值 1 string s = Console.ReadLine(); 2 if (s == "1") 3 { 4 Console.WriteLine("

常量 2014年6月9日08:32:59

class Program { //常量名一般全部大写 //private const double PI = 3.14;//定义常量,private只能类内部使用 public const double PI = 3.14;//定义常量,public整个项目都可以使用 static void Main(string[] args) { //const double pi = 3.14;//定义常量,只能整个方法使用 //pi = 2;//不能为常量赋值 Console.WriteLine(PI

2014年7月10日,我人生的最重要Upgrade

2014年7月10日上午,我的小公主顺利的出生于国妇婴.之前各种紧张,各种不安.在不安中的前天晚上陪着来上海的董博士于方先生在人民广场聚餐.大家都是工作几年的,各种感慨,对于工作中的零零种种.还有对未来的模糊规划.在近11点,散伙回家,在酒精的刺激下,终于睡了个好觉. 在10号的六点半,起床,快速的洗漱后打车到国妇婴,要赶到早高峰之前到达,要知道,从浦东到浦西还是有很多红绿灯的,尽管只有15公里.到达了,陪着老婆做产前的各种检查.当确定了产后还是住六人间的小床后,觉得不可思议,怎么能让产妇和新生

2014年5月10日

时间是毫不留情的,一晃,半年的时间又将过去. 这不仅仅是焦虑,也有无从着手之感. 北京,郊区的出租屋,月薪5K,单身:其实,我过得不错.每天回家,第一件事就是打开电脑,打开chrome,打开央广网的中国之声直播,如果它在播广告,就换到经济之声.这是从大学当播音员以来一直的习惯,也是为了房间里有点声音. 从去年5月到这座我不太喜欢的城市,已经一年,我才想起写些什么东西.By the way,除了空气,并没有什么不满,北京给我机会,给我工作,上天待我很优厚了(笑). 前两年,浑浑噩噩的,毕业两年的时

2014年7月10日

字符串讲解  参考MSDN 方法 string.ToLower() string.ToUpper() string.Equals 属性: string.length 字符串分割: string str = "How are you ?Fine,Thank you?"; string[] words = str.Split('','?','!',','); 分割方法的重载 string str = "How are you ?Fine,Thank you?"; cha

2014年8月10日:敏捷个人奥森跑步+慢走分享

敏捷个人2014年第二次线下交流活动,雨过天晴的早上空气格外清新,特别适合跑步.早上7点我们在奥林匹克森林公园南门集合. 跑步前跟着 @李宏喜 做跑前拉伸活动,他是专业的马拉松运动员,10月份的北京马拉松比赛有好几个敏友报名,这也算是为北马比赛的准备. 7点半开始跑第一圈用时33分钟,喝点水继续慢跑第二圈. 跑过两圈下来已经是大汗淋漓. 第三圈开始慢走,边走边分享,四个人分享结束又走完了一圈. 以下是每个人的分享内容. @尹井鑫的分享 我是从今年5月开始敏捷个人练习的,大概用了1个多月的时间,完

2014年6月7日03:49:28

1 //将一个字符串数组的元素的顺序进行反转.{"3","a","8","haha"} {"haha","8","a","3"}.第i个和第length-i-1个进行交换. 2 string[] strs = { "3", "a", "8", "haha" }; 3 f