Sql 是一种结构化的查询语言;
Sql是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理‘关系型数据库’系统;
Sql对大小写不敏感;
Sql不是数据库,是行业标准,是结构化的查询语言

Int
Char(30)—字段中只能接受30个英文字母或15个中文
Varchar(30)

1)经常变化的字段用varchar;
2)知道固定长度的用char;
3)尽量用varchar;
4)超过255字节的只能用varchar;

数值:int类型(整数类型);
所有字符串都要用单引号;

Sql语句:
1、 create database database_name; --创建数据库
2、 use database_name; --引用数据库
3、 create table table_name(列名1 数据类型,,
  列名2 数据类型,…..
  列名n 数据类型); --创建表
4、 select * from 表名; --查看表内所有列的信息
  select 列名1,列名2 from 表名;
  select语句用于从表中选取数据。
5、 约束:not null
  Unique 唯一约束 --没有冗余数据
  Primary key –必须包含唯一的值,主键列不能包含null值
6、 drop table table_name; --删除表
7、 insert into 表名 values(值1,值2…); --值与列必须要一一对应
  insert into 表名 (列1,列2…)values (值1,值2…);
8、AS --为列名和表名别名
  Select 列名 as 新列名 from 表名;--列名别名
9、 where --条件语句
  select 列名 from表名 where列 (运算符)=‘值’;
10、单行注释 --
  多行注释 /*….*/
11、修改数据结构
  1)alter table 表名 alter column 列名 数据类型; --修改数据结构(修改列的属性)
  例:alter table 表名 alter column country varchar(250);
  alter table 表名 alter column country varchar(250) null;
  2)alter table 表名 add constraint 约束名 unique(列的约束);
  Alter table 表名 drop constraint 约束名;
  3)alter table 表名 add column 列名 数据类型;
  4)alter table 表名 drop column 列名;
12、数据的修改、更新
  Update 表名 set 列名=新值where 列名=某值;
13、 1)between…and…
  Select 列名from表名 where 列名 between 值1 and 值2;
  Select 列名from表名 where 列名 between ‘字符串1’ and ‘字符串2’;
  2)Not between…and…
14、 1)like --模糊查询
  仅和where搭配使用,通配符“%”仅和like连接使用
  Select 列名 from 表名 where 列名 like ‘n%’/ ’%n%’ / ’%n’
  2)Not like
15、 and or
  1)and和or运算符用于基于一个以上条件对记录进行过滤;
  2)and 和or 可在where子语句中把两个或多个条件结合在一起;
  3)若两个条件都成立,则and运算符显示一条记录;
  4)如果两个条件只要有一个成立,则or运算符显示一条记录;
  5)and 和or在sql语句中的位置不分先后顺序,查询结果皆一致;
  6)执行规则:先计算and运算符在计算or运算符;
16、in

  1)在一个集合里面,用()包含,查询的列放在括号里,用逗号隔开
  2)字符串类型加单引号;-- 允许在where子句中规定多个值
  3)不能跟匹配符连用;
  Select 列名 from表名where列名 in(值1,值2,….);
17、distinct --只支持单列
  Select distinct(列名)from 表名;
18、order by --排序 多个条件时,先满足第一列的条件
  1)用于根据指定的列对结果集进行排序
  2)默认升序对记录进行排序—asc
  3)降序—desc
  4)字母,数字都可以随意进行升降排序
  5)允许多个列的排序,但是排序优先级由左到右
19、top --规定要返回的记录的数目
  1)top 6 –前6
  2)top 6 desc –倒数6位
  3)top 50 percent --前半部分
  4)top50 percent desc—后半部分
20、delete --删除数据(删除表中的某行或所有行)
  --只能删除整行的数据,无法删除指定单元格数据。
  Delete from 表名 where 列名=值;
21、identity --自增长
  例:id int identity
  Id int identity(1000,1)
22、check约束
  --用于限制列中的值的范围
  Create table 表名 (姓名 VARCHAR (100) ,
  年龄 INT CHECK ( 年龄 >= 18 AND 年龄 <= 30 ), -- 这里不能用OR
  性别 CHAR(4) CHECK (性别 = '男' OR 性别 = '女') -- 这里不能用AND
  );
