数据库语句大全!!要举一反三!

2024-02-18 11:48

本文主要是介绍数据库语句大全!!要举一反三!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

                Sunny个人整理!(sunny我的英文名)

 

创建数据库

create database student

on

(name=student_data,

 filename='c:/data/student_data.mdf',

 size=3,

 filegrowth=1,

 )

log on

(name=stu_log,

 filename='c:/../stu_log.ldf',

 size=1,

 maxsize=20,

filegrowth=10%)

--创建数据库,及数据文件和日志文件

 

创建表

create table stu_grade

(stu_id  char(10) not null,

--stu_id  char(10) not null primary key,--其他表直接定义主键]

 

 course_id  char(3)  not null,

 grade  int,

 

 constraint     pk_no1    primary key(stu_id ,course_id),

 constraint  fk_stu_id     foreign key (stu_id ) references stu_info(stu_id ),

 constraint  fk_course_id  foreign key (course_id ) references course_info(course_id ),)

--创建表及主键外键

--修改表

alter table stu——info

add code char(18)

 

alter table stu——info

add constraint RM unique (code)--RM 是约束的名字

 

alter table stu——info

drop constraint RM

 

alter table stu——info

add constraint RM check (grade between 0 and 100)

 

alter table stu——info

drop constraint RM foreign key (course_id ) references course_info(course_id )

--删除表先删除约束

alter table stu_grade

drop constraint fk_stu_id

 

drop table stu_info

 

insert into stu_info

values('20081300408','张山','1988-01-26','f','河南郑州',.......

       '..',' ..', .....

       )

--插入数据

 

update stu_info

set sdept='会计学院'

where stu_id ='20081300408'

--更新表

 

 

delete from stu_info

where sex is null--必须是 is null 而不能是 =null

--删除数据

 

 

数据查询

select ....from  表名

where......

--简单查询

 

select s.stu_id ,name,c.course_name, g.grade

from stu_info s join stu_grade g on s.stu_id=g.stu_id

     join course_info c on c.course_id=g.course_id

--多表查询语句

 

select name from stu_info

where adddress like '%%'

--模糊查询

 

select stu_id, name,sdept from stu_info

where stu_id not in /in (select stu_id from stu_grade where course_id =001)

--查询没有选修001 这门课的学生

 

select avg(mark) from stu_info where sdept='信息学院'--平均成绩

 

select max(mark),min(mark) from stu_info--最大成绩,最小成绩

 

select sdept,sex ,count(*) from stu_info  where sdept='信息学院' and sex=''

group by sdept ,sex--信息学院女生人数

创建索引

create nonclustered index 索引名SY on course_infor (course_name)--非聚焦索引

 

create nonclustered index SY on stu_grade (stu_id,course_id )--创建复合索引

 

drop index stu_grade.SY--删除索引 (表名.索引名)!

 

create unique index SY on course_info(course_name)--修改 sy 为唯一索引

 

sp_helpindex course_info --查看 SY索引 信息

 

创建视图

create view view_name as select ....from.....where..group by..

--创建视图

 

create view view_name

as

select sdept ,count(*) '总人数' from stu_info

where sdept='信息学院'

group by sdept

--创建视图显示信息学院的总人数

 

alter view view_name with encrypion

as

select sdept ,count(*) '总人数' from stu_info

where sdept='信息学院'

group by sdept

--修改为加密视图

 

drop view view_name--删除视图

 

创建存储过程

create procedure pro_name @xh char(10)

as

select count(*) from stu_gread

where grade<60 and stu_id=@xh

--创建存储过程pro_name

 

drop procedure pro_name--删除存储过程

 

pro_name '200707001'--调用存储过程

触发器

create trigger tr1

on stu_info

after delete

as

delete from stu_grade where stu_id=(select stu_id from deleted)

--级联删除

 

create trigger tr2

on stu_info

after update

as

update stu_grade set stu_id=(select stu_id from insered )

where  stu_id=(select stu_id from deleted)

--级联更新

 

select * into xs2 from stu_info where 1=2--创建表xs2作为储存开除学生的表

 

create trigger tr3

on stu_grade

for update ,insert

as

declare @m int

select @m=count(*) from stu_grade

where grade<60 and stu_id =(select stu_id from inserted )

if (@m>4)

insert into xs2 select *  from stu_info

where stu_id =(select stu_id from inserted)

--forafter为后触发器)

 

drop trigger tr3--删除触发器

 

数据库安全

sp_addlogin 'login_name','密码','默认数据库'--创建登录账户

 

sp_droplogin 'login_name'--删除登录账户

 

sp_addrole 'role_name'--创建数据库角色

 

sp_droprole 'role_name'--删除角色

 

backup database stu_info to sale_student--备份数据库

 

restore database stu_info from sale_student--还原数据库

这篇关于数据库语句大全!!要举一反三!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/721055

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

MySQL批量替换数据库字符集的实用方法(附详细代码)

《MySQL批量替换数据库字符集的实用方法(附详细代码)》当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面:本文主要介绍MySQL批量替换数据库字符集的实用方法... 目录前言为什么要批量修改字符集?整体脚本脚本逻辑解析1. 设置目标参数2. 生成修改表默认字符集的语句3

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp