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. 网络编程中select模型和poll模型学习(linux)

    一.概述 并发的网络编程中不管是阻塞式IO还是非阻塞式IO,都不能很好的解决同时处理多个socket的问题.操作系统提供了复用IO模型:select和poll,帮助我们解决了这个问题.这两个函数都能够 ...

  2. Hive SemanticException

    hive, sex='boy'); FAILED: SemanticException Line : Invalid path ''/root/data/hdata.txt'': No files m ...

  3. SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题

    目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积.导致查询性能降低. 如 ...

  4. String hashcode的兴趣试玩

    今天突然看到Hashcode和equals,==比较时,一时兴起,想了解一下hashcode生成规则,为什么hashcode相同,无法说明对象相等,但用equals说明相同,却可以推出对象的hashc ...

  5. vitualbox中的centos7与主机共享文件

    我在vitualbox中安装了一个centos7,最小安装.主机是win10操作系统.那么如何在虚拟机和主机之间进行文件共享呢,下面是本人实现过程,以及过程中遇到的一些问题. 1.在主机中选择一个文件 ...

  6. Beta(5/7)

    鐵鍋燉腯鱻 项目:小鱼记账 团队成员 项目燃尽图 冲刺情况描述 站立式会议照片 各成员情况 团队成员 学号 姓名 git地址 博客地址 031602240 许郁杨 (组长) https://githu ...

  7. HDU.4903.The only survival(组合 计数)

    题目链接 惊了 \(Description\) 给定\(n,k,L\),表示,有一张\(n\)个点的无向完全图,每条边的边权在\([1,L]\)之间.求有多少张无向完全图满足,\(1\)到\(n\)的 ...

  8. 2017-10-22—发光二极管

    LED与 LD的差别在工作原理上的差别:LED是利用注入有源区的载流子自发辐射复合发光,而LD是受激辐射复合发光.在结构上的差别:LD有光学谐振腔,使产生的光子在腔内振荡放大,LED没有谐振腔.性能上 ...

  9. Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案

    转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1      背景 系统中需要批量生成单据数据到数据库表,所以采用 ...

  10. ZooKeeper Getting Started Guide

    http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html What is ZooKeeper? ZooKeeper is a centra ...