sql server 数据库开发 知识点

2023-05-16

sql server 数据库开发

1.含义:数据库设计实际上就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。

E-R图组成包括:

矩形表示实体集

椭圆表示属性

菱形表示关系

直线用来连接实体集与属性,同时也用来连接实体集与关系

直线上的箭头用来表示实体集之间的映射基数

2.变量

(1)局部变量

语法:declare @变量名 变量类型[,@变量名 变量类型]

例如:declare @id char(10)
        --set @id = '10010001'

        select @id = '10010001'

(2)全局变量

 ---必须以@@开头

(3)IF-ELSE

--举例:

declare @x int @y int @z int

select @x = 1 @y = 2 @z=3

if @x > @y

print 'x > y' --打印字符串'x > y'

else if @y > @z

print 'y > z'

else print 'z > y'

       

(4)while-continue-break

--举例:

        declare @x int @y int @c int
        select @x = 1 @y=1
        while @x < 3
                 begin
                        print @x --打印变量x 的值
                        while @y < 3
                                begin
                                        select @c = 100*@x + @y
                                        print @c --打印变量c 的值
                                        select @y = @y + 1
                                end
                        select @x = @x + 1
                          select @y = 1
                end
(5)case
 --举例:

        use pangu
        update employee
        set e_wage =
        case
                when job_level = ’1’ then e_wage*1.08
                when job_level = ’2’ then e_wage*1.07
                when job_level = ’3’ then e_wage*1.06
                else e_wage*1.05
        end

3.批处理

可以使不在同一批处理语句中的sql语句相互不受影响,go关键字标志性着批处理的结束

4.常见语法举例

(1)select

select *(列名) from table_name(表名) where column_name operator value
        ex:(宿主)
        select * from stock_information where stockid   = str(nid)
        stockname = 'str_name' 
        stockname like '% find this %' 
        stockname like '[a-zA-Z]%' --------- ([]指定值的范围)
        stockname like '[^F-M]%'   --------- (^排除指定范围)
         --------- 只能在使用like关键字的where子句中使用通配符)
        or stockpath = 'stock_path'
        or stocknumber < 1000
        and stockindex = 24
        not stocksex = 'man'
        stocknumber between 20 and 100
        stocknumber in(10,20,30)
        order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
        order by 1,2 --------- by列号
        stockname = (select stockname from stock_information  where stockid  = 4)
         --------- 子查询
        --------- 除非能确保内层select只返回一个行的值,
        --------- 否则应在外层where子句中用一个in限定符
        select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复
        select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
        select stockname , "stocknumber" = count(*) from table_name group by stockname
                                      --------- group by 将表按行分组,指定列中有相同的值
                 having count(*) = 2  ---------  having选定指定的组
        
        select * 
        from table1, table2                  
        where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示
        table1.id =* table2.id -------- 右外部连接

        select stockname from table1
        union [all]  -----  union合并查询结果集,all-保留重复行
        select stockname from table2

(2)insert

insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
                value (select Stockname , Stocknumber from Stock_table2)---value为select语句

(3)update

 update table_name set Stockname = "xxx" [where Stockid = 3]
                Stockname = default
                Stockname = null
                Stocknumber = Stockname + 4

(4)delete

delete from table_name where Stockid = 3
        truncate table_name ----------- 删除表中所有行,仍保持表的完整性
        drop table table_name --------------- 完全删除表

