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. kafka知识点详解

    第一部分:kafka概述 一.定义(消息引擎系统) 一句话概括kafka的核心功能就是:高性能的消息发送与高性能的消息消费. kafka刚推出的时候是以消息引擎的身份出现的,它具有强大的消息传输效率和 ...

  2. 20175226 2018-2019-2 《Java程序设计》第四周学习总结

    20175226 2018-2019-2 <Java程序设计>第四周学习总结 教材学习内容总结 子类与父类 格式class 子类名 extends 父类名 Object类是所有类的祖先类 ...

  3. Navicat for MySQL 连接Mysql8.0 报 1251

    先设置Mysql全局 cmd下输入: mysql -uroot -p root密码 use mysql; update user set host = "%" where user ...

  4. tp框架设置404页面

    无法加载模板跳向404页面 /thinkphp/library/think/Dispatcher.class.php中176行     // 加载模块的扩展配置文件             load_ ...

  5. Spark缓存策略

    当对同一个rdd多次执行action时,如果在磁盘上则每次执行action都会从磁盘将数据加载,如果将其缓存到内存中会提高再次action的读取速度,Spark缓存主要有cache()和persist ...

  6. E - Andrew and Taxi-二分答案-topo判环

    E - Andrew and Taxi 思路 :min max   明显二分答案,二分需要破坏的那些边的中机器人数量最多的那个. check 过程建边时直接忽略掉小于 mid 的边,这样去检验有无环存 ...

  7. Orleans框架简单示范

    希望现在学习Orleans不会晚,毕竟Server Fabric都开源了.本篇博客从Sample的HelloWorld示例程序来解读Orleans的Grains. Server配置参考 : https ...

  8. python 爬虫与数据可视化--数据提取与存储

    一.爬虫的定义.爬虫的分类(通用爬虫.聚焦爬虫).爬虫应用场景.爬虫工作原理(最后会发一个完整爬虫代码) 二.http.https的介绍.url的形式.请求方法.响应状态码 url的形式: 请求头: ...

  9. .Net简单工厂模式,工厂模式,抽象工厂模式实例

    1.定义   简单工厂模式:是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现. 工厂模式:定义一个用于创建对象的接口, ...

  10. WPF: 共享Grid宽度或高度的方法

    需要两个属性: 1. Grid.IsSharedSizeScope="True" 2. SharedSizeGroup=名称 <StackPanel Margin=" ...