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

    单行注释:--

    一、对数据库的操作

    建立数据库

          1)默认建立

              create database 数据库名字

          2)自定义建立

             create database 数据库名字

             on(               --数据文件

                    name='Student',   --逻辑名字

                    filename='E:Student.mdf';   --路径+逻辑名字.mdf

                    size=3MB,            --初始大小

                    maxsize=50MB,         --最大值

                    filegrowth=10%           --增长方式

             )

               log on       --日志文件

             (

                     name='Student_log',   --逻辑名字

                    filename='E:Student_log.ldf';   --路径+逻辑名字.mdf

                    size=3MB,            --初始大小

                    maxsize=50MB,         --最大值

                    filegrowth=10%           --增长方式

               )

    修改数据库

             同上,只不过把create改为alter

    修改数据库名字

            execute sp_renamedb 原数据库名,新数据库名

    删除数据库

             drop database 数据库名

    选择当前数据库

             use 数据库名

    二、对数据库表结构操作

              

    建立数据库表

            create table 表名

                 (

                    列名  类型  是否为空  是否添加约束,

                    列名2  类型 是否为空 是否添加约束,

                     ……

                 )

    修改数据库表名

            execute sp_rename 原表名,新表名

    删除数据库表

            drop table 表名

    增加一个列

             alter table 表名 add 列名 类型 是否为空……

    删除一个列

             alter table 表名 drop column 列名

    修改列属性

             alter table 表名 alter column 列名 类型 是否为空……

    添加主键

            alter table 表名 add constraint 主键名字 primary key(列名)     --可以设置二个列为主键(列名,列名1)

            添加主键也可以在建表的时候添加 是否为空(not null)后面添加  constraint 主键名 primary key(列名)

    删除主键

            alter table 表名 drop constraint 主键名

    添加外键

           alter table 表名 add constraint 外键名 foreign key 列名 references 主表(列名)

    删除外键

           alter table 表名 drop constraint 外键名

    添加唯一约束

           alter table 表名 add constraint 唯一约束名 unique(列名)

    删除唯一约束

            alter table 表名 drop constraint 唯一约束名

    添加默认值约束

             alter table 表名 add constraint 默认值约束名 default 默认值 for 列名

    删除默认值约束

                alter table 表名 drop constraint 默认值约束名

    添加范围约束

               alter table 表名 add constraint 范围约束名 check(范围表达式)

    删除范围约束

              alter table 表名 drop constraint 范围约束名

    添加自增

            建表的时候在后面添加 identity(初值,增值) 值得类型必须为int

    三、对数据库表数据的操作

    插入数据

          insert into 表名(列名1,列名2,……) values(int类型,'字符类型',……)            --类型与列要一一对应

          如果插入数据的表中有默认值可以直接忽略

    删除数据

          delete from 表名 where 列名='值'          --如果后面不加条件则表示删除表中的所有数据

    修改数据

           update 表名 set 列名='更改的值' where 列名='值'

    查询数据

            select * from 表名        --查询表中的所有数据

    四、条件查询数据

    替换查询结果(查询出来的数据显示自己想要的结果)

            select 姓名=name,性别=

              case

                   when sex=1 then '帅哥'

                   when sex=0 then '美女'

              end

             from 表名

             这里显示的列名将不是表中的列名,而是姓名和性别二个列,当满足 when 后面的条件 列名=值 的时候显示替换 then后面的内容

    去掉重复的行

             select distinct 列名,*from 表名       --根据具体的某一个列来去掉重复的行

    查询前多少行

              select top 1 *from 表名           --查询第一行的所有数据 

    查询前百分之多少行

            select top 10 percent * from 表名    --查询前百分之10的所有数据            

    区间查询(包括二边的值)

            select * from 表名 where 列名 between 1.70 adn 1.80     --查询 1.70~1.80

    or查询(或者)

             select * from 表名 where 列名=条件 or 列名1=条件1   --满足一个条件即可

    in查询(满足in里面的一个值即可)

            select * from 表名 where 列名 in(值1值2,值3,……)

             

    排序查询

             select * from 表名 order by 列名 ASC/DESC      --ASC默认升序(从小到大)  DESC  降序(从大到小)

    分组查询

            ……group by 列名 

    五、视图

            create view 视图名字 [列名1,列名2,列名3,……] as 查询语句      

    六、索引

            聚集索引(clustered index)

                create clustered index 索引名 on 表名(列名)

            非聚集索引(nonclustered index)
                create nonclustered index 索引名 on 表名(列名)

            聚集唯一索引
                create unique clustered index 索引名 on 表名(列名)

    七、事务

           开始(begin transaction)

            定义变量 declare 

             begin     --开始

               执行语句

            if(条件)        --判断

            执行(commit ransaction)

             else

            回滚(rollback ransaction)

             end       --结束

    八、自定义函数

              创建:

           create function  名字

           (@a int)         --调用函数时传过来的值

           returns int     --返回值得类型

           as

           begin

           declare @b int      --定义一个变量

           set @b=@a*2      --给变量b赋值

            return @b         --返回值b

           end

             调用:

           select dbo.名字(12)              

    九、存储过程

            创建:

              create procedure 过程名

                @a int
               as
               begin
                       --内容
               end

             调用:

               execute 过程名 参数

    十、触发器

            触发器不需要调用

                create trigger 触发名

                on 表
                for 类型(insert,update,delete) --插入数据的表 inserted 删除数据的表 deleted
                as
                begin
                declare @变量名 类型
                 set 赋值                   
                            --内容
                end

  • 相关阅读:
    华为云亮相QCon2020深圳站,带你体会大厂的云原生玩法与秘诀
    没有它你的DevOps是玩不转的,你信不?
    开发实践丨用小熊派STM32开发板模拟自动售货机
    【基于C#的ASP.NET】错误篇1——用户系统+管理员系统CS1061: “ASP.manage_aspx”不包含“SqlDataSource1_Selecting”的定义
    阿里云高级技术专家白常明:边缘云的技术挑战和应用创新
    T级内存,创建效率提升10倍以上,阿里云 KVM异构虚拟机启动时间优化实践
    终极清单来了!阿里云双11爆款揭晓
    2020阿里云双110.73折起,爆款提前抢大促全攻略
    直面最大挑战双11 阿里数据中台为商家带来确定性保障
    OpenYurt 深度解读:如何构建 Kubernetes 原生云边高效协同网络?
  • 原文地址:https://www.cnblogs.com/ZSK991656110/p/4940063.html
Copyright © 2011-2022 走看看