23、default 约束 --用于向列中插入默认值
  如果不再为具有default约束的列额外进行值输入的话,则自动填入默认值;反之,则填入所输入的值;
  例:CREATE TABLE INSERT_DEFAULT_EXAM_DATE
  (
  Id INT PRIMARY KEY IDENTITY ,
  姓名 VARCHAR(100) NOT NULL ,
  考试时间 DATE DEFAULT '2018-05-20'
  );
24、check和default约束的区别
  1)check约束强制只能对含此约束的列输入约束的值;
  2)default 约束比较自由,如果输入了值,则生效;如果(允许)不输入值,则使用设定的默认值并将其插入表中的列。
25、null --必须使用is null和 is not null
  1)select * from 表名 where 列名 is null;(列名为空时,查看信息)
  2) select * from 表名 where 列名 is not null;(列名不为空时,查看信息)
26、用于计算和计算的内建函数
  1)sum
  2)Avg --返回数值列的平均值/null值不包括在计算中
  Select avg(列名)from 表名;
  例:SELECT 姓名 FROM 软件测试考试分数表_重制版
  WHERE QTP得分 > (SELECT AVG(QTP得分) FROM 软件测试考试分数表_重制版);

27、isnull --用于规定如何处理NULL值
  例:select 姓名,(测试理论得分+isnull(sql得分,0)+QTP得分+Selenium得分)as 各科考试总分 from 表名 where 列名=值;
28、1)max()--返回一列中的最大值
  Select max(列名)from 表名;
  例:select max(QTP得分)as QTP最高得分 from 表 where 班级=‘一班’;
  2)Min()--返回一列中的最小值
  Select min(列名)from 表名;
  例:select name from 表 where SQL得分= (select min(SQL得分)from 表);
  3)Sum() --返回数值列的总数 只针对于数字类型进行求和
  Select sum(列名) from 表名;
  4)Avg()
  注:max和min也可用于文本列,以获得按字母顺序排列的最高或最低值。
29、count --计数 返回匹配指定条件的行数
  1)Select count(*)from 表名;--返回表中的记录数
  例1:select count(*) from 表; --查询表中所有记录
  2)Select count(列名)from 表名; --返回指定列的值的数目
  例2:select count(name) as 一班的学生数from 表 where 班级=‘一班’;
  -- 对指定列进行计数
  3)select count (distinct 列名)from 表名; --返回指定列的不同值的数目
  例3: select count(distinct 班级)from 表;--显示不重复的记录
  唯一键—distinct
30、len –长度 --返回文本字段中值的长度 length
  Select len(列名) from 表名;
  例1:select len(考点)as 考点的长度 from 表 where name =‘张三’;
31、无关联性多表查询
  1)select * from (SELECT 姓名, QTP得分 FROM 软件测试考试分数表_重制版
  WHERE QTP得分 > (SELECT AVG(QTP得分) FROM 软件测试考试分数表_重制版)) AS 临时表1,
  (SELECT AVG(QTP得分) AS QTP考试平均分 FROM 软件测试考试分数表_重制版) AS 临时表2;
  2)SELECT 临时表1.姓名, 临时表1.QTP得分, 临时表2.QTP考试平均分 FROM
  (SELECT 姓名, QTP得分 FROM 软件测试考试分数表_重制版
  WHERE QTP得分 > (SELECT AVG(QTP得分) FROM 软件测试考试分数表_重制版)) AS 临时表1,
  (SELECT AVG(QTP得分) AS QTP考试平均分 FROM 软件测试考试分数表_重制版) AS 临时表2;
  例1:--查询学生姓名和qtp得分,并将qtp平均分显示出来
  Select * from (select name,QTP得分 from 表名 where QTP得分 >(select avg(QTP得分) as 平均分 from表)) as table1,(select avg(QTP得分)as 平均分 from表) as   table2;
