sql server 的T-SQL 学习笔记(三)

-- ************  条件表达式  逻辑表达式***********************
-- CRUD 操作(DML)
-- create 操作 DEL
-- 表达式: 表达式是指运算符将同类型的数据(常量、变量、函数等)按照一定的规则连接起来,具有特定意义的语句。
    -- 条件表达式 1+1 > 2 (false)  -- 用了运算符
    -- 逻辑表达式 且 或 非   true and false (false)
    -- 这两种表达式只能返回true or false
      -- 常量 
      -- 变量 
      -- 字段名 (数据表列名)
      -- 函数(自定义函数或SQL server函数)
        -- 函数:完成特定功能的代码段 eg:getdate()
    -- 运算符 
      -- 一元运算符 (eg -1)
      -- 二元运算符 (eg 1+1)
      -- 条件运算符 (= > < >= <= <> != )
      -- 逻辑运算符 
        -- (and 连接两个表达式 eg: age=20 and country = 'chain')
        -- (or 或者 eg:check(sex='男' or sex='女'))
        -- (not 取反)

-- ******************* INSERT 语句([]中内容不填) *****************
  -- insert 语句常用来往数据库中插入数据,可以一行或多行数据
  -- insert [into] table_name (colum1 ...) values()
      -- 1、数字可以不加单引号,时间 字符串必须加单引号
      -- 2、自增长列不添加字符
      -- 3、表名后面字段顺序可以任意,但是values后面字段值必须和前面的字段保持一致
      -- 4、可以省略为空不需要的字段
      -- 5、当表名后面字段名省略时,values后面的字段值必须和表结构默认值相同(顺序)
      -- 6、有默认值的列,可以省略,省略后使用默认值,不省略时候使用默认值必须使用default关键字
     use studentSys
     insert into Classes (className) values ('JavaScript')
     -- 学生表中插入数据 Student
     insert into Student (stuName,stuBornDay,stuAddress,stuSex,classId) values ('陈聪','1996-03-21','湖北武汉江汉大学','男',1)
     insert into Student values ('张三','1994-06-06','女','江汉大学',2)
     insert into Student (stuName,stuBornDay,stuSex) values ('李四',GETDATE(),'男')
    -- 循环插入多行数据
     declare @i int
     set @i = 1
     while(@i < 100)
       begin
       set @i = 1+ @i
       insert into Student (stuName,stuBornDay,stuSex) values ('李四',GETDATE(),'男')
       print @i
       end
    -- 插入多行数据(备份)
    insert into Student (stuName,stuBornDay,stuAddress,stuSex,classId) 
      select '陈聪',GETDATE(),'湖北武汉','男',1
      union all select '张三',GETDATE(),'湖北武汉','女',2
      union all select '张三',GETDATE(),'湖北武汉','女',2

-- ******************* delete or truncate  删除数据 ********
  -- delete 删除数据 如果没有where子句,则将表中所有数据删除 否则删除where子句条件的数据
    -- 删除整个表中数据
      delete from Student
      select * from Student
    -- 使用where子句 删除条件中某一条数据
      delete from Student where stuId = 1
  -- truncate 删除数据
    -- 1、可以将表的主键自增重置
    -- 2、使用truncate 的表不能作为其他表的主表
    -- 3truncate 删除数据时效率比delete效率高
    -- 有外键引用时候 会出现这样错误:无法截断表 'Student',因为该表正由 FOREIGN KEY 约束引用。
    truncate table Classes
    select * from Classes

 -- ************* update 使用 **********
 select * from Student
 update Student set stuName = '李四' where stuName = '陈聪' 

 -- ************** 分离 附加 ***********************
 -- ************** 备份 还原 ***********************
 -- ************** 到处SQL语句(结构和数据) *********

你可能感兴趣的:(SQL-Server)