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执行

     

  • 相关阅读:
    基于xmpp openfire smack开发之Android客户端开发[3]
    简单工厂,抽象工厂,工厂模式三者的对照
    【独具慧眼 推荐有礼】找出您心中的技术大牛 活动開始啦!
    ZOJ 3201
    具体解释站点沙盒期的原因表现与解决的方法
    工作,究竟意味着什么
    MVC之查询demo
    学习开淘宝网店
    快排的两种写法
    QTableWidget具体解释(样式、右键菜单、表头塌陷、多选等) (非代理)
  • 原文地址:https://www.cnblogs.com/lisong-home/p/7726020.html
Copyright © 2011-2022 走看看