今天没事做,总结了下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')