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

原文地址:https://www.cnblogs.com/ZSK991656110/p/4940063.html