常用数据库复习资料

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 常用数据库复习资料

mast:


数据库控制SQL Server的所有方面。这个数据库中包括所有的配置信息、用户登录信息、当前正在服务器中运行的过程的信息。


model:数据库是建立所有用户数据库时的模板。当你建立一个新数据库时,SQL Server会把model数据库中的所有对象建立一份拷贝并移到新数据库中。在模板对象被拷贝到新的用户数据库中之后,该数据库的所有多余空间都将被空页填满。



tempdb数据库


tempdb数据库是一个非常特殊的数据库,供所有来访问你的SQL Server的用户使用。这个库用来保存所有的临时表、存储过程和其他SQL Server建立的临时用的东西。例如,排序时要用到tempdb数据库。数据被放进tempdb数据库,排完序后再把结果返回给用户。每次SQL Server重新启动,它都会清空tempdb数据库并重建。永远不要在tempdb数据库建立需要永久保存的表



msdb数据库:


msdb数据库是SQL Server中的一个特例。如果你查看这个数据库的实际定义,会发现它其实是一个用户数据库。不同之处是SQL Server拿这个数据库来做什么。所有的任务调度、报警、操作员都存储在msdb数据库中。该库的另一个功能是用来存储所有备份历史。SQL Server Agent将会使用这个库。



数据库管理系统和数据库系统的区别:


数据库管理系统(DBMS):是一个系统软件,比如说mysql sqlserver等。


数据库系统(DBS):是一个实际可运行的系统,可以对系统提供的数据进行存储、维护和应用。



--创建表

CREATE TABLE users
(
id INT ,
name VARCHAR(50),
age INT
)



--添加数据


SELECT * FROM users
INSERT INTO users VALUES(2,'张三1',13);
INSERT INTO users VALUES(4,'王五',12,'山西省吕梁市',DEFAULT);

 --默认性别是男,年龄必须大于0小于100


--创建一个Student表


CREATE TABLE student
(
id INT ,
name VARCHAR(50),
age VARCHAR(50)
)



--将users表中的id name age 查询出来之后放在student表里面,其中student已经事先存在了

INSERT INTO student(id,name,age) SELECT id,name,age FROM users ;
SELECT * FROM student;



--将users表中的id name age address 查询出来放在新表studentinfo中,其中studentinfo事先不存在

SELECT id,name,age,address INTO studentinfo FROM users;
SELECT * FROM studentinfo;



--给studetninfo表里面一次插入多条记录

INSERT INTO studentinfo VALUES(5,'张无',45,'山东省济南市'),
(6,'张无1',45,'山东省济南市1'),
(7,'张无2',42,'山东省济南市2'),
(9,'张无3',78,'山东省济南市3')
SELECT * FROM studentinfo;


--修改users的信息,将张三的性别修改成女

SELECT * FROM users;
UPDATE users set sex='女' WHERE name='张三'

--删除张三1

DELETE FROM users WHERE name='张三1'

--查询--使用别名AS

SELECT id AS '编号',name AS '姓名',age AS '年龄' FROM users

--使用别名.

SELECT id  '编号',name  '姓名',age  '年龄' FROM users

--合并两列数据

SELECT name+'.'+address FROM studentinfo;

--查询空行

INSERT INTO users (id,name,age) VALUES(5,'王宝宝',15);
SELECT * FROM users;
SELECT * FROM users WHERE address is null;

--查询前3行

SELECT top 2 * FROM users;

--按照百分数查询

SELECT top 10 percent * FROM users;

--按年龄排序(升序),编号降序

SELECT * FROM users order by age ASc,id desc;

--查询m在My Jbns Course里面出现的位置

SELECT CHARINDEX('m','My Jbns Course')

--查询My Jbns Course的长度

SELECT len('My Jbns Course')

--把传递给他的字符串转换成大写

SELECT UPPER('my is father');

--清除字符左边的空格

SELECT ltrim('     你是谁      ')

--清除字符右边的空格

SELECT rtrim(' 你是谁      ')

--从字符串右边返回指定的字符,4代表截取几个字符

SELECT RIGHT('买卖提5吐尔松',4)

