夜黑风高的夜晚用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 Server中null代表不知道,所以如果where后的限定条件不能用=和null做对比,必须使用is null

05.delete和truncate区别?

   解析: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语句干一些想干的事情了吧嘿嘿(略有不足的地方还请多多指教,如果能帮助到各位请别忘了点个赞哟~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)

 

时间: 2024-10-21 17:10:51

夜黑风高的夜晚用SQL语句做了一些想做的事·······的相关文章

尽量别做自己不想做的事

愈来愈不懂得客气是怎么一回事儿. 为了礼貌,有时向人说:"有空去饮茶." 这一说不得了了,天天闲着,却又没时间,有空时想想:"值不值得去?" 最后,还是勉强去应酬,深觉没意思. 所以,"有空去饮茶"这句话,少说了.如果没有心的话,说来干什么?自己找辛苦. 吃完饭大家抢着付账,要付就让人家去付好了,已经学会接受这种方式. 最糟糕的是,想请客,先把信用卡交上柜台,但对方坚持要付,把你的卡退回给你.应付这种情形,唯有让他们去结账,再买一份重礼他日送上.

C#捕获windows关机事件,在系统关机前做一些自己想做的事

C#捕获windows关机事件,在系统关机前做一些自己想做的事: 有些时候我们可能想在Windows关机时记录或处理一些事情,这里提供几种方法. 方法一: /// <summary> /// 窗口过程的回调函数 /// </summary> /// <param name="m"></param> protected override void WndProc(ref Message m) { switch (m.Msg) { //此消息

SQL语句 &amp; 查询表结构

[group by] 对结果集进行分组,常与汇总函数一起使用. SELECT column,SUM(column) FROM table GROUP BY column HAVING 通常与 GROUP BY 子句同时使用.不使用 GROUP BY 时, HAVING 则与 WHERE 子句功能相似. Company                          Amount W3Schools                         5500 IBM                

Oracle执行SQL语句的过程

转载至:http://blog.csdn.net/aqszhuaihuai/article/details/7024551 当我们提交一条sql语句时,Oracle会做哪些操作呢? Oracle会为每个用户进程分配一个服务器进程:service process(实际情况应该区分专用服务器和共享服务器),当service process接收到用户进程提交的sql语句时,服务器进程会对sql语句进行语法和词法分析. 名词解释: 语法分析:语句本身正确性. 词法分析:对照数据字典中检查表,索引,视图和

SQL语句教程

SQL指令 SELECT DISTINCT WHERE AND OR IN BETWEEN LIKE ORDER BY 函数 COUNT GROUP BY HAVING ALIAS 表格链接 外部链接 CONCATENATE SUBSTRING TRIM 表格处理 CREATE TABLE CONSTRAINT NOT NULL UNIQUE CHECK 主键 外来键 CREATE VIEW CREATE INDEX ALTER TABLE DROP TABLE TRUNCATE TABLE I

SQL语句查询表结构

SQL语句查询表结构 刚刚在做一个小项目,数据库中一张表有20来个字段,用我以前做的一个.NET实体类生成器一个一个的输入还是闲麻烦,于是打算找个时间来重新的改造一个那个.NET实体类,能够通过选择的数据库及用户表自动生成实体类,而且该实体类还有注释,即字段的说明字段,然后再加一个功能,生成数据库文档,其实也就是把字段字,类型,字段说明输出一个漂亮的表格而已,只要能获取出来生成HTML表格就比较容易了,上网找了一下,得到如下有用的SQL语句: -- 查询非系统数据库 Select name FR

ORACLE中能否找到未提交事务的SQL语句

  在Oracle数据库中,我们能否找到未提交事务(uncommit transactin)的SQL语句或其他相关信息呢?  关于这个问题,我们先来看看实验测试吧.实践出真知. 首先,我们在会话1(SID=63)中构造一个未提交的事务,如下所: SQL> create table test   2  as   3  select * from dba_objects;   Table created. SQL> select userenv('sid') from dual;   USEREN

使用参数化SQL语句进行模糊查找(转载)

使用参数化SQL语句进行模糊查找 今天想用参数化SQL语句进行模糊查找,一开始的使用方法不正确,摸索了好一会. 1.使用参数化SQL语句进行模糊查找的正确方法: //定义sql语句 string sql = "SELECT StudentID,StudentNO,StudentName FROM Student WHERE StudentName like @StudentName"; //给参数赋值 command.Parameters.AddWithValue("@Stu

使用ODP.NET一次执行多句SQL语句

在实际开发的时候有的时候希望一次执行多句SQL语句,又不想使用Transcation的话,可以直接将多句SQL语句拼接起来.例如: var sql = "Begin " + "Update tabUser Set UserName = :UserName Where UserId = :UserId; " + "Update tabUser Set UserPassword = :UserPassword Where UserId = :UserId An