数据库总复习

SQL总复习:
1、启动数据库:启动服务-打开软件-选择身份验证(sql身份验证)-服务器名称(./127.0.0.1/localhost)-用户名和密码。
2、master主要数据库;model模型/模板数据库;msdb警报和日志数据库;tempdb临时数据库。
3、创建数据库:其实就是在电脑本地创建数据文件.mdf和日志文件.ldf。
    create database 数据库名;
4、创建数据表:
    create table 数据表名(字段名1 字段1类型,字段名2 字段2类型...)
5、脱机:数据库暂时和软件脱离关系,但是数据库还存在软件里面,只是暂时无法在软件里面操作数据库。
6、联机:恢复被脱机的数据库和软件的关系。
7、分离:数据库彻底和软件脱离关系,但是数据库还存在电脑本地。
8、附加:把数据库通过数据文件导入到软件里面。
9、sqlserver不区分大小写,但是官方推荐大写
10、行注释:--;块注释:/*被注释的内容*/
11、六大约束:
    主键约束primary key(pk):该字段的数据不能重复,且不能为null;每张表可以没有主键,如果有的话只能有一个主键,但是一个主键可以由多个字段组成。
    非空约束is not null:该字段的数据不能为null。
          检查约束check:通过表达式约束字段的数据。
         唯一约束unique:该字段的数据不能重复,但是可以为null,一个表内可以有多个唯一约束。
                  默认值约束default:给字段设置默认值,性别默认为男。
        外键约束foreign key(FK):通过一个表内的字段来限制另外一个表内的某个字段的数据。涉及2个表:主表(主键)和从表(外键)。
12、标识列(必须是int类型):实现字段的自动增长,不能手动维护。标识种子(增长的初始值)和标识增量(每次增长的量)。
13、数据类型:
    int整型;
    varchar(字节数)字符类型(非固定长度);8000
    char字符类型(固定长度);
    text长文本;
    float浮点型;
    datetime日期类型;
    bit布尔类型;
    money货币;
14、增加:
    增加单条数据:insert into 表名(字段1,字段2,字段3)
                        values(值1,值2,值3)
    增加多条数据:insert into 表名(字段1,字段2,字段3)
                    select 值1,值2,值3 union
                select 值1,值2,值3 union
                select 值1,值2,值3 union
                select 值1,值2,值3 union
                select 值1,值2,值3 
15、删除:
    删除表:drop table 表名;
    删除数据库:drop database 数据库名;
    删除表内所有数据:delete from 表名;
    删除学号为1的学生:delete from 表名 where 学号=1;
16、查询:
    查询表内所有数据:select * from 表名;
     查询学号为1的学生的名字:select 名字 from 表名 where 学号=1;
     查询学号为1的学生的所有信息:select * from 表名 where 学号=1;
     查询表内的所有名字和性别字段:select 名字,性别 from 表名;
     查询名字中含有唐字的学生的信息:select * from 表名 where 名字 like '%唐%'
          查询姓唐的学生的信息:select * from 表名 where 名字 like '唐%'
                 select * from 表名 where left(名字,1)='唐';
    查询电话不为空的学生的信息:select * from 表名 where 电话 is not null;
    查询年龄在18-100之间的学生的信息:select * from 表名 where 年龄 between 18 and 100;
                      select * from 表名 where 年龄>18 and 年龄<100;
    查询年龄在18以下或者30以上的学生的信息:select * from 表名 where 年龄<18 or 年龄>30
    查询年龄在18-20范围之内的学生的信息:select * from 表名 where 年龄 in(18,19,20);
    查询年龄不在18-20范围之内的学生的信息:select * from 表名 where 年龄 not in(18,19,20);
    查询姓唐并且名字只有一个字的学生的信息:select * from 表名 where 名字 like '唐_';
17、修改:
    把学号为1的学生的性别改为男:update 表名 set 性别='男' where 学号=1;
    把表内所有学生的年龄+5:update 表名 set 年龄=年龄+5;
    把表内所有的女生的性别改为男:update 表名 set 性别='男';
18、排序:
    根据年龄降序:select from 表名 order by 年龄 desc;
    根据年龄升序:select from 表名 order by 年龄 asc;
19、去除重复项distinct:(效果同分组group by )
    查询班级的名字(去除重复的):select distinct 名字 from 表名;
20、取前几项top:
    查询班级分数前三名的学生的信息:select top 3 * from 表名 order by 分数 desc;

21、百分比percent:
    查询班级前30%的学生信息:select top 30 percent * from 表名 order by 分数 desc;

22、函数:字符串函数、日期函数、数学函数、系统函数。
23、聚合函数:max求最大值、min求最小值、avg求平均值、sum求字段数据之和、count(*)求表内数据的条数。
        求班级年龄最大的学生的信息:
            select max(年龄) from 表名;
            select top 1 * from 表名 order by 年龄 desc;
24、分组查询group by:
    通过性别分组:select 性别 from 表名 group by 性别;
    求出表内各个性别的总人数:select 性别,count(*) from 表名 group by 性别;
    求出地址为长沙的各个性别总人数:
        select 性别,count(*) from 表名 where 地址='长沙'
        group by 性别;
25、分组之后的筛选having:
    select 性别,count(*) from 表名 where 地址='长沙'
    group by 性别
    having count(*)>2
26、联表查询:
    内连接:inner join:显示两个表共有的数据;
    外连接:
        左外连接:left join:以左表为基表,显示左表所有的数据。
        右外连接:right join:以右表为基表,显示右表所有的数据。
          全连接:full join:显示两个表所有的数据。
27、查询某个表的数据到一个新表里面:select 名字,性别 into 新表名 from 旧表名;
28、查询某个表的字段到一个新表里面:select 名字,性别 into 新表名 from 旧表名 where 1!=1;
29、高级子查询:由外到内。
    查询语句块:select * from 表名
    查询年龄比康康大的学生的信息:
        select * from 表名 where 年龄 >(
             select 年龄 from 表名 where 名字='康康'
        );
     表1:学号、姓名;    
     表2:学号、分数;
     查询分数大于60分的学生的姓名:
     select 姓名 from 表1 where 学号 in(
         select 学号 from 表2 where 分数>60
     )

30、isnull:
    isnull(分数,0):把分数为null的值赋为0;

    isnull(cast(分数 as varchar(4)),'缺考');

31、from后面接查询的结果集:
    select * from(
        select * from 表名 where 地址='长沙'
    ) 新表名 where ssex='男'
32、replace:替换
    把abc里面的a替换成1:replace('abc','a','1');
    把abc里面的a替换成1,b替换成2,c替换成3:
    replace(replace(replace('abc','a','1'),'b','2'),'c','3')
33、视图view:是一张虚拟的表。
    创建视图:
        create view 视图名
        as
        查询sql语句
    查询视图:select * from 视图名;
    删除视图:drop view 视图名;
    
 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值