点击蓝色字关注“SQL数据库运维”,回复“SQL”获取2TB学习资源!
日常利用数据库软件处理数据时,不外乎增、删、改、查操作,现整理部分常用的操作,记得收藏备用!
准备构建测试表,测试环境SQL Server 2014
--新建表测试表--测试表StudentsCREATE TABLE Students (CXM VARCHAR (20),CXB VARCHAR (20),DCSNY DATETIME)--测试表StudentsCREATE TABLE Students_01 (CXM VARCHAR (20),CXB VARCHAR (20),DCSNY DATETIME)--添加一列武力值ALTER TABLE Students ADD CWLZ INT--添加一列地址ALTER TABLE Students ADD ADDRESS VARCHAR(100)--添加一列ID号ALTER TABLE Students ADD ID INT--更新新添加列的数据UPDATE Students SET CWLZ=100 WHERE CXM='路飞'UPDATE Students SET CWLZ=90 WHERE CXM='索隆'UPDATE Students SET CWLZ=88 WHERE CXM='山治'UPDATE Students SET CWLZ=20 WHERE CXM='乔巴'UPDATE Students SET ADDRESS='北京' WHERE CXM='乔巴'UPDATE Students SET ADDRESS='上海' WHERE CXM='路飞'UPDATE Students SET ADDRESS='广州' WHERE CXM='索隆'UPDATE Students SET ADDRESS='深圳' WHERE CXM='山治'UPDATE Students SET ID=1 WHERE CXM='乔巴'UPDATE Students SET ID=2 WHERE CXM='路飞'UPDATE Students SET ID=3 WHERE CXM='索隆'UPDATE Students SET ID=4 WHERE CXM='山治'insert into Students (CXM,CXB,DCSNY,CWLZ,ADDRESS,ID) values ('娜美','女','2001/6/15',60,'郑州',5)

1.1【插入单行】
--插入单行语法insert [into] <表名> (列名) values (列值)--举例insert into Students (CXM,CXB,DCSNY) values ('张三','男','2000/6/15')
1.2【将现有表数据添加到一个已有表】
--语法insert into <已有的新表> (列名) select <原表列名> from <原表名>--举例insert into Students_01(CXM,CXB,DCSNY)select CXM,CXB,DCSNY from Students
1.3【直接拿现有表数据创建一个新表并填充】
--语法select <新建表列名> into <新建表名> from <源表名>--举例select CXM,CXB,DCSNY into Students_xb from Students
1.4【使用union关键字合并数据进行插入多行】
--语法insert <表名> <列名> select <列值> union select <列值>--举例insert Students (CXM,CXB,DCSNY)select '路飞','男','1980/6/15'union --(union表示下一行)select '索隆','男','1995/05/29'


2.1【删除<满足条件的>行】
--语法delete from <表名> [where <删除条件>]--举例:(删除表Students中列值为张三的行)--注意:删除某行数据时,千万不要忘记加where条件delete from Students where CXM='张三'
2.2【删除整个表】
--语法truncate table <表名>--举例truncate table Students_01
注意:truncate用于删除数据表的所有行,但表的结构、列、约束、索引等不会被删除;不能用于有外建约束引用的表。


3.1【更改某行某列的某个值】
--语法update <表名> set <列名=更新值> [where <更新条件>]--举例update Students set CXB='女' where CXM='路飞'

04

4.1 精确(条件)查询
--语法select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列名>[asc或desc]]
4.1.1【查询所有数据行和列】
--举例:查询Students表中所有行和列select * from Students
4.1.2【查询部分行列--条件查询】
--举例:查询表Students中 cxm='索隆'的所有行,并显示cxb,dcsny 2列select cxb,dcsny from Students where cxm='索隆'
4.1.3【在查询中使用AS更改列名】
--举例:查询Students表中性别为男的所有行,显示cxm列,并将name列改名为(姓名)显示select cxm as 姓名 from Students where cxb='男'
4.1.4【查询空行】
--举例:查询表Students中cxb为空的所有行,并显示cxm列;SQL语句中用is null或者is not null来判断是否为空行select cxm from Students where cxb is null
4.1.5【在查询中使用常量】
--举例:查询表Students,显示cxm列,并添加动漫剧名,其列值都为'海贼王'select cxm, '海贼王' as 动漫剧名 from Students
4.1.6【查询返回限制行数(关键字:top percent)】
--举例1:查询表Students,显示列cxm的前3行,top为关键字select top 3 cxm from Students--举例2:查询表Students,显示列name的50%,percent为关键字select top 50 percent cxm from Students
4.1.7【查询排序(关键字:order by , asc , desc)】
--举例:查询Students表中CWLZ大于等于60的所有行,并按CWLZ降序显示CXM,CWLZ列;默认为asc升序select CXM,CWLZ from Students where CWLZ>=60 order by CWLZ desc

4.2 模糊查询
4.2.1【使用like进行模糊查询】
--举例:查询显示表Students中,cxm字段第一个字为山的记录select * from Students where cxm like '山%'
注意:like运算符只用于字符串,所以仅与char和varchar数据类型联合使用
4.2.2【使用between在某个范围内进行查询】
--举例:查询显示表Students中CWLZ在60到100之间的记录select * from Students where CWLZ between 60 and 100
注意:between...and查询结果是包含边界值的
4.2.3【使用in在列举值内进行查询】
--举例:查询表Students中address值为北京或者上海或者唐山的记录,显示cxm字段select cxm from Students where address in ('北京','上海','广州')

4.3 分组查询
4.3.1【使用group by进行分组查询】
--举例:在表Students中查询,按ID字段分组,显示ID字段和CWLZ字段的平均值;select语句中只允许被分组的列和为每个分组返回的一个值的表达式,例如用一个列名作为参数的聚合函数select ID as 学号,AVG(CWLZ) as 平均武力值from Studentsgroup by ID
4.3.2【使用having子句进行分组筛选】
--举例:接上面例子,显示分组后count(CWLZ)>0的行,由于where只能在没有分组时使用,分组后只能使用having来限制条件。select ID as 学号,AVG(CWLZ) as 平均武力值from Studentsgroup by IDhaving count(CWLZ)>0

4.4 多表联接查询
4.4.1内联接
4.4.1.1【在where子句中指定联接条件】
--举例:查询表Students和表Students_01中cxm字段相等的记录,并显示表Students中的CXM字段和表Students_01中的cxb字段select Students.CXM,Students_01.cxbfrom Students,Students_01where Students.CXM=Students_01.CXM
4.4.1.2【在from子句中使用join…on】
--举例:同上select Students.CXM,Students_01.cxbfrom Students inner join Students_01on (Students.CXM=Students_01.CXM)
4.4.2外联接
4.4.2.1【左外联接查询】
--举例:在Students表和Students_01表中查询满足on条件的行,条件为Students_01表的CXM与strdents表中的CXM相同select s.CXM,c.DCSNY,c.CXBfrom Students as sleft outer join Students_01 as con s.CXM=c.CXM
4.4.2.2【右外联接查询】
--举例:在Students表和Students_01表中查询满足on条件的行,条件为Students_01表的CXM与strdents表中的CXM相同select s.CXM,c.DCSNY,c.CXBfrom Students as sright outer join Students_01 as con s.CXM=c.CXM

点击关注“SQL数据库运维”,后台或浏览至公众号文章底部点击“发消息”回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。
动动小手点击加关注呦☟☟☟