--替换一个字符串中的字符:把(我)替换成(你)

SELECT replace('我是谁','我','你')

--在一个字符串中,删除指定长度的字符,并在改位置插入一个新字符,1是从第一个开始,5是截取5个

SELECT stuff('abcdefg',1,5,'明朝的皇帝是谁?')

--日期函数--取得系统当前的日期

SELECT getdate()

--将指定的数值添加到指定的日期部分后的日期(yy:年,mm:月,dd:日,5代表加的数字)

SELECT DATEADD(yy,5,'01/01/2009')

--两个日期中指定日期的间隔(yy:年,mm:月,dd:日,输出一个整型)

SELECT DATEDIFF(yy,'2017-05-08','2019-05-04')

--日期中指定日期部分的字符串形式(yy:年,mm:月,dd:日,输出一个字符串:星期六)

SELECT datename(dw,'2015-05-09')

--日期中指定日期部分的整数形式

SELECT datepart(day,'2014-05-09')

--数学函数


--返回0-1之间的随机数float值

SELECT rand()

--取大于或等于指定数值、表达式的最小整数

SELECT ceiling(45.6)

--取数值表达式的绝对值

SELECT abs(-8)

--取小于或等于指定数值、表达式的最大整数

SELECT floor(32.8)

--取数值表达式的幂值(5的2次方)

SELECT power(5,2)

--取数值表达式四舍五入为指定的精度(2代表保留2位,其余的都是0)

SELECT round(3.1415926,2)

--对于正数返回+1,对于负数返回-1,对于0则返回0

SELECT sign(-1)

--取浮点表达式的平方根

SELECT sqrt(9)



--系统函数


--用来转变数据类型

SELECT CONVERT (VARCHAR (5),12345)

--返回当前用户的名字

SELECT CURRENT_USER

--返回用于指定表达式的字节数

SELECT DATALENGTH ('中国A联盟')

--返回当前用户所登录的计算机名字

SELECT HOST_NAME()

--返回当前所登录的用户名称

SELECT SYSTEM_USER

--从给定的用户ID返回用户名

SELECT USER_NAME(1)

--案例--某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题:--卡里面的字母“O和数字0”、“字母i和数字1”,用户反映说看不清楚,--公司决定,把存储在数据库中的密码中所有的“O”都改成“0”,把所有的“i”都改成“1”;

UPDATE Card SET PassWord = REPLACE(PassWord ,'O','0')
UPDATE Card SET PassWord = REPLACE(PassWord ,'i','1')

--使用函数更加简便

UPDATE  Card  
SET PassWord = REPLACE(REPLACE(PassWord ,'O','0'),'i','1')

--在数据库表中有以下字符数据,如:-- 13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2--现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排序,输出要排成这样:-- 13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2


SELECT ListNumber
FROM    SellRecord
ORDER BY  
CONVERT(int, LEFT(ListNumber, CHARINDEX('-', ListNumber)-1)),
CONVERT(int, STUFF(ListNumber,1, CHARINDEX('-', ListNumber), ''))

--年满20周岁的条件

DATEDIFF(DD,BornDate, GETDATE())>=365*20

--获取Email的域名

RIGHT(Email, LEN(Email) - CHARINDEX('@',Email) )

--获取当前日期的年、月、日

CONVERT(VARCHAR(4), DATEPART(YYYY,GETDATE()))

--获取4位随机数

RIGHT(RAND(),4)  
select * from students
select * from score
select * from course

--按年级查询学生人数

select count(*) 人数,sgrade 年级 from students group by sgrade

--多列分组,统计每学期男女学生的人数

select count(*) 人数,sgrade,ssex from students group by sgrade,ssex

--查询总人数超过15的年级

select count(*) 人数 ,sgrade 年级 from students group by sgrade having count(*)>=2

---连接查询

select * from Students a join score b on a.SCode = b.Score join  course c on b.CourseID = c.CourseID

--左外链接查询

SELECT S.SName,C.CourseID,C.Score  
FROM Students AS S
LEFT JOIN Score AS C
ON C.StudentID = S.SCode

--右外链接查询--左外联接是以左表为基础的,左表的记录将会全部表示出来,--而右表只会显示符合搜索条件的记录。右表记录不足的地方均为NULL

