zoukankan      html  css  js  c++  java
  • sql server操作案例

    今天没事做,总结了下sql server的些知识:

    --创建表
    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')
    
    


  • 相关阅读:
    《程序员修炼之道——从小工到专家》读后感二
    2019.10.14课堂总结
    《程序员修炼之道——从小工到专家》读后感一
    2019.09.23课堂总结
    回文序列判断
    动手动脑
    2018/10/21动手动脑及类的创建
    动手动脑-java重载
    第二次上机实验体会
    Java第一次上机实验源代码
  • 原文地址:https://www.cnblogs.com/a1111/p/12816189.html
Copyright © 2011-2022 走看看