金沙棋牌app手机下载

当前位置:金沙棋牌 > 金沙棋牌app手机下载 > SQL学习记录,我们曾经心碎的数据库之

SQL学习记录,我们曾经心碎的数据库之

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-11-29 12:42
  1. T-sql是对SQL(structure query language )的升级。可以加函数。
  2. 系统数据库:master管理数据库。model模版数据库,msdb备份等操作需要用到的数据库,tempdb临时数据库。
  3. 用户数据库:用户自己创建。实际上用户创建数据库就是想master这个数据库下面去注册一条信息。
  4. ctrl+alt+delete可以在windows身份认证登录时切换用户。
  5. 建立登录名 use master create login ** password='**'—>创建用户名 use 数据库名 create user ** for login **—>赋予权限 grant select,insert,..。revoke回收。一般都是按角色来赋予权限(数据库权限和服务器权限)
  6. EXEC sp_detach_db @dbname=**分离数据库 。EXEC sp_attach_db @dbname=**,@filename1=**附加数据库
  7. 差异备份的恢复要先在完整备份恢复的前提下才能恢复,而且恢复完整备份时要注意设置选项。
  8. GO代表把上面的代码一起提交服务器执行。
  9. 删除表:先删除子表—>再删除主表
  10. DECLARE @x int 申明x这个整型变量。优先级比较:<> > 算术运算符 > 比较运算符 > 逻辑运算符(not>and >or)> 连接运算符 > 赋值运算符
  11. 先向主表添加数据,再向子表添加数据,删除数据是先向子表删除,再删除主表。
  12. 插入整张表:(1)先建表,insert into 表名(列名) select  列名 from 旧表,(2)直接在插入时创建表,select 列名 into 表名 from 旧表
  13. delete删除可以加where ,删除后标识列不会重置。truncate删除是直接删除整个表,相当于没有where的delete,标识列会重置且占用资源会更少更快,但是不能恢复和还原。
  14. 导入和插入一样,如果表之间有关联,先导主表,后导子表。
  15. 批处理是只指将语句当作一个整体发送执行,以GO为结束标记。GO且要单独成行。在脚本中的事情有一件必选在另一件之前发生或分开发生的时候,就使用批处理。
  16. 字符串函数:charindex('zz','12xzzb',1)返回2:寻找一个指定的字符串在另一个字符串中的起始位置。 len():返回字符串的长度。upper():将字符串改成大写。ltrim()清除字符串左边的空格,rtrim():清除字符串右边的空格,right('ahsnb',3):snb从字符串右边返回3长度的字符,left()刚好相反。replace('天安门','天','地'):地安门:替换一个字符串中的字符。stuff('ASCX',2,1,'v'):AvCX,函数将字符串插入另一字符串。它在第一个字符串中从开始位置删除指定长度的字符;然后将第二个字符串插入第一个字符串的开始位置。
  17. 日期函数:getdate()获得当前时间, dateadd(mm,1,getdate())=当前月份加1.将表示日期或时间间隔的数值与日期中指定的日期部分相加后,得到新值。datediff(yy,'2015-12-1',getdate()):2015-12-1到现在过去了多少年,求两个日期之间的间隔,datename(datepart,date),返回表示指定 date 的指定 datepart 的字符串。datepart(datepert,date):返回一个表示日期的日期部分的整数。
  18. 数学函数和系统函数:rand(),返回0~1之间的随机float数。ceiling(par)返回大于或等于指定数值表达式的最小整数。floor()返回小于或等于指定数值表达式的最大整数。round(expection,length)返回舍入到指定长度或精度的数值表达式。length 参数的取值必须为整数。abs()取绝对值。convert(data_type[(length)],expression[,style]),将一种数据类型的表达式转换为另一种数据类型的表达式。相当于cast(expression as data_type[(length)] )
  19. exists子查询:子判断子查询是否有返回值,如果有就是真,则执行下面的语句,如果否则不执行

    if exists(子查询)          
    begin
    多条语句
    end
    

     

  20. ALL、ANY、SOME子查询:

    ALL:父查询的列的值必须大于子查询返回结果列表中的每一个值
    ANY:父查询的列的值必须至少大于子查返回结果列表中的一个值
    SOME和ANY是等效的。
    =ANY和IN是等效的   
    <>ANY父查询的列的值只要与子查询结果的一个值不相同。相当于or的意思,父查询中的值<>子查询的A或者<>子查询的B
    not in 相当于and的意思。父查询的<>子查询的A且<>子查询的B
    

     

CAST() 函数语法如下
CAST() (<expression> AS <data_ type>[ length ])
CONVERT() 函数语法如下
CONVERT() (<data_ type>[ length ], <expression> [, style]金沙棋牌app手机下载,)

                  第九章  数据查询基础

select cast(100+99 as char) convert(varchar(12), getdate())
运行结果如下

1.记录集:


 记录集是符合查询条件的记录组织在一起的类似于表结构的查询结果

199 Jan 15 2000

2.使用select语句进行查询

----日期函数----
DAY() --函数返回date_expression 中的日期值
MONTH() --函数返回date_expression 中的月份值
YEAR() --函数返回date_expression 中的年份值
DATEADD(<datepart> ,<number> ,<date>)
--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期

语法:

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

   select 列名

datepart 参数可以是下列的值:

   from 表名

datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns

   where 查询条件表达式

DATEDIFF(<datepart> ,<number> ,<date>)
--函数返回两个指定日期在datepart 方面的不同之处
DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分
DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分
GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间

   order by 排序的列名 【asc或desc】

----系统函数----
APP_NAME() --函数返回当前执行的应用程序的名称
COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值
COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值
COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名
DATALENGTH() --函数返回数据表达式的数据的实际长度
DB_ID(['database_name']) --函数返回数据库的编号
DB_NAME(database_id) --函数返回数据库的名称
HOST_ID() --函数返回服务器端计算机的名称
HOST_NAME() --函数返回服务器端计算机的名称
IDENTITY(<data_type>[, seed increment]) [AS column_name])
--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中
/*select identity(int, 1, 1) as column_name
into newtable
from oldtable*/
ISDATE() --函数判断所给定的表达式是否为合理日期
ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL
值用指定值替换
ISNUMERIC() --函数判断所给定的表达式是否为合理的数值
NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值
NULLIF(<expression1>, <expression2>)
--NULLIF 函数在expression1 与expression2 相等时返回NULL
值若不相等时则返回expression1 的值CAST() 函数语法如下
CAST() (<expression> AS <data_ type>[ length ])
CONVERT() 函数语法如下
CONVERT() (<data_ type>[ length ], <expression> [, style])

  1.查询所有的数据行和列

select cast(100+99 as char) convert(varchar(12), getdate())
运行结果如下

  select * from students


  2.查询部分行和列

199 Jan 15 2000

    select 列名  from 表名

----日期函数----
DAY() --函数返回date_expression 中的日期值
MONTH() --函数返回date_expression 中的月份值
YEAR() --函数返回date_expression 中的年份值
DATEADD(<datepart> ,<number> ,<date>)
--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期
DATEDIFF(<datepart> ,<number> ,<date>)
--函数返回两个指定日期在datepart 方面的不同之处
DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分
DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分
GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间

    where  查询条件表达式

----系统函数----
APP_NAME() --函数返回当前执行的应用程序的名称
COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值
COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值
COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名
DATALENGTH() --函数返回数据表达式的数据的实际长度
DB_ID(['database_name']) --函数返回数据库的编号
DB_NAME(database_id) --函数返回数据库的名称
HOST_ID() --函数返回服务器端计算机的名称
HOST_NAME() --函数返回服务器端计算机的名称
IDENTITY(<data_type>[, seed increment]) [AS column_name])
--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中
/*select identity(int, 1, 1) as column_name
into newtable
from oldtable*/
ISDATE() --函数判断所给定的表达式是否为合理日期
ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL
值用指定值替换
ISNUMERIC() --函数判断所给定的表达式是否为合理的数值
NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值
NULLIF(<expression1>, <expression2>)
--NULLIF 函数在expression1 与expression2 相等时返回NULL
值若不相等时则返回expression1 的值

 3.在查询中使用列的别名

select  scode as 学生编号,sname as 学生姓名  saddress as 学生地址
from  Students
where  saddress <>'北京'

4.查询空值

 采用 is null 或 is not null

select  sname
from  students
where semail  is null

5.在查询中使用常量列

select sname as 学生姓名,saddress as 地址,‘北京海淀区’ as 学校名称
from students

6.查询返回限制的行数

例: 查询成绩前三名的学生姓名

select top 3 stuno,sresult
from students
order by sresult

7.查询排序

使用 order by

8.在查询中使用函数

 (1)字符串函数

     charindex():用来寻找一个指定的字符串在另一个字符串中的其实位置

   

select  charindex('北京',‘北京好大,人好多’,1)

返回:1

   len():返回传递给它的字符串长度

select len('北京真的很好')

返回:6

  upper():把传递给他的字符串转换为大写

select upper('记住,nothing is perfect')

返回:记住,NOTHING IS PERFECT

  ltrim():清除字符左边的空格

 

select ltrim('                         你好吗?                说啊')

返回:你好吗?                说啊

rtrim():清除字符右边的空格

select  rtrim('明天   你好            ')
返回:明天   你好

right():从字符串右边返回指定书目的字符

select right(‘人生若只如初见’,3)

返回:如初见

replace():替换一个字符串中的字符

select replace('何事秋风悲画扇',‘秋’,‘冬’)

返回:何事冬风悲画扇

stuff():在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串

select stuff('我们都是好孩子',5,1,‘天真’)

返回:我们都是天真孩子

substring():截取固定长度的字符串

select substring('人生只不过是努力便都好吧',3,2)

返回:只不

(2)日期函数

getdate():取得当前的系统时间

select getdate()

返回:2015-11-04 19:27:26.680

dateadd():将指定的数值添加到指定的日期部分后的日期

select dateadd(yy,1,getdate())

返回:2016-11-04 19:30:20.000

datediff():两个日期之间的指定日期部分的间隔

select datediff(dd,'2014-10-12',getdate())

返回:388

datename():日期中指定日期部分的字符串形式

select datename(dw,getdate())

返回:星期三

datepart():日期中指定日期部分的整数形式

select datepart(mm,getdate())

返回:11

(3) 数学函数

 ceiling():向上取整  取大于或等于指定数值、表达式的最小整数

select ceiling(7.6)

返回:8

floor():向下取整  取小于或等于指定数值、表达式的最大整数

select floor(8.3)

返回:8

(4)系统函数

convert():用来转变数据类型

select convert(int,'123')

返回:123

 

本文由金沙棋牌发布于金沙棋牌app手机下载,转载请注明出处:SQL学习记录,我们曾经心碎的数据库之

关键词:

上一篇:没有了

下一篇:必须要知道的一些语法,触发器二