zoukankan      html  css  js  c++  java
  • Net学习日记_SQL_2

    数据库文件:分数据文件(MDF)和日志文件(log)

    nvarchar 中文---n,可变长度---var,字符---char

    性别:如果考虑“男,女”,那么就用bit类型;之外的用smallin类型

    分离数据库:将当前数据库文件和数据库引擎的关系断开,没有任何关系了,这样我就可以随意的拷贝,剪切

    在数据库文件上右键-任务-分离,-勾选“删除连接”,-确定

    脱机:告诉数据库引擎,暂停操作当前数据库,知道你重新“联机”, 也可以随意拷贝,剪切

    附加:把已经分离的数据库文件,重新让数据库引擎管理,重新把管理关系建立上

    主外键:

    作用:就是减少重复数据

    如何手动设定主外键?

    在数据库里面,在外键上点击右键,可以添加主外键约束。

    创建数据库

    create database MySchool
    on
    (
    --括号一定是圆括号
    name='MySchool_data',--数据库名称
    filename='d:MySchool_data.mdf',--物理文件名
    size=5mb,--初始大小,
    maxsize=10mb,--最大大小
    filegrowth=15% --主文件增长率
    )
    log on
    (
    name='MySchool_log',--日志文件名
    filename='d:MySchool_log.ldf',--日志物理文件名
    maxsize=4mb,--最大大小
    size=2mb,
    filegrowth=1mb
    )
    go

    创建数据表

    CREATE TABLE Student
    (
    id int identity(1,1) primary key,
    NAME NVARCHAR(16) NOT NULL,
    age INT NOT NULL
    )

     删除数据

    DELETE FROM Student
    删除所有数据
    TRUNCATE TABLE Student
    清空表,重置表(把表重置会刚刚创建时候的状态,自增列,重新从1开始了)
    以上两者效率有很大差别,如果用delete会产生很多的日志,truncate 就只会产生一行日志
    DROP TABLE Student
    直接删除表,不仅仅是数据,连表都不见了

    增删改查

    1.增加语句

    INSERT INTO dbo.Student
    (name,gender,Address,Phone,Age,Birthday,CardId,CId) 
    VALUES
    ('王五',1,'北京海淀,中关村','13888888888',20,'2012/01/01','111111',2)
    1. 增加的时候。Bit字段要用 “0,1”表示true和false
    2. 时间字段用单引号包括,但是里面还是要遵循基本的时间格式'2012-01-01'
    3. INSERT 语句中列的数目要和 VALUES 后面的值的数目一样
    4. 不能为标识列插入数据(特殊情况下可以,SET IDENTITY_INSERT)

            5.直接拖拽“列”就可以快速的插入列名

    INSERT INTO dbo.Student (Name,Gender,Phone)
    VALUES
    (N'钱七①②βδΟουÇÄãÏíスヌフ叁叁',0,10000)

    在插入特殊字符的时候,字符串前面需要加上大写的N

    INSERT INTO dbo.Student
    VALUES
    ('小明',default,N'地址',default,20,'2010-10-10','100000',2)

    在插入数据的时候,可以显示的告诉数据库使用该字段的默认值

    INSERT INTO dbo.Student
    VALUES
    ('''',DEFAULT,N'地址',default,20,'2010-10-10','100000',2)

    插入的数据中有单引号的时候,需要输入两个单引号 “''”

     

    修改语句

    UPDATE dbo.Student SET Age=25
    修改了student表中所有行的age值
    UPDATE dbo.Student SET Age=18 WHERE Name='陈珊'
    修改了student表中name是陈珊的age值
    UPDATE dbo.Student SET Age=19,gender=0 WHERE id=1 
    修改了student表中name是陈珊的age值和gender值
    UPDATE dbo.Student SET Phone='10010' WHERE Name='钱七' AND Gender=0
    Where后面可以有多个条件判断,多个条件中间用“空格and空格”隔开
    UPDATE dbo.Student SET Address='a' WHERE Name='王五' AND Gender=1 OR Name='王五6'
    --3
    UPDATE dbo.Student SET Address='c' WHERE Name='王五' OR Gender=1 AND Name='王五6'
    --4
    在数据库执行的时候,and条件是优先于or条件执行的
    UPDATE dbo.Student SET age=age+1
    UPDATE dbo.Student SET age+=1 --2005 不支持

      Set值的时候,可以取出原来的值

    UPDATE dbo.Student SET Address = '未知' WHERE Address = NULL--这个是不行滴
    UPDATE dbo.Student SET Address = '未知' WHERE Address IS NULL
    UPDATE dbo.Student SET Address='北京' WHERE Address IS NOT NULL
    NULL 值的特殊判断
    UPDATE dbo.Student SET address = '男儿国' WHERE Gender!=0
    不等于“!=

    写法:update 表名 set 列名=值 , 列名=值  where 条件 条件中间用and和or连接 and优先于or执行

     

  • 相关阅读:
    【BZOJ3261】— 最大异或和(可持久化0/1Trie)
    【ZJOI2007】—捉迷藏(动态点分治)
    【HNOI2010】-城市建设(动态最小生成树)
    【BOI2007】Mokia 摩基亚
    【BZOJ 3262】-陌上花开(CDQ分治+树状数组)
    Win64 驱动内核编程-24.64位驱动里内嵌汇编
    Win64 驱动内核编程-23.Ring0 InLineHook 和UnHook
    Win64 驱动内核编程-23.Ring0 InLineHook 和UnHook
    Win64 驱动内核编程-22.SHADOW SSDT HOOK(宋孖健)
    Win64 驱动内核编程-22.SHADOW SSDT HOOK(宋孖健)
  • 原文地址:https://www.cnblogs.com/lisong-home/p/7726020.html
Copyright © 2011-2022 走看看