SELECT S.SName,C.CourseID,C.Score  
FROM Students AS S
right JOIN Score AS C
ON C.StudentID = S.SCode


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
7月前
|
关系型数据库 分布式数据库 数据库
阿里云瑶池数据库训练营权益:PolarDB开发者大会主题资料开放下载!
阿里云瑶池数据库训练营权益:PolarDB开发者大会主题资料开放下载!
|
7月前
|
人工智能 Cloud Native 关系型数据库
阿里云瑶池数据库训练营权益:2022-2023云栖大会主题资料开放下载!
阿里云瑶池数据库训练营权益:2022-2023云栖大会主题资料开放下载!
|
5月前
|
前端开发 NoSQL 数据库
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
|
5月前
|
存储 JavaScript 前端开发
文本,三步走构思,富文本点击提交能够存储到数据库当中(下),最快的方法,还是会看资料,因此会整合资料最好,直接看资料最快,因为是JWT的资料,我们要设置好登录的内容,看登录的地方怎样写的
文本,三步走构思,富文本点击提交能够存储到数据库当中(下),最快的方法,还是会看资料,因此会整合资料最好,直接看资料最快,因为是JWT的资料,我们要设置好登录的内容,看登录的地方怎样写的
|
7月前
|
SQL 存储 数据库
常用数据库复习资料
常用数据库复习资料
|
NoSQL MongoDB 数据库
数据库系列课程(24)-MongoDB资料
数据库系列课程(24)-MongoDB资料
47 0
|
存储 SQL Oracle
动力节点MySQL数据库基础教程(无比详细)附视频、资料、作业题
一、数据库的基本概念 1、数据(Data) • 描述事物的符号记录 • 包括数字,文字,图形,图像,声音,档案记录等 • 以“记录”形式按统一的格式进行存储 2、表 • 将不同的记录组织在一起 • 用来存储具体数据 3、数据库 • 表的集合,是存储数据的仓库 • 以一定的组织方式存储的相互有关的数据集合 4、数据库管理系统(DBMS) 是实现对数据库资源有效组织、管理和存取的系统软件 5、数据库系统 • 是一个人机系统,由硬件、os、数据库、DBMS、应用软件和数据库用户组成 • 用户可以通过DBMS或应用程序操作数据库
327 0
动力节点MySQL数据库基础教程(无比详细)附视频、资料、作业题
|
NoSQL 大数据 分布式数据库
【精彩直播+最全资料下载】阿里云栖开发者沙龙 - BigData NoSQL Meetup(上海站)业内大咖齐聚,各大技术社区支持,与你畅聊 BigData NoSQL
云栖开发者沙龙介绍​ 阿里云栖开发者沙龙是“云栖社区”主办的线下技术沙龙品牌,希望通过技术干货分享来打通线上线下专家和开发者的连接。沙龙每期将定位不同的技术方向,逐步覆盖 云计算,大数据,前端,PHP,Java ,android,AI,运维,测试 等技术领域,并会穿插一些特别专场(开源专场,女性开发者专场,开发者成长专场等)。
9100 0
|
NoSQL 大数据 分布式数据库
阿里云栖开发者沙龙-数据库技术专场(最全资料下载)
前言: 2018年12月01日举办了第一期阿里云栖开发者玩转数据库技术沙龙,本次活动由云栖社区主办,地点就在北京阿里中心。 阿里云栖开发者沙龙希望通过技术干货分享来打通线上线下专家和开发者的连接。
4308 0
|
NoSQL 分布式数据库 数据库
【直播回顾&资料下载】15位大咖开年知识分享,全方位解析NoSQL数据库
2018年开年伊始,阿里云数据库团队便带来了一场为期3天的知识盛会。 此次《Redis、MongoDB、HBase大咖直播大讲堂》技术直播峰会由阿里云Redis、MongoDB、HBase的15位技术专家、产品专家给大家带来深度的技术及产品分享,全方位解读NoSQL产品家族,实乃技术迷的福音! 峰会专题:【Redis、MongoDB、HBase大咖直播大讲堂】https://yq.
8910 0