常用总汇

 1.开头到N条记录

        Select Top N * From 表

        2. N到M条记录(要有主索引ID)

        Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc

        3.N到结尾记录

        Select Top N * From 表 Order by ID Desc

        4 如何修改数据库的名称

        sp_renamedb 'old_name', 'new_name'

        5 获取当前数据库中的所有用户表

        select Name from sysobjects where xtype='u' and status>=0

        或者:

        select   *   from   information_schema.tables

        6 获取某一个表的所有字段

        select name from syscolumns where id=object_id('表名')

        7 查看与某一个表相关的视图、存储过程、函数

        select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'

       8 查看当前数据库中所有存储过程

        select name as 存储过程名称 from sysobjects where xtype='P'

        9 查询用户创建的所有数据库

        select * from master..sysdatabases D 
                where sid not in(select sid from master..syslogins where name='sa')

        或者

        select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01

        10 查询某一个表的字段和数据类型

        select column_name,data_type from information_schema.columns
        where table_name = '表名' 

       11 判断一个表是否存在
 
        if   exists(select   1   from   sysobjects   where   name='要判断的表名'   and   xtype='U')   
                print   '在'   
        else     
                print   '不在'   

         或者
 
        if   objectproperty(object_id('要判断的表名'),'isusertable')   is   null   
                print   '无此表'   
                else   
        print   '有此表'

       

       12 创建一个表和两个字段,并指定其中一个字段为自增的关键字

       CREATE TABLE '+ @TABLENAME + ' (tableID BigInt identity(1,1) primary key,myUserID BigInt)'


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql server 数据库开发 知识点 的相关文章

  • Retrofit 使用

    Retrofit 使用 Retrofit 官网导入依赖库请求数据 xff08 以 玩Android 为例 xff0c 官方文档为 github 接口 xff1a https api github com xff09 数据请求前提getpos
  • Retrofit2 源码分析

    Retrofit2 源码分析 整体流程 xff08 以异步请求为例 xff09 源码分析总结 整体流程 xff08 以异步请求为例 xff09 通过建造者模式创建 Retrofit 对象Retrofit 对象通过 create 方法 xff
  • jar文件双击不能打开

    注册表 在Windows开始菜单的搜索框中输入 regedit xff0c 在上方搜索出的文件regedit上点击鼠标右键 xff0c 在弹出的菜单中选择 以管理员身份运行 在注册表编辑器中 xff0c 找到 HKEY CLASSES RO
  • 深入理解JS中的变量作用域

    在 JS 当中一个变量的作用域 xff08 scope xff09 是程序中定义这个变量的区域 变量分为两类 xff1a 全局 xff08 global xff09 的和局部的 其中全局变量的作用域是全局性的 xff0c 即在 JavaSc
  • SystemUI返回键手势和launcher上滑手势

    背景描述 最近修改bug和需求 xff0c 接触到系统手势这一块 xff0c 发现是一个薄弱点 xff0c 以前只是简单知道 xff0c 没有深入了解 手势这一块涉及的模块和流程比较多 xff0c 记录一下别人写的比较好的文章参考一下 初步
  • Android Studio 展开、折叠代码块快捷键

    展开 折叠代码块的方法 xff1a 折叠单个方法 xff1a 34 ctrl 34 43 34 34 展开单个方法 xff1a 34 ctrl 34 43 34 43 34 折叠全部方法 xff1a 34 ctrl 34 43 34 shi
  • Android Studio 重写父类方法的快捷键

    快速重写父类方法的快捷键 xff1a ctrl 43 o
  • 门面(外观)模式和代理模式区别

    本文只讲门面模式和代理模式的区别 今天用旅游吃饭来区分下门面模式和代理模式 门面模式是给用户提供一种服务 xff0c 就相当于我们的饭店 xff0c 可以给顾客提供美味的食物 代理模式是根据用户的需求 xff0c 提供解决该需求的方案 xf
  • 传输层TCP的流量控制和拥塞控制(图文详解)

    TCP的流量控制和拥塞控制 TCP流量控制流量控制中的死锁问题 x1f512 持续计时器 TCP的拥塞控制增加资源能解决拥塞吗 xff1f 拥塞往往会趋于恶化拥塞控制方法慢开始和拥塞避免慢开始拥塞避免 快重传和快恢复快重传快恢复 TCP流量
  • 数据链路层的子层MAC层(图文详解)

    数据链路层的子层MAC层 MAC层MAC层的硬件地址单站地址 xff0c 组地址 xff0c 广播地址全球管理与本地管理适配器检查MAC地址 MAC帧的格式 MAC层 MAC不是物理层 xff01 MAC不是物理层 xff01 MAC不是物
  • 补码一位乘法(Booth算法)和补码二位乘法详解

    文章目录 补码一位乘法补码二位乘法布斯算法的硬件实现 A D Booth提出了一种算法 xff1a 相乘二数用补码表示 xff0c 它们的符号位与数值为一起参与乘法运算的过程 xff0c 直接得出用补码表示的乘法结果 xff0c 且正数和负
  • 计算机原理中的字,位扩展,都给老子进来学,看不懂算我输!

    文章目录 涉及到的几个概念地址线与数据线 字扩展与位扩展 涉及到的几个概念 MDR xff1a 数据寄存器 xff0c 用来存入内存中读入 写出的信息 MAR xff1a 地址寄存器 xff0c 用来存放当前CPU访问的内存单元地址 地址线
  • 计算机组成原理中指令的四个工作周期

    文章目录 执行过程取指周期带有间址寻址的指令周期带有中断的指令周期 间指周期执行周期中断周期 执行过程 执行过程 xff1a 在取址周期后 xff0c 需要判断是否有间址周期 xff0c 如果没有就进入到了执行周期 xff0c 在执行周期过
  • Uncaught TypeError: $(...).modal is not a function

    项目场景 xff1a ssm框架配合bootstrap和AJAX xff0c 点击按钮弹出模态框 问题描述 xff1a Uncaught TypeError modal is not a function 原因分析 xff1a 没有引入bo
  • Lock锁及获取锁的四种方法

    为什么使用LOCK xff1f LOCK锁LOCK锁的上锁与解锁 为什么使用LOCK xff1f 传统的Synchronized锁有非常多的缺点 xff1a 锁的唤醒和阻塞代价较高 xff0c 线程的阻塞和唤醒 xff0c 操作系统需要在用
  • Chrome浏览器无法安装插件的解决办法

    国内不翻墙情况下 xff0c 无法正常登录谷歌账户 无法访问谷歌应用商店 xff0c 无法同步个人数据和安装使用各类插件 本文解决方法 xff1a 开发模式安装 步骤 xff1a 1 将xxx crx插件的扩展名改成 zip或者 rar并解
  • java8的ConcurrentHashMap为何放弃分段锁,为什么要使用CAS+Synchronized取代Segment+ReentrantLock

    原文地址 xff1a https cloud tencent com developer article 1509556 今天突然被一个同事问到java8为何放弃分段锁 xff0c 于是花了点时间针对这个问题进行了小小的总结 jdk1 7分
  • 8-17小记

    Comparator比较器的使用 435 无重叠区间 力扣 xff08 LeetCode xff09 leetcode cn com 给定一个区间的集合 xff0c 找到需要移除区间的最小数量 xff0c 使剩余区间互不重叠 注意 可以认为
  • Java关键字小记

    Static静态内部类静态变量和方法导包静态代码块 final用来修饰数据用来修饰方法参数修饰方法修饰类 abstractabstract类abstract方法 extendsthrow和throwsvolatile 本篇是Java关键字的
  • Java 通过反射获取方法与变量

    0 反射技术 反射技术是Java生态中的重要内容 xff0c 在Spring以及其他框架中得到了广泛的应用 有了反射技术 xff0c 我们可以在程序运行的过程中 xff1a 构建任意一个类的对象 xff0c 了解任意一个对象所属的类 xff

随机推荐