SQL Server实用基础知识

T-SQL语句的学习

基本数据类型

BIGINT

-9,223,372,036,854,775,808

9,223,372,036,854,775,807

INT

2,147,483,648

2,147,483,647

SMALLINT

-32,768

32,767

TINYINT

0

255

BIT

0

1

DECIMAL

-10 ^ 38加1

10 ^ 38 -1

NUMERIC

-10 ^ 38加1

10 ^ 38 -1

MONEY

-922,337,203,685,477.5808

+ 922,337,203,685,477.5807

SMALLMONEY

-214,748.3648

+214,748.3647

近似数据类型

FLOAT

-1.79E + 308

1.79E + 308

REAL

-3.40E + 38

3.40E + 38

日期和时间类型

DATATIME (3.33 毫秒精度)

1753年1月1日

9999年12月31日

SMALLDATETIME (1分钟精度)

1900年1月1日

2079年6月6日

DATE (1天的精度。在SQL Server 2008中引入)

0001年1月1日

9999年12月31日

DATETIMEOFFSET (100纳秒的精度。在SQL Server 2008中引入)

0001年1月1日

9999年12月31日

DATATIME2(100纳秒的精度。在SQL Server 2008中引入)

0001年1月1日

9999年12月31日

TIME(100纳秒的精度。在SQL Server 2008中引入)

00:00:00.0000000

23:59:59.9999999

 

字符串类型

1

CHAR

固定长度的非Unicode字符数据,最大长度为8,000个字符。

2

VARCHAR

最大长度为8,000个字符的可变长度非Unicode数据。

3

VARCHAR(MAX)

最大长度为231个字符的可变长度非Unicode数据(在SQL Server 2005中引入)。

4

TEXT

可变长度非Unicode数据,最大长度为2,147,483,647个字符

Unicode字符串

1

NCHAR

固定长度的Unicode数据,最大长度为4,000个字符。

2

NVARCHAR

最大长度为4,000个字符的可变长度Unicode数据。

3

NVARCHAR(MAX)

最大长度为230个字符的可变长度Unicode数据(在SQL Server 2005中引入)。

4

NTEXT

最大长度为1,073,741,823个字符的可变长度Unicode数据。

二进制字符串

1

BINARY

固定长度二进制数据,最大长度为8,000字节。

2

VARBINARY

最大长度为8,000字节的可变长度二进制数据。

3

VARBINARY(MAX)

最大长度为231字节的可变长度二进制数据(在SQL Server 2005中引入)。

4

IMAGE

最大长度为2,147,483,647字节的可变长度二进制数据。

 

创建表的基本语法

CREATE TABLE table_name(

column1 datatype,

column2 datatype,

column3 datatype,

.....

columnN datatype,

PRIMARY KEY( one or more columns ));

 

查看SQL服务器显示的消息来验证表是否已经创建成功

exec sp_columns CUSTOMERS

 

INSERT语句

 

INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]

VALUES (value1, value2, value3,...valueN);

 

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

 

可以通过SELECT语句将数据填充到表中,而另一个表提供另一个表具有一组字段,这是填充第一个表所必需的

INSERT INTO first_table_name

SELECT column1, column2, ...columnN

FROM second_table_name

[WHERE condition];

 

UPDATE查询与WHERE子句的基本语法

UPDATE table_name

SET column1 = value1, column2 = value2...., columnN = valueN

WHERE [condition];

 

 

 

like关键字和 % _ 的使用

1

WHERE SALARY LIKE'200%'

查找以200开头的所有值

2

WHERE SALARY LIKE'%200%“

查找在任何位置有存在200的所有值

3

WHERE SALARY LIKE'%_00“

查找在第二和第三位置中具有00的所有值

4

WHERE SALARY LIKE'2 _%_%“

查找以2开头且长度至少为3个字符的所有值

WHERE SALARY LIKE'%2'

查找以2结尾的所有值

6

WHERE SALARY LIKE'%_2 3'

查找在第二个位置有2,并以3结束的所有值

7

WHERE SALARY LIKE'2___3“

查找以2开头并以3结尾的五位数字中的任何值

 

 

ORDER BY

SELECT column-list

FROM table_name

[WHERE condition]

[ORDER BY column1, column2, .. columnN] [ASC | DESC];

 

SELECT * FROM CUSTOMERS

ORDER BY NAME DES

 

GROUP BY 分类汇总

SELECT column1, column2

FROM table_name

WHERE [ conditions ]

GROUP BY column1, column2

ORDER BY column1, column2

示例

SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS

GROUP BY NAME;

 

DISTINCT关键字 去除重复记录

SELECT DISTINCT column1, column2,.....columnN

FROM table_name

WHERE [condition]

 

T-SQL 连接表 联表查询 多表查询

MS SQL Server Joins子句用于合并数据库中两个或多个表的记录。 JOIN是通过使用每个表共有的值来组合两个表的字段的手段。

请参考具有以下记录的两张表,(a)表CUSTOMERS表记录如下:

ID NAME AGE ADDRESS SALARY

1 Ramesh 32 Ahmedabad 2000.00

2 Khilan 25 Delhi 1500.00

3 kaushik 23 Kota 2000.00

4 Chaitali 25 Mumbai 6500.00

5 Hardik 27 Bhopal 8500.00

6 Komal 22 MP 4500.00

7 Muffy 24 Indore 10000.00

另一张(b)表ORDERS表记录如下:

OID DATE CUSTOMER_ID AMOUNT

100 2009-10-08 00:00:00.000 3 1500.00

101 2009-11-20 00:00:00.000 2 1560.00

102 2009-10-08 00:00:00.000 3 3000.00

103 2008-05-20 00:00:00.000 4 2060.00

让我们在我们的SELECT语句中加入这两个表,如下所示

SELECT ID, NAME, AGE, AMOUNT

FROM CUSTOMERS, ORDERS

WHERE CUSTOMERS.ID = ORDERS.CUSTOMER_ID

OR

SELECT A.ID, A.NAME, A.AGE, B.AMOUNT

FROM CUSTOMERS A inner join ORDERS B on A.ID = B.Customer_ID

T-SQL 子查询 嵌套查询

语法

以下是基本语法。

DELETE FROM TABLE_NAME

[ WHERE OPERATOR [ VALUE ]

(SELECT COLUMN_NAME

FROM TABLE_NAME)

[ WHERE) ]

以下命令将删除CUSTOMERS表中所有的年龄大于或等于27的客户的记录。

DELETE FROM CUSTOMERS

WHERE AGE IN (SELECT AGE FROM CUSTOMERS_BKP WHERE AGE >=27 )

 

convent的用法

convert(decimal(15,2),AVG(grade))

获取平均数后保留两位小数

 

HAVING 的用法

对分组后的信息进行过滤

HAVING 只能与 SELECT 语句一起使用。

HAVING 通常在 GROUP BY 子句中使用。

如果不使用 GROUP BY 子句,则 HAVING 的行为与 WHERE 子句一样。

例:HAVING MIN(grade)>80

 

select top 1 * from。。。。。。

用于选取第一条数据

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值