SqlServer 数据库的学习

SqlServer 数据库的学习

记录时间:2016年8月11日  上午10点

记录人:Mr.Liu

SQL知识点——数据库操作;数据库表操作;数据库表信息的增删改;数据库表信息的查;变量;SQL循环语句和条件语句

一、数据库操作

1.新建数据库

create database 数据库名
on
(
    name = mydata_mdf,
    filename = 'D:/data/mydata.mdf',
    size = 3mb,
    filegrowth = 1mb
)
log on
(
    name = mydata_ldf,
    filename = 'D:/data/mydata.ldf',
    size = 3mb,
    filegrowth = 1mb
)


2.数据库删除
drop datebase 数据库名

二、数据库表操作

1.新建数据库表

create table 表名
(
    字段1 类型(长度) 约束,
    字段2 类型(长度) 约束,
    字段3 类型(长度) 约束,
    ...
)


2.修改数据库表
增加列: alter table 数据库表名 add 字段 类型(长度) 约束
删除列: alter table 数据库表名 drop column 字段
添加约束: alter table 数据库表名 add 约束(字段)
删除约束: alter table 数据库表名 drop 约束(字段)


3.删除数据库表
drop table 数据库表名


4.数据库约束
     1. 主键约束 (primary key)一张表只能够有一个主键
    2. 外键约束 (foreign key  references )限定表格中某一列的取值必须是另外一种表中
                某一不重复列的数据,一般是另一张表的主键
    3. 非空约束 (not null)数据库表中该字段中必须填写参数
    4. 唯一约束 (unique)表中该字段中的参数不能重复出现
    5. 检测约束    (check)限定某个字段的表达式    age > 0 and age <100
    6. 默认约束 (default)如果不给取值就使用默认值否则使用提供的值

三、数据库表信息的增删改

1.增:

    单行: insert into table 数据库表名(字段1,字段2,...) values(参数1,参数2,...)
    多行: insert into table 数据库表名(字段1,字段2,...)
          select 参数1,参数2,... union
          select 参数1,参数2,... union
          select 参数1,参数2,...


2.改:
   
update 数据库表名 set 字段 = 参数 where 字段 = 参数 ( and 字段 = 参数)

    
3.删:
  
 delete from 数据库表名 where 字段 = 参数 ( and 字段 = 参数)

四、数据库表信息的查

    1.最简单的查询:

select * from 数据库表

                  
     2.函数查询----> 聚合函数
        1.平均值 AVG --select AVG(字段) as '平均成绩' from 数据库表
        2.最大值 MAX --select MAX(字段) as '成绩' from 数据库表
        3.最小值 MIN --select MIN(字段) as '年级' from 数据库表
        4.求和值 SUM --select SUM(字段) as '总成绩' from 数据库表
        5.统计项数值 COUNT --select COUNT(字段) as '行数' from 数据库表
        
     3.排序查询
      
 order by (asc--升序[默认,可以不用写])/(desc--降序)

        
    4.列不重复查询 -- distinct(关键字)
        语法:

select distinct 字段 from 数据库表

        
    5.TOP查询 -- 子句用于规定要返回的记录的数目
        语法:

SELECT TOP number|percent column_name(s) FROM table_name

            number --是返回记录的数目
            percent --是返回记录的百分比

            
    6.条件查询 -- where
         语法:

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

        操作符 = <> > < >= <=
        范围   between...and... not between...and... in () not in()
        逻辑   not or and
        
        模糊查询 like  %匹配一个或多个字符 _匹配一个字符
                 [charlist]字符列中的任何单一字符 [^/!charlist]字符列外的任何单一字符
       
SELECT * FROM Persons WHERE City LIKE '[ALN]%'

        代表: "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人
        
    7.连表查询
        "Persons" 表:
                Id_P    LastName    FirstName    Address      City
                  1         Adams         John     Oxford Street     London
                  2         Bush         George     Fifth Avenue     New York
                  3         Carter         Thomas     Changan Street     Beijing
        "Orders" 表:
                Id_O    OrderNo     Id_P
                  1        77895      3
                  2        44678      3
                  3        22456      1
                  4        24562      1
                  5        34764      65
                  
    a.内连接(inner join) --有相同的就一起显示出来 没有相同的就不显示
            语法:

SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name

        列出所有人的定购:
select p.FirstName, p.LastName, o.OrderNo from Persons p inner join on Orders o where p.Id_P = o.Id_P

        
    b.外连接(full join) --有相同的就一起显示,没有的直接显示为空(null)
            语法:

SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name

         列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人:
select p.FirstName, p.LastName o.OrderNo from Persons p full join on Orders o where p.Id_P = o.Id_P

        
    c.左连接(left join) --左边的全部显示,右边没有的显示为空(null)
            语法:

SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name

             列出所有的人,以及他们的定购 - 如果有的话:
select p.FirstName, p.LastName o.OrderNo from Persons p left join on Orders o where p.Id_P = o.Id_P


    d.右连接(right join) --右边的全部显示,左边没有的显示为空(null)
            语法:

SELECT column_name(s) FROM table_name1 RIFHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name

            列出所有的定单,以及定购它们的人 - 如果有的话:
select p.FirstName, p.LastName o.OrderNo from Persons p right join on Orders o where p.Id_P = o.Id_P

五、SQL变量

1.全局变量(由系统定义的变量)
    常见的全局变量:
    @@ERROR 最后一个T-SQL错误的错误号
    @@IDENTITY 最后一次插入的标识值
    @@LANGUAGE 当前使用的语言名称
    @@MAX_CONNECTIONS 可以创建的同时连接的最大数目
    @@SERVERNAME 本地服务器的名称
    @@VERSION SQL Server的版本信息

2.局部变量(自定义变量)
    a.声明局部变量语法:
      

 DECLARE @variable_name DataType --DECLARE @count int

        其中 variable_name为局部变量的名称,DataType为数据类型。
    b.给局部变量赋值有两种方法:
       
1、SET @variable_name=value    --set @count=123  
2、SELECT @variable_name=value --select @id=id from inserted

        两者的区别:SET赋值语句一般用于赋给变量一个指定的常量,
        SELECT赋值语句一般用于从表中查询出数据然后赋给变量。


六、SQL循环语句和条件语句

    while循环:
        while 条件
          begin
          执行操作
          set @i=@i+1
          end 

    示例:
        declare @i int
        set @i=1
        while @i<30
            begin
            insert into test (userid) values(@i)
            set @i=@i+1
            end

            
    if条件:
        declare @b int = 60;
            if(@b>=60)
            begin
                print '合格'
            end
            else
            begin
                print '不合格'
            end

            
    case when条件:
        Case具有两种格式。
        --简单Case函数
        CASE sex
        WHEN '1' THEN '男'
        WHEN '2' THEN '女'
        ELSE '其他' END
        --Case搜索函数
        CASE WHEN sex = '1' THEN '男'
        WHEN sex = '2' THEN '女'
        ELSE '其他' END


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值