SQL SERVER 基本操作语句

时间:2021-10-06 12:24:58

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查询语句&lpar;Select&rpar;中检索存储过程&lpar;Store Procedure&rpar;的结果集?

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

  2. SQL Server分页语句ROW&lowbar;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. If WCF Service side and Client side config is different&quest;&excl;

    from * http://*.com/questions/4879310/when-setting-up-a-wcf-client-and-serve ...

  2. &lbrack;原&rsqb;SQLite的学习系列之获取数据库版本二

    本系列文章主要是使用C++语言来调用其API,达到管中窥豹的目的.另外本文使用的开发环境为mac + clion,并且基于SQLite 3.7.14来进行开发. 一.去下载sqlite-amalgam ...

  3. &lbrack;Fiddler&rsqb;Unable to Generate Certificate

    I'm using Fiddler2 (or trying) to capture SSL traffic for a windows desktop gadget hitting an https ...

  4. Mongodb使用

    Mongodb基本的原则是:条件句是内层文档的键,修改器是外层文档的键[即,修改器要修改的字段声明在修改器内部].1.$size,用于查询数组大小为size的记录db.a.find({"co ...

  5. struct2&lpar;六&rpar; 为表单添加验证

    简介 为表单添加验证 添加校验的方法: 1. first name 不能为null 2. Email address 不能为null 3. age 必须大于18岁 为了在用户提交的时候,能够校验这个表 ...

  6. myeclipse10破解失败,正解

    此文图借用他人的,很是经典 第一步:输入任意用户名 第二步:点击Systemid... 按钮,自动生成本机器的systemid.ps:确定本机的systemid,如果和破解器生成不一致,需要copy本 ...

  7. 《Android插件化开发指南》面世

    本书在京东购买地址:https://item.jd.com/31178047689.html 本书Q群:389329264 (一)这是一本什么书 如果只把本书当作纯粹介绍Android插件化技术的书籍 ...

  8. WordCount

    一.Gitee地址:https://gitee.com/zjgss99/WordCount 二.项目分析: 对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格式输出到默认文件中,以及其他扩 ...

  9. Spring Cloud、Spring Boot与Docker 学习资料汇总

    使用Spring Cloud与Docker实战微服务https://gitee.com/itmuch/spring-cloud-bookhttps://eacdy.gitbooks.io/spring ...

  10. latex 安装和使用

    1:下载 texlivewindows 版  http://tug.org/texlive/acquire-netinstall.html 2:双击exe文件进行安装,安装时选择 将路径添加到环境变量 ...