• 常用数据库复习资料



    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

    感谢您抽出  · 来阅读此文

    更多精彩请点击【阅读原文】哦

    ↓↓↓

    长按二维码关注我们,

    1111的博客,一个有用

    的公众号

  • 相关阅读:
    gulp 相关文章
    webpack相关文章
    nodejs 教程
    MVC,MVP 和 MVVM 的图示,区别
    Webpack——解决疑惑,让你明白
    如何在修改bug时切换分支保留修改又不提交
    JavaScript中的两个“0” -0和+0
    node-wechat 微信推送消息
    git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
    git如何回滚远程仓库
  • 原文地址:https://www.cnblogs.com/a1111/p/14877515.html
Copyright © 2020-2023  润新知