32、1)foreign Key (约束)references --可添加多个外键约束
  --一个表中的foreign key指向另一个表中的primary key。
  --外键只能连接你想连的那张表的主键(一般id为主键)
  例:CREATE TABLE 班级表
  (Class_Id INT PRIMARY KEY,
  班级 VARCHAR(10) NOT NULL
  );
  CREATE TABLE 学生表
  (Student_Id INT PRIMARY KEY,
  姓名 VARCHAR(10),
  Student_Class_Id INT FOREIGN KEY REFERENCES 班级表(Class_Id)
  );
  2)增加单个外键约束
  例1:alter table 学生表 add foreign key (student_class_id)references 班级表(class_id);
  3)增加多个约束
  例2:alter table 学生表 add constraint 约束名 foreign key(student-class_id) references 班级表(class_id);
  4)撤销约束
  例3:alter table 学生表 drop constraint 约束名;
  例4:select * from 班级表,学生表 where 班级表.class_id=学生表.student_class_id;
33、group by
  --合计函数(例sum,max,min,len)常常需要添加group by语句
  1)单个列进行分组
  Select 列名,合计函数(列名)from 表名 where…group by 列名;
  例:select 商场专柜,sum(销售价格) as 情人节当天的香水总销售额
  From 表名 where 销售时间=‘2018-02-14’group by 商场专柜 order by 情人节当天的香水总销售额 desc;
  2)多个列进行分组
  例: select 销售时间,商场专柜,sum(销售价格)as 专柜当天的香水总销售额 from 表
  Group by 销售时间,商场专柜
  Order by 销售时间 desc,商场专柜 asc;

34、1)group by ….having…
  例1:select 商场专柜,sum(销售价格) as 总销售额 from 表
  Group by 商场专柜 having sum(销售价格)>600 order by 总销售额 desc;
  例2:select 商场专柜,销售时间,sum(销售价格) as 销售总额 from 表
  Group by 商场专柜,销售时间 having sum(销售价格)>500 order by 销售总额 desc;
  2)where也可以在group by 中使用
  例1:Select 商场专柜,sum(销售价格) from 表 where 销售时间=‘ 2018-02-14’ group by 商场专柜 having 销售价格>500
  Order by sum(销售价格)desc;
  例2:select top 1 香水编号_外键,count(香水编号_外键)from 表 where 销售时间=‘2018-02-14’ group by香水编号_外键 order by count(香水编号_外键)desc;
  例3:select 商场专柜,销售时间,count(香水编号_外键) as 香水销量 where 销售时间 in(‘2018-02-14’,‘2018-03-14’) and len(香水编号_外键)<=4 from 表 Group by   销售时间 order by count(香水编号_外键) desc;
35、连接
  1)内连接—(inner )join --通过主键和外键进行连接
  --表之间有匹配数据(主键和外键的匹配)就查询到,没有匹配数据就查询不到,找出两表中关联相等的行。
  select * from 表1 inner join 表2 on 表1.A=表2.A;
  例1:select 商场专柜,销售时间,所属品牌,香水名称,销售价格 from 香水信息表 inner join 商场专柜销售情况表 on 香水信息表.香水编号_外键=商场专柜销售情况表.香水  编  号_外键 order by 商场专柜 asc,销售时间 desc;
  2)左连接 --left join
  --从左表那里返回所有的行,即使在右表中没有匹配的行
  Select 列名 from 表1 left join 表2 on 表1.A =表2.A and 其他条件;
  例:select * from香水信息表 left join商场专柜销售情况表 on 香水信息表.香水编号_外键=商场专柜销售情况表.香水编号_外键 (显示香水信息表所有记录)
  3)右连接 --right join
  --右表返回所有行,即使在左表中没有匹配的行
  Select 列名 from表1 right join 表2 on 表1.A=表2.A.
  例:select * from香水信息表 right join商场专柜销售情况表 on 香水信息表.香水编号_外键=商场专柜销售情况表.香水编号_外键 (显示商场专柜销售情况表所有记录)

