SQL_Server_Day01_连接数据库及数据库定义语言

来源:互联网 发布:健康网络的宣传语 编辑:程序博客网 时间:2024/04/29 23:01
SQL Server数据库

基本结构
    基础篇
        SQL Server基本概念与T-SQL基础
        ADO.NET: C#与ADO.NET
    提高篇
        较复杂的T-SQL
    
1.    连接数据库
    实例的概念    开启sa(super administrator)用户
    
    windows身份认证:    要求必须是本机用户
    SQL Server身份认证:可以远程登陆此计算机的数据库(这种情况更常见,
        一般数据库单独安装在一台服务器上,且此服务器只做此用途)
    
    添加新用户  用户权限
    
    数据库中有一个复杂的内容--角色和权限分配
    
    创建用户数据库
    .mdf     --master data file
    .ldf     --log data file
    
    创建架构(架构只属于数据库文件)
    表应该放在架构的下面
    
    创建表
    
    添加数据
    
    数据库文件的分离与附加
    
2.    数据库中的概念
    数据库里常用的数据类型
    1)数字类型        int  bigint  float  decimal(精度,小数位数)  money
    2)时间类型        datetime 'yyyy-MM-dd hh:mm:ss:sss'
    3)bool类型        bit
    4)二进制类型    image 不常有 因为我们不会把图片或者声音存放到数据库里面
    5)字符串类型    char(n)  nchar(n)  varchar(n)  nvarchar(n)
                    不带n     --Ascii编码
                    带n        --Unicode编码 支持中文
                    存身份证号  用varchar      15位或18位
                    存手机号    用char        11位固定
    
3.    SQL语句
    数据库定义语言        
    数据库操作语言
    数据库管理语言(基本上用不到)
    
    1)use        切换数据库上下文        use tempdb;  
    
    2)句结束要加分号;SQL语句忽略大小写,推荐关键字用大写
    
    3)注释
    /*
        跨行注释
    */

    -- 行注释
    
    4)    使用select + 表达式或一个值,可以显示这个值得结果 -- 表的形式
        使用print + 表达式或一个值,可以显示这个值得结果 -- 消息的形式
    
    5)    数字直接书写
        字符串使用单引号括起来
        
        数据库中时间类型比较特殊,以字符串的形式进行书写,
        但是只有在赋值时间类型的变量的时候或向数据表中插入数据的时候才会
        表现出时间类型  select CAST('2014-5-9' as datetime);
        
        bool类型也是这样,表达方法有两种,可以表示成1或0,
        或者表示成 'true' 或 'false'
        
4.    数据库定义语言
    go 并不是sql语句,而是标志将上面这段代码一起执行掉
    
    创建数据库
    
    创建架构
    
    创建表
        一般创建表的时候,都会多创建几个列名
        --id列名            主键
        --isDel列名            是否删除(防止误删)  超过一定时间的数据才可以删除掉        
        --inputTime列名        用来标记数据加入的时间
        
        表名的引用使用全路径  数据库名.架构名.表名
        
5.    数据库操作语言
    []表示名字的界定符号
    --如果我的成员是关键字,我想创建一个名叫table的表
    
    字符串如果是中文 前面加一个N 表示是unicode编码
    
    增删改查
    
6.    约束--保证数据完整性的一种操作机制(可以使用鼠标点击 和 SQL语句来添加约束)
    数据完整性,表示的是数据的准确性和有效性
    
    主键约束    默认添加聚集索引
    
    唯一约束    UQ...    默认添加非聚集索引
    
    默认约束    字段有默认值
    
    非空约束    isNULL
    在SQL Server中,凡是进行null的判断,都用is
    update table1 set age = 30 where age is null;
                
    检查约束    gender只能是'm' 'f'  age只能是0~150
    
    
    外键约束
    主外键 要两两的看
    1)主键表中删除数据必须保证外键表中没有该数据的引用
    2)外键表中添加数据,如果引用了主键数据,必须保证主键表中含有该数据
    
    级联查询 级联删除--删除一张表的内容,实际上需要两张表的内容
    
    一般不设置主外键关系
    业务逻辑复杂,可能需要数据取消冗余,强调数据之间的关联
    
    
    
    索引-- 高级内容 数据库中凡是唯一的,就可以做为索引
    类似于字典
    拼音检索--聚集索引(存取有顺序--拼音检索的顺序和字典的排列顺序是一致的)  只能有一种
    部首检索--非聚集索引    可以有多种
    如果你完全没有检索,那么你只能一页一页的翻
    
    
7.    用代码添加约束(属于数据库定义语言)
    
    ALTER table testSchema.books
    ADD
    constraint [PK_testSchema.books_id]
    primary key (id)                     --主键约束
    default(getDate()) for inputTime    --默认约束
    unique(name)                        --唯一约束
    check(age>=0 and age<150)             --检查约束
    
    
    如何用代码实现主键自动增长/非空约束?
    方法是删除这个字段,然后再添加一个名字一样的字段
    
    
    
    
    
   
0 0
原创粉丝点击