zoukankan      html  css  js  c++  java
  • SQLServer基本操作

    --创建数据库

     1 use master;--使用数据库
     2 --创建数据库
     3 create database test1
     4 on
     5 (
     6     name='test1',--数据库名字
     7     filename='D:\DataBase\test1.mdf',--数据库存储路径
     8     size=10mb,--大小
     9     filegrowth=10mb--增量
    10 )
    11 log on
    12 (
    13     name='test1_log',--日志文件名字
    14     filename='D:\DataBase\test1_log.ldf', --日志文件路径
    15     size=5mb,--大小
    16     filegrowth=2mb--增量
    17 );

    --删除数据库

    drop database test1;

    --创建表

    use test1
    create table tblPerson
    (
        id int,
        stuName nvarchar(10),
        stuSex bit,
        stuAge int
    )

    --插入一条记录

    inser into tblPerson(id,stuName,stuSex,stuAge) values(1,N'测试数据','true',30);

    --简单查询

    select id, stuName, stuSex, stuAge from tblPerson;
    select id, stuName from tblPerson;
    select * from tblPerson;

    --删除记录

    delete from tblPerson;
    delete from tblPerson where stuName='测试数据'; 

    --修改数据

    update tblPerson set stuName = '牛牛';
    update tblPerson set stuName = '洋洋' where id=1;

    ------添加约束

    --添加主键

    alter table tblPerson
    add constraint PK_tblPerson_id primary key(id);--命名规范- 约束键_表名_约束的字段

    --添加唯一键

    alter table tblPerson
    add constraint UQ_tblPerson_stuName unique(stuName);

     --检查约束

    alter table tblPerson
    add constraint CK_tblPerson_stuSex
    check(stuSex='' or stuSex='');

    --默认约束

    alter table tblPerson
    add constaint DF_tblPerson_inputtime
    default(getdate()) for inputtime;

    --添加约束的快捷方式

    alter table 表名
    add
        constraint 约束名1 约束表达式1,
        constraint 约束名2 约束表达式2,
        constraint 约束名3 约束表达式3,
        constraint 约束名4 约束表达式4,

    create table tblPerson
    (
      id int not null
        constraint PK_tblPerson_id primary key,
      stuName nvarchar(10)
        constraint UQ_tblPerson_stuName unique,
      stuSex nchar(1)
        constraint CK_tblPerson_stuSex check(stuSex='' or stuSex=''),
      inputtime datetime
        constraint DF_tblPerson_inputtime default(getdate())
    );

    --创建主外键

    create table tblScore
    (
            scoreId int identity(1,1) primary key,
            stuId  int not null,
            scoreNum int
    )

    --在外键表中进行修改

    alter table tblScore
    add constaint Fk_tblScore_stuId
    foreign key(stuId) references tblStudent(stuId);

     --表连接

      交叉联接:将第一张表的每一条记录依次与第二张表的每一条记录进行组合,得到一张新表

    tbl1
    -------------
    1 小牛 1
    2 小虎 2
    3 小波 NULL
    -------------
    tbl2
    --------
    1 老师
    2 学生
    --------

    交叉联接后得到数据
    ------------------------
    1 小牛 1 1 老师
    1 小牛 1 2 学生
    2 小虎 2 1 老师
    2 小虎 2 2 学生
    3 小波 NULL 1 老师
    3 小波 NULL 2 学生
    ------------------------

    1 select  t1.*,
    2         t2.*
    3 from    表1 as t1,
    4         cross join
    5         表2 as t2  
    6         

     内连接:交叉连接后数据有大部分是无用的,需要对其进行一个筛选,可以将内连接理解为在交叉连接的基础之上进行一个筛选

    -> 将上表结果显示为
    ------------------------
    1 小牛 1 1 老师
    2 小虎 2 2 学生
    ------------------------
    -> 语法

    1 select * 
    2 from
    3 表1 as t1
    4 inner join
    5 表2 as t2
    6 on t1.字段 = t2.字段;

    左外连接:

    select * 
    from
         左表 as t1
         left join
         右表 as t2
         on t1.字段 = t2.字段;

    --分页:

    使用top 分页

    select top 10 * from student where id not in(select top(@pageIndex-1)*10 Id from student)

    使用ROW_NUMBER(),between and分页.

    select * form(select row_number() over(order by id) as num ,* from student )as t1 where t1.num between (pageIndex-1)*10 +1 and pageIndex*10

    --公用表表达式:将复杂的派生表写在中间from子句中变得十分臃肿,给为维护等操作带来麻烦,将这个派生表要是能提前到前面,给一个别名,后面查询的时候直接使用别名即可

    语法:

    with 表的别名
            as
            (
                结果集
            )
            select * from 别名   -- 将结果集(派生表)用一个别名取代了,使用的时候可以模块化

    --视图:一个存在数据库中的虚拟表,视图相当于一个存储在数据库中的一个查询步骤

    语法:

    定义语法:
                create view vw_视图名
                as
                    结果集;

    --内联表值函数:就可以看做是带有参数的试图

    语法:

    create function fn_函数名
    (@参数名 as 类型名, @参数名 as 类型名, ...) returns table
     as
       return
                    结果集
    将不朽的青春献给伟大的编程事业,世界将因我们而改变!
  • 相关阅读:
    《Django By Example》第十二章(终章) 中文 翻译 (个人学习,渣翻)
    《Django By Example》第十一章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第十章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第九章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第八章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第五章 中文 翻译 (个人学习,渣翻)
    我的superui开源后台bootstrap开发框架
    LayoutInflater 总结
    Android屏幕分辨率概念(dp、dip、dpi、sp、px)
    android studio安装问题
  • 原文地址:https://www.cnblogs.com/luoyefeiwu/p/3565763.html
Copyright © 2011-2022 走看看