zoukankan      html  css  js  c++  java
  • 夜黑风高的夜晚用SQL语句做了一些想做的事·······

         IT这条漫漫长路注定是孤独的,陪伴我们的只有那些不知冷暖的代码语句和被手指敲打的磨掉了键上的标识的键盘。

    之所以可以继续坚持下去,是因为心中有一份永不熄灭的激情。 成功的路上让我们为自己带盐~~~~

     

        想知道SQL语句的强大功能就先让我给你讲讲什么是SQL吧

    SQL简介:

           SQL能做什么?    

           专业人士说:在进行数据管理时,如果每次创建数据库,表或者从数据库中读取数据,都需要手动在SQL Server

    Management  Studio  中进行的话,不但管理不方便,而且存储在数据库中的数据也根本无法提供给程序使用。所以

    数据库也需要一套指令集,能够识别指令丶执行相应的操作并为程序提供数据,目前标准的指令集就是SQL语言。

          SQL语言:

           专业人士说:SQL语言是针对数据库而言的一门语言,它可以创建数据库,数据表,可以针对数据库的数据进行增丶删

    丶改丶查等操作,可以创建视图丶储存过程,可以赋予用户权限等

          SQ语言主要由以下几部分组成。

    (1)DML(Data Manipulation Language,数据操作语言,也称为数据操纵语言)用来插入丶修改丶和删除数据库中的

    数据,如 INSERT 丶 UPDATE 及DELETE等。

    (2)DDL(Data Definition Language,数据定义语言):用来建立数据库丶数据库对象和定义其列,大部分是以CREATE

    开头的命令,如CREATE TABLE丶 CREATE VIEW 及 DROP TABLE等。

    (3)DQL(Data Control Language,数据查询语言):用来对数据库中的数据进行查询,如SELECT等。

    (4)DCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可。存取权限等,如GRANT丶REVOKE等。

     

            SQL算术运算符:

    T-SQL中的算术运算符
    运算符                                             说                明
           + 加运算,求两个数或表达式相加的和
            - 减运算,求两个数或表达式相减的差
            * 乘运算,求两个数或表达式相乘的积
            / 除运算,求两个数或表达式相除的商
           % 取余运算,求两个数或表达式相除的余数

            SQL算术比较运算符:

           运       算     符                                                                  说              明
          =             等于,例如:age=23
          >             大于,例如:price>100
          <             小于
          <>             不等于
          >=             大于等于
          <=             小于等于
          !=             不等于(非SQL-92标准)

              SQL逻辑运算符:

     

    运算符                                          说     明

    AND                           当且仅当两个布尔表达式都为TRUE时,返回TRUE

    OR                              当且仅当两个布尔表达式都为FALSE时,返回FALSE

    NOT                            对布尔表达式的值取反,优先级别最高

    :

    SQL有一个赋值运算符,即“=”把一个数或变量或表达式赋值给另一个变量:如:Name:'王华'

     

    01.SQL语句书写规范

      1,.SQL Sever中,SQL语句不区分大小写 ,SQL编译器都识别

      2,对表进行操作的时候,一定要使先用use关键字切换到对应的数据库

      3.自增列可以不赋值

    02.新增数据注意事项

      01.如果新增全部列,那么表名后可以不跟列名,但是要提供所有列的值,除非当前

      列有默认值,那么也要给出default关键字。

      02.如果只想给一张表中添加部分列,那么在表名后要跟上列名,并且需要保证除了你给出

      的列的值之外,其他列都允许为空。

      insert into goodPerson(stuName,stuAge) values('李大大',20)

    03. 一次性向一张表中插入多条数据的解决方案

    方案一:insert into 目标表

     select  * from 原表

     注意事项:如果目标中有自增列,那么不能使用*号。

     

     

     方案二:select *  into 目标表(不存在)

      from 原表

      该方式只保留了数据和子自增列,但是主键等约束就都没有了。

      

      方案三:insert into 目标表(存在)

      select 'S1294班'

      union

      select 'S1295班'

    04.几个注意点 

     1.以后大家见到update语句,一定要跟where条件,打死也要跟。

     2.SQL Servernull代表不知道,所以如果where后的限定条件不能用=null做对比,必须使用is null

    05.deletetruncate区别?

       解析:01.delete 后可以跟where条件,而truncate不行

             02.delete删除数据的时候会记录日志,而truncate不会

     03.delete删除表中所有数据库,id编号不会从1开始,而truncate会。

     

     

     --01.如果要进行数据表中数据的查询,那么必须先定位到该表所在的数据库

    use Myschool  --切换数据库

    select StuId, StuName, StuAge, GradeId from Student

    --我只想要年龄小于岁的学员信息

    select * from Student  where StuAge<=22 

    --新增数据

    insert into GoodPerson values

    ('差点是美男',26,'中国某地区','未知','愿世界和平,没有战争,没有灾难')

    select * from goodperson

     

    insert into goodperson(stuName,stuAge,stuAddress,stuLike,stuWishes) values('周星星',18,default,'岁月是一把杀猪刀','不要做咸鱼')

     

    insert into goodPerson(stuName,stuAge) values('王思春',20)

    delete from goodperson

    where StuId=31

     

    select * from goodPerson2

     

     

    -- 一次性向一张表中写入多条数据方案一

    insert into goodPerson2 

    select  StuName, stuAge, stuAddress, stuLike, stuWishes from goodPerson

    delete from goodperson2

     

    --方案二

    select * into goodpersonbak

    from goodperson

     

    --方案三:

    select * from grade

     

    insert into grade

      select 'S1294'

      union

      select 'S1295'

      

     

    --更新S1294班位于"精英班"

    update grade set gradename='精英班'

    where gradename='S1294'

     

    了解到这里我想应该可以使用SQL语句干一些想干的事情了吧嘿嘿(略有不足的地方还请多多指教,如果能帮助到各位请别忘了点个赞哟~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)

     

  • 相关阅读:
    LightOJ 1300 边双联通分量+交错路染色
    HDU 6143 快速幂,组合数
    windows 下fc工具
    HDU 6136 模拟
    HDU 6129 暴力,规律
    UVA Live 7770 模拟
    1096: [ZJOI2007]仓库建设
    1191: [HNOI2006]超级英雄Hero
    3224: Tyvj 1728 普通平衡树
    1208: [HNOI2004]宠物收养所
  • 原文地址:https://www.cnblogs.com/System-out-println/p/4936985.html
Copyright © 2011-2022 走看看