SQL SERVER 基本操作语句的更多相关文章

  1. 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?

    如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括:如何 ...

  2. SQL Server分页语句ROW_NUMBER,读取第4页数据,每页10条

    SQL Server分页语句ROW_NUMBER,读取第4页数据,每页10条 SELECT Id,[Title],[Content],[Image] FROM ( SELECT ROW_NUMBER( ...

  3. SQL Server UPDATE语句的用法详解

    SQL Server UPDATE语句用于更新数据,下面就为您详细介绍SQL Server UPDATE语句语法方面的知识,希望可以让您对SQL Server UPDATE语句有更多的了解. 现实应用 ...

  4. SQL Server中语句的自动参数化

    原文:SQL Server中语句的自动参数化 use master go if exists(select * from sys.databases where name = 'test') drop ...

  5. SQL Server基本操作积累

    一.基本操作 1.将数据绑定到DataGridVirw控件上显示的数据列标题将会是数据库中的字段名称,可以在使用select语句时使用AS关键字将转化为列名的别名 select name AS 姓名 ...

  6. SQL server 常用语句

    SQL Server中常用的SQL语句   1.概述 2.查询概述 3.单表查询 4.连接查询 5.带有exists的相关子查询 6.SQL的集合操作 7.插入操作 8.删除操作 9.修改操作 10. ...

  7. sql server 基础语句

    创建数据库 创建之前判断该数据库是否存在 if exists (select * from sysdatabases where name='databaseName') drop database ...

  8. SQL Server Merge语句的使用

    Merge关键字在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句.MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插 ...

  9. SQL Server 脚本语句

    一.语法结构 select select_list [ into new_table ] from table_source [ where search_condition ] [ group by ...

随机推荐

  1. Django-ORM多表操作(进阶)

    一.创建模型 下面我们通过图书管理系统,来设计出每张表之间的对应关系. 通过上图关系,来定义一下我们的模型类. from django.db import models class Book(mode ...

  2. git生成ssh key步骤并添加到github网站

    0: 查看是否已经有了ssh密钥 执行命令:cd ~/.ssh 如果没有密钥则不会有此文件夹,有则备份删除 1:使用 Git Bash生成新的ssh key ssh-keygen -t rsa -C  ...

  3. Codeforces 840D Expected diameter of a tree 分块思想

    Expected diameter of a tree 我们先两次dfs计算出每个点能到达最远点的距离. 暴力计算两棵树x, y连边直径的期望很好求, 我们假设SZ(x) < SZ(y) 我们枚 ...

  4. Excel—单元格引用

    EXCEL的引用有3种:相对引用.绝对引用.混合引用 相对引用.绝对引用比较简单,就是要么拖拽后变,要么拖拽后不变 混合引用有点难度,凡是需要向右拖拽再向下拖拽的记住一定是混合引用 要将拖拽后依然不变 ...

  5. Hadoop开启后jps显示只有jps

    之前在用Mapreduce写代码时,在DFS Location下的会报一个error,大体的意思就是与主机名相关的错误 然后我就觉得可能时Hadoop开启时出了错误,然后我就重启了Hadoop,jps ...

  6. Mybatis 通用 Mapper 和 Spring 集成

    依赖 正常情况下,在原有依赖基础上增加的 mapper-spring. <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spr ...

  7. XV Open Cup named after E.V. Pankratiev. GP of Three Capitals

    A. Add and Reverse 要么全部都选择$+1$,要么加出高$16$位后翻转位序然后再补充低$16$位. #include<stdio.h> #include<iostr ...

  8. 一分钟掌握位运算符—与(&)、非(~)、或(|)、异或(^)

    第一个版本:   位运算符的计算主要用在二进制中. 实际开发中也经常会遇到需要用到这些运算符的时候,同时这些运算符也被作为基础的面试笔试题. 所以了解这些运算符对程序员来说是十分必要的. 于此,记录下 ...

  9. ORACLE11g 重装系统后根据dbf恢复数据库

    1.安装一个和原系统一致的oracle 环境,主要包括版本.数据名sid.实例名.路径和数据库编码一致 2.修改listener.ora的参数 SID_LIST_LISTENER = (SID_LIS ...

  10. Angularjs判断页面是否已经渲染结束(动态给标签长度)

    相信大家都会碰到这样的问题.页面循环li.但是因为个数不知道.没有办法给li设置固定宽度.那么这时就需要动态计算数据长度并动态改变li的宽度 <!--周边信息--> <div cla ...