黑马程序员----SQL语言基础

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

一.SQL数据库常用数据类型

Bit(可选值0、1)、datetime、int、varchar、nvarchar(可能含有中文字符用nvarchar)

varchar、nvarchar、char(n)的区别:char(n)不足长度的部分用空格填充。

二.SQL语句入门

    1.简单语法:

   (1).SQL语句中的字符串用单引号。

(2).大小写不敏感,指的是SQL关键字,字符串值对大小写敏感。

(3).创建表、删除表不仅可以手工完成,还可以执行SQL语句完成,在自动化部署、数据导入中应用很多。CREATE TABLE T_Person(Id int NOT NULL,Name nvarchar(50),Age int NULL)/ DROP TABLE T_Person.

(4).简单的Insert语句:INSERT INTO T_Person(Id,Name,Age) VALUES(1,’Jim’,20).

(5).SQL主要分DDL(数据定义语言)和DML(数据操作语言)两类。Create、Table、Drop table等属于DDL,Select、Insert等属于DML。

2.数据插入:

(1).Insert语句可以省略表名后面的列明,但是不推荐

(2).如果插入的行中有些字段的值不确定,那么Insert的时候不指定那些列即可。

(3).可以给字段默认值,如果Guid类型主键的默认值设定为newid()就会自动生成,很少这么干。

(4).主键:insert into Person3(Name,Age) values(‘lily’,38);

Insert into Person4(Id,Name,Age) values(newid(),’Tom’,30);

(5)数据更新:

(1).更新一个列:UPDATE T_Person Set Age=30;

(2).更新多个列:UPDATE T_Person Set Age=30,Name=’tom’;

(3).更新一部分数据:UPDATE T_Person Set Age=30 where Name=’tom’,用where语句表示只更新Name是tom的行。

(4).Where中还可以是使用复杂的逻辑判断UPDATE T_Person Set Age=30 where Name=’tom’or Age<25,or相当于C#中的||(或者).

(5).Where中可以使用的其他逻辑运算符:or、and、not、<、>、>=、<=、!=(或<>)等。

3.数据删除:

(1).删除表中的全部数据:DELETE FROM T_Person。

(2).Delete也可以带where子句来删除一部分数据。

4.数据检索:

(1).简单的数据检索:略。

5.数据排序:

(1).ORDER BY子句位于SELECT语句的末尾,它允许指定按照一个列或多个列进行排序,还可以指定排序方式是升序ASC还是降序DESC。

(2).按照年龄升序排序所有员工信息列表:SELECT * FROM T_Employee ORDER BY FAge ASC

(3).按照年龄从大到小排序,如果年龄相同则按照工资从大到小排序:

SELECT * FROM T_Employee WHERE FAge>23 ORDER BY FAge DESC,FSalary DESC.

4.通配符过滤:

(1).通配符过滤使用LIKE。

(2).单字符匹配的通配符为半角下划线”_”,他匹配单个出现的字符,以任意字符开头,剩余部分为”erry”:SELECT * FROM T_Employee WHERE FName LIKE ‘erry’;

(3).多字符匹配的通配符为半角百分号“%“,它匹配任意次数(零或多个)出现的任意字符。”k%”匹配以’k’开头,任意长度的字符串。检索姓名中包含字母’N’的员工信息:

SELECT * FROM T_Employee WHERE FName LIKE ’%n%’;

5.空值处理:

(1).数据库中,一个列如果没有指定值,那么值就为null,这个nill和C#中的null不同,数据库中的null表示“不知道“,而不是表示没有。因此SELECT null+1的结果是null,因为”不知道”+1的结果还是”不知道”。

(2).SQL中使用is null、is not null来进行空值的判断:

SELECT * FROM T_Employee WHERE FNAME is null;

SELECT * FROM T_Employee WHERE FNAME is not null;

6.数据分组:

(1).按照年龄进行分组统计各个年龄段的人数:

SELECT FAge,Count(*) FROM T_Employee GROUP BY FAge;

(2).GROUP BY子句必须放到WHERE语句的后面。

(3).没有出现在GROUP BY子句中的列是不能放到SELECT语句后的列名列表中的(聚合函数中除外):

    错误:SELECT FAge,FSalary FROM T_Employee GROUP BY FAge;

    正确: SELECT FAge,AVG(FSalary) FROM T_Employee GROUP BY FAge;

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值