《SQL SERVER 2008数据库学习笔记(一)——Clown》

最近看了一本SQL SERVER2010的教材,顺便记录了一下笔记(PS:此书暂时没有看完、所以暂时更新一下内容)!一下内容为本人自己整理、如有错误还请大家指出以免影响别人的学习。

1、 创建一个表TestDB

  DROP TABLE TestDB

  CREATE TABLE TestDB(

    id varchar(15) NOT NULL,

    name varchar(15) NOT NULL,

    sex int NOT NULL,

    CONSTRAINT pk_id PRIMARY KEY(id)

  );

2、 向TestDB表中插入一条数据

  INSERT INTO TestDB (id,name,sex) VALUES (‘001‘,‘Clown‘,1);

3、 查询TestDB中全部数据

  SELECT * FROM TestDB;

4、 给查询的列名起个自定义的别名

  SELECT id AS c1,name AS c2,sex AS c3 FROM TestDB;

  也可以不加[AS]

  SELECT id c1,name c2,sex c3 FROM TestDB;

  也可以对别名加[“”],则可以使用关键字做别名

  SELECT id "AS",name "SUM",sex "CHAR" FROM TestDB;

5、 使用DISTINCT消除重复的行(计算量大、一般情况不建议使用)

SELECT DISTINCT name,sex FROM TestDB;

6、 ORDERY BY进行升序排列

SELECT * FROM TestDB ORDER BY sex

7、 ORDERY BY CASE按照条件排序

SELECT id c1,name c2,sex c3

FROM TestDB

ORDER BY CASE -- ORDER BY为一个隐式游标(CURSOR)

WHEN name=‘Clown‘ -- 如果[name]列的值全部为[Clown]

THEN sex   -- 则按照[sex]排序

ELSE id -- 否则按照[id]排序

END;

8、 ORDERY BY [column] DESC降序排列

SELECT * FROM TestDB ORDER BY id DESC;

9、 WHERE进行数据筛选

-- 筛选出[id]为[001]的所有行的所有列

SELECT * FROM TestDB WHERE id=‘001‘;

注:不能在WHERE中使用SUM()或者COUNT()等聚合函数!

比较运算符最快的为相等[=]其次是不相等[<、<=、>、>=]最慢的为不等于[<>或!=]

表中选择特定行的操作称为[限制]

WHERE语句不能用[列名]的[别名]、必须用原列名

WHERE在SELECT之前进行计算

10、多条件查询连接符:AND 、OR 、NOT

  AND:查询多个条件同时为[真]

  OR:一个条件成立即可以

  NOT:取与条件相反的结果

  -- 筛选出[id]为[001]的所有行的所有列

  SELECT * FROM TestDB WHERE NOT id<>‘001‘;

  注:同时使用是AND、OR、NOT优先级:NOT最高其次是AND最后为OR

11LIKE模糊查询

  -- 查询[name]字段含有[C]的数据

       SELECT * FROM TestDB WHERE name LIKE ‘%C%‘

  -- 查询[name]字段含有6位长度的数据

  SELECT * FROM TestDB WHERE name LIKE ‘_____%‘

  -- 查询[name]字段[C]或[a]或[b]开头并[lown]结尾的数据

  SELECT * FROM TestDB WHERE name LIKE ‘[Cab]lown%‘

  -- ESCAPE ‘\‘ 此句声明[\]为转义字符相当于查询的是[_Clown]关键字

  SELECT * FROM TestDB WHERE name LIKE ‘\_Clown%‘  ESCAPE ‘\‘

  -- 不是以[A]开头的[6]位或以上的关键字

  SELECT * FROM TestDB WHERE name LIKE ‘[^A]Clown%‘

  注:LIKE仅试用于字符串

12BETWEEN筛选出大于等于并小于等于的一个段

  -- 筛选出[id]大于等于并且小于等于的数据

  SELECT * FROM TestDB WHERE id BETWEEN 1 AND 2

13IN关键字筛选值是否等于给定的值

  -- 筛选出[id]为[001]和[003]的值

  SELECT * FROM TestDB WHERE id in (‘001‘,‘003‘)

14IS NULL值是否为[NULL](PS:[NULL]不代表字面量)

  -- 筛选出[name]为[NULL]的数据;[NULL]不代表字面量而是说明是否为空

  SELECT * FROM TestDB WHERE name IS NULL

  -- 筛选出[name]为非空的数据;[NULL]不代表字面量而是说明是否为空

  SELECT * FROM TestDB WHERE name IS NOT NULL

15SUBSTRING(Column,position,length)提取字符串

  -- 提取[name]列值、从第[1]位开始共[1]位

  SELECT SUBSTRING(name,1,1) FROM TestDB

16UPPER(string)LOWER(string)大小写转换函数

   -- [name]列转换为小写

  SELECT LOWER(name) FROM TestDB

  -- [name]列转换为大写

  SELECT UPPER(name) FROM TestDB

17、获取当前时间戳

  -- 获取当前时间戳

  SELECT  CURRENT_TIMESTAMP

18、类型转换CAST(expression AS type)

  -- 将[sex]列转换为[varchar]类型

  SELECT CAST(sex as varchar) FROM TestDB

19CASE函数相当于IF ELSE

  -- CASE相当于IF ELSE

  SELECT id, ColumnName =

CASE id

WHEN ‘001‘ THEN ‘Road‘

WHEN ‘002‘ THEN ‘Mountain‘

WHEN ‘003‘ THEN ‘Touring‘

ELSE ‘Not for sale‘

END

  FROM TestDB

  ORDER BY id;

20INNER JOIN 内链接

  -- 内链接->返回[TestDB]表中[id]等于[TestDB2]表中[OrderId]

  SELECT * FROM TestDB t1

  INNER JOIN TestDB2 t2

  ON t1.id = t2.OrderId

21sp_help 查看表的结构

  -- [G_GAMEList]为表名称

   sp_help G_GAMEList

22UPDATE SET 更新数据

  -- [G_GAMEList]为表名,[GG_Date]为需要修改的字段以及值,如不加WHERE则修改全部

  UPDATE G_GAMEList

SET GG_Date = ‘2014-10-28‘

  WHERE GG_Id = ‘1‘;

23DELETE 删除,不删除表结构

  -- 删除[G_GAMEList]表、有删除记录可以恢复

  DELETE G_GAMEList

  -- 删除[G_GAMEList]表中[GG_AddId]字段为[1]的行

  DELETE FROM G_GAMEList WHERE GG_AddId=‘1‘;

24DROP TABLE 删除,删除表结构以及表

  -- DROP删除表不可恢复,但速度比DELETE快

  DROP TABLE G_GAMEList

25、TRUNCATE 删除可以使自增字段归零但数据不可恢复,不删除表结构

  TRUNCATE TABLE dbo.a;

26、约束

NOT NULL                           阻止向列中插入空值

PRIMARY KEY                     设置表的主键

FOREIGN KEY                     设置表的外键

UNIQUE                               阻止向列中插入重复的值

CHECK                                  使用逻辑(布尔)表达式限制插入列中的值

列约束:是列定义的一部分,它设置作用于列的条件。

表约束:是有别于列定义并加强于表中多个列的条件。

27、CREATE TABLE t_Name 创建表

         -- 创建一张新表

  CREATE TABLE t_TestTable(

     id varchar(10),

    name varchar(10)

  )

28DEFAULT设置列的默认值

  -- 创建一张新表,设置[name]默认值为‘‘

  CREATE TABLE t_TestTable(

    id varchar(10),

    name varchar(10) NOT NULL DEFAULT ‘‘

  )

29、主键PRIMARY KEY与外键 FOREIGN KEY

  -- 设置[C_Id]为主键

  CREATE TABLE t_City(

    C_Id varchar(10) NOT NULL PRIMARY KEY,

    C_Name varchar(10) NOT NULL,

    C_Parment int DEFAULT 0,

  )

  -- 创建一个[t_User]表,[U_Id]为主键,[U_City]为外键主键为[t_City]表中的[C_Id]列

  CREATE TABLE t_User(

    U_Id varchar(10) NOT NULL PRIMARY KEY,

    U_Name varchar(10) NOT NULL,

    U_Sex int NOT NULL DEFAULT 1,

    U_City varchar(10),

    CONSTRAINT FK_U_City

     FOREIGN KEY(U_City)

     REFERENCES t_City(C_Id)

  )

  INSERT INTO t_City(C_Id,C_Name)VALUES(‘1‘,‘呼伦贝尔‘);

  -- 外键不能插入父表中没有的数据

  INSERT INTO t_User(U_Id,U_Name,U_Sex,U_City) VALUES (‘1‘,‘Clown‘,1,‘1‘);

  -- 外键可以为空

  INSERT INTO t_User(U_Id,U_Name,U_Sex) VALUES(‘2‘,‘Clown‘,1);

  注:外键可以为[NULL]但是不能为父表中不存在的值。

30UNIQUE值唯一

  CREATE TABLE t_Test(

    T_Id varchar(10),

    CONSTRAINT un_id

    UNIQUE(T_Id)

  )

  注:UNIQUE标识[T_Id]列为唯一值不能插入重复数据

31、创建临时变量表

  创建局部变量表:

  CREATE TABLE #t_TempTable(

    TT_Id CHAR(3),

  )

  创建全局变量表:

  CREATE TABLE ##t_AllTempTable(

    ATT_Id CHAR(3),

  )

  注:创建临时变量表是用来存储临时的数据当会话结束或事物结束时则数据清除

32ALTER修改

  -- 向[t_City]表中增加列[C_Time]

  ALTER TABLE t_City

    ADD C_Time VARCHAR(10);

  -- 删除[C_Time]列

  ALTER TABLE t_City

    DROP COLUMN C_Time

33CREATE INDEX创建索引

  -- 为表[t_City]的[C_Id]列创建索引

  CREATE INDEX index_Name ON t_City(C_Id);

  -- 删除索引

  DROP INDEX index_Name ON t_City;

  注:索引查询速度变快但是修改和添加数据时变慢,在添、改数据时索引也需要自动维护

时间: 2024-10-02 15:16:41

《SQL SERVER 2008数据库学习笔记(一)——Clown》的相关文章

CI框架源码阅读笔记3 全局函数Common.php

从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作). 打开Common.php中,第一行代码就非常诡异: if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 上一篇(CI框架源码阅读笔记2 一切的入口 index

IOS测试框架之:athrun的InstrumentDriver源码阅读笔记

athrun的InstrumentDriver源码阅读笔记 作者:唯一 athrun是淘宝的开源测试项目,InstrumentDriver是ios端的实现,之前在公司项目中用过这个框架,没有深入了解,现在回来记录下. 官方介绍:http://code.taobao.org/p/athrun/wiki/instrumentDriver/ 优点:这个框架是对UIAutomation的java实现,在代码提示.用例维护方面比UIAutomation强多了,借junit4的光,我们可以通过junit4的

Yii源码阅读笔记 - 日志组件

?使用 Yii框架为开发者提供两个静态方法进行日志记录: Yii::log($message, $level, $category);Yii::trace($message, $category); 两者的区别在于后者依赖于应用开启调试模式,即定义常量YII_DEBUG: defined('YII_DEBUG') or define('YII_DEBUG', true); Yii::log方法的调用需要指定message的level和category.category是格式为“xxx.yyy.z

源码阅读笔记 - 1 MSVC2015中的std::sort

大约寒假开始的时候我就已经把std::sort的源码阅读完毕并理解其中的做法了,到了寒假结尾,姑且把它写出来 这是我的第一篇源码阅读笔记,以后会发更多的,包括算法和库实现,源码会按照我自己的代码风格格式化,去掉或者展开用于条件编译或者debug检查的宏,依重要程度重新排序函数,但是不会改变命名方式(虽然MSVC的STL命名实在是我不能接受的那种),对于代码块的解释会在代码块前(上面)用注释标明. template<class _RanIt, class _Diff, class _Pr> in

CI框架源码阅读笔记5 基准测试 BenchMark.php

上一篇博客(CI框架源码阅读笔记4 引导文件CodeIgniter.php)中,我们已经看到:CI中核心流程的核心功能都是由不同的组件来完成的.这些组件类似于一个一个单独的模块,不同的模块完成不同的功能,各模块之间可以相互调用,共同构成了CI的核心骨架. 从本篇开始,将进一步去分析各组件的实现细节,深入CI核心的黑盒内部(研究之后,其实就应该是白盒了,仅仅对于应用来说,它应该算是黑盒),从而更好的去认识.把握这个框架. 按照惯例,在开始之前,我们贴上CI中不完全的核心组件图: 由于BenchMa

CI框架源码阅读笔记2 一切的入口 index.php

上一节(CI框架源码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程,这里这次贴出流程图,以备参考: 作为CI框架的入口文件,源码阅读,自然由此开始.在源码阅读的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现. 1.       设置应用程序环境 define('ENVIRONMENT', 'development'); 这里的development可以是任何你喜欢的环境名称(比如dev,再如test),相对应的,你要在下面的switch case代码块中

Apache Storm源码阅读笔记

欢迎转载,转载请注明出处. 楔子 自从建了Spark交流的QQ群之后,热情加入的同学不少,大家不仅对Spark很热衷对于Storm也是充满好奇.大家都提到一个问题就是有关storm内部实现机理的资料比较少,理解起来非常费劲. 尽管自己也陆续对storm的源码走读发表了一些博文,当时写的时候比较匆忙,有时候衔接的不是太好,此番做了一些整理,主要是针对TridentTopology部分,修改过的内容采用pdf格式发布,方便打印. 文章中有些内容的理解得益于徐明明和fxjwind两位的指点,非常感谢.

CI框架源码阅读笔记4 引导文件CodeIgniter.php

到了这里,终于进入CI框架的核心了.既然是"引导"文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.com/usr/reg 经过引导文件,实际上会交给Application中的UsrController控制器的reg方法去处理. 这之中,CodeIgniter.php做了哪些工作?我们一步步来看. 1.    导入预定义常量.框架环境初始化 之前的一篇博客(CI框架源码阅读笔记2 一切的入

jdk源码阅读笔记之java集合框架(二)(ArrayList)

关于ArrayList的分析,会从且仅从其添加(add)与删除(remove)方法入手. ArrayList类定义: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco } span.s1 { color: #931a68 } public class ArrayList<E> extends AbstractList<E> implements List<E> ArrayList基本属性: /** *

dubbo源码阅读笔记--服务调用时序

上接dubbo源码阅读笔记--暴露服务时序,继续梳理服务调用时序,下图右面红线流程. 整理了调用时序图 分为3步,connect,decode,invoke. 连接 AllChannelHandler.connected(Channel) line: 38 HeartbeatHandler.connected(Channel) line: 47 MultiMessageHandler(AbstractChannelHandlerDelegate).connected(Channel) line: