zoukankan      html  css  js  c++  java
  • 数据库sql整体整理

    create database 数据库
    
    /*
    数据库的服务、数据库文件、
    */
    --修改表添加列
    create table biao
    (
    name varchar(50)
    )
    alter table biao add sex varchar(20) --往表里增加一列
    alter table biao drop column sex  --在表里删除一列
    select*from biao
    insert into biao values('王文姿','')
    insert into biao values('王啊沙发','')
    
    --下划线_代表一个字位符,在大范围中使用。。 模糊查询
    select *from biao where name like '王__'  --两个下划线 会显示'王文姿'
    select *from biao where name like '王___'  --三个下划线 会显示'王啊沙发'
    
    --聚合函数
    --count(*)  sum() avg() max() min()  一般是对某一列数字列进行操作
    
    --日期时间函数
    select DATEADD(DAY,5,'1999-08-31')--在原来的基础上加5天
    select DATEADD(week,5,'1999-08-31')--在原来的基础上加5周
    select DATEDIFF(WEEKDAY,'2015-04-23','2015-05-01') --两天之间相差几天(weekday),相差几周(week)
    print datename(weekday,'2015-4-23') --返回今天星期几--
    print datename(week,'2015-4-23') --返回这是今年的第多少个周
    print datepart(weekday,'2015-4-23') --返回这是今年的第多少个周 返回int类型的 datepart
    print getdate()--获取当前系统时间
    print isdate('1999-111-213')--判断一个值是否为正确的日期时间 1:正确 0:错误
    print sysdatetime() --获取更为详细的时间
    
    
    --截取字符串,以及类型转换
    select LEFT('abcdefg',2) --从左边开始截取,截取两位
    select right('abcdefg',2) --从右边开始截取,截取两位
    select  LOWER('abcD') --转换为小写
    select  upper('abcD') --转换为大写
    select  len('abcD')  --获取字符串的长度int类型
    select LTRIM('      dsfsd  ssdf   s                ') --去左空格
    select RTRIM('      dsfsd  ssdf   s                ') --去右空格
    select Substring('abccceecfddd',5,2) --索引从1开始,  截取字符串
    select REPLACE('遂非文过哦','','爱上放大')  --替换字符串
    select REPLICATE('啊沙发',10) --以指定的次数打印前面的内容
    print STR(123.456,5,1)  --将123.456转换为5位的字符串,小数点也占一位,最后保留1位小数
    select SPACE(100) --打印100个空格
    print 'asfaf'+'打发' --拼接
    print reverse ('abcde' ) --翻转
    print patindex('%啊的沙发%','123啊的沙发123') --显示'啊的沙发'在哪个位置
    print stuff('abcdefghijklmnopqrst',4,2,'zzzz') --在索引为4这个位置删除两个值然后插入ZZZZ
    
    
    --类型转换函数
    print cast('123'as int)+12  --类型转换
    print cast(123 as varchar(20))+'123'
    print convert(int,'123')+123
    
    
    --数学函数
    select ABS(-13) --取绝对值
    select ceiling(1.23) --取上限,天花板
    select FLOOR(1.9) --地板
    select PI()--取π
    select RAND(10) --取随机数,随机出一个种子出来 一定会随机出0~1之间的数
    select RouND(1.234567,3) --四舍五入到第3位
    print sqrt(2) --取平方根
    print square(4) --取平方
    select sname,'出生日期为'+cast(YEAR(sbirthday)as varchar(20))+''+cast(MONTH(Sbirthday)as varchar(20))+''+cast(DAY(Sbirthday)as varchar(20))+'' from student
    
    --子查询:
    --1.当放在where后作为筛选条件的,就是查询出一列数据当做参数来使用
    --2.若放在from后面,加括号的号,可以查询出一个结果集,当做一个临时表来使用
    --3.如果放在select和from中间的话,可以根据原来要显示的列数据,进行子查询查询出一个对应的值来改变显示结果。
    
    
    --连接查询
    
    
    横向连接:join on  
    inner 内连接:只把相关的连接
    left 左连接: 在内连接基础上把左表显示全
    right 右连接:  在内连接基础上把右表显示全
    
    纵向连接: union  
    1.列数要对应
    2.数据类型要对应
    
    
    
    --存储过程
    定义变量:declare @bianliang 数据类型
    变量赋值:set @bianliang=123
              select 语句赋值
    
    
    运算符:
    数学运算符: + - * / %
    比较运算符: > < >= <= != <> !> !<
    逻辑运算符:and or ! not
    
    
    
    流程语句:
    if else while 
    
    存储过程格式
    create proc 存储过程名
    --输入参数
    --输出参数
    as
         流程语句
    go
    
    exec 存储过程名
    
    
    
    ---视图:一个虚拟的表,实际视图中放的就是一个查询语句
    
    create view 视图名
    as
        查询语句
    go
    
    --触发器:是一个特殊的存储过程,他是通过增删改的动作来引发。
    create trigger 触发器名
    on
    instead of|after/for 动作  update/insert/delete
    as
        存储过程内容
    go
    
    
    --事务:为了让一个流程完整的执行
    begin tran
    if @@ERROR>0
    begin
    rollback tran
    end
    else
    commit tran
    
    --约束:
        主键
        外键
        唯一列
        check
        check(degree<=100and degree>=0)  --在定义表的时候写,紧跟在定义的degree后面
        not null
        identity(1,1) --自增长
        unique --唯一列
  • 相关阅读:
    Martin Fowler关于IOC和DI的文章(原版)
    父类引用指向子类对象详解
    求中位数总结
    二叉树的遍历方法
    MySQL知识小结
    栈和队列的基础算法学习(EPI)
    链表的基础题目学习(EPI)
    数组和字符串的基础题目学习(EPI)
    基本类型算法题目学习(EPI)
    被C语言操作符优先级坑了
  • 原文地址:https://www.cnblogs.com/lk-kk/p/4468140.html
Copyright © 2011-2022 走看看