黑马 程序员--SQL基础复习(一)
2011-12-01 13:48
316 查看
---------------------- .Net培训、WP7培训、期待与您交流!----------------------
虽然在学校学过数据库课程了,还是复习一下SQL,以加深印象。
SQL :Structured Query Language 结构化查询语句
在最近十年内,写程序没有数据库支持,称不上是好程序,或者功能强大的程序。
而数据库,主要依赖于数据库管理系统,让我们很幸福的是,数据库管理系统已
由前人为我们做好了,我们只负责用就可以了,令人惭愧的是,很多人连用现成
的都用不好。
使用数据库也是需要语言的,SQL 语言专门为操纵数据库而生的。
下面是一些简单的使用:
SQL 分为DDL,DML
DDL : 数据定义语言 CREATE DATABASE, CREATE TABLE, DROP TABLE
DML:数据操纵语言 INSERT, DELETE, UPDATE, SELECT
SQL 语句中对关键字的大小写是不敏感的,但是对数据是大小写敏感的
但是最好把关键字都大写,这是考验你编程修养的地方。
数据库中的表需要有表示列,用int或Guid两种都可,衡量使用,int可以自动增长,
Guid方便导入导出。生成方法:Guid.newid(), .net中用Guid.NewGuid()。
字符型变量用nvarchar类型,防止有填充空格(以前写程序遇到类似的问题)
表结构如下:(T_Employees)
ID nvarchar(10) not null
Name nvarchar(10)
Age tinyint
Salary int
View Code
--为列头赋值,可以用as,也可以用=,注意顺序 ,as 字段在前,= 字段在后 SELECT 编号 = ID,Name as 姓名,年龄 = Age, Salary as 工资 FROM T_Employees; --查入多条数据,为测试使用 INSERT INTO T_Employees(ID,Name,Age,Salary)Values('DEV001','Jim',28,5000); INSERT INTO T_Employees(ID,Name,Age,Salary)Values('DEV002','Tom',25,6000); INSERT INTO T_Employees(ID,Name,Age,Salary)Values('DEV003','Marry',27,2400); INSERT INTO T_Employees(ID,Name,Age,Salary)Values('HR001','Kate',37,5400); INSERT INTO T_Employees(ID,Name,Age,Salary)Values('HR002','John',45,5300); INSERT INTO T_Employees(ID,Name,Age,Salary)Values('HR003','Smith',26,2700); INSERT INTO T_Employees(ID,Name,Age,Salary)Values('IT001','Jerry',29,6700); INSERT INTO T_Employees(ID,Name,Age,Salary)Values('IT002','Kerry',38,9800); INSERT INTO T_Employees(ID,Name,Age,Salary)Values('IT003','Joe',42,4600); INSERT INTO T_Employees(ID,Name,Age,Salary)Values('SALE001','Jonse',53,7400); INSERT INTO T_Employees(ID,Name,Age,Salary)Values('SALE002','Jack',28,4700); INSERT INTO T_Employees(ID,Name,Age,Salary)Values('SALE003','James',37,3200); --过滤加排序(按多个字段排序,有顺序,先年龄,后工资) SELECT * FROM T_Employees WHERE Salary > 6000 ORDER BY Age ASC,Salary ASC; --删除一行 DELETE FROM T_Employees WHERE ID = 'Dev001'; SELECT * FROM T_Employees; --通配符 SELECT * FROM T_Employees WHERE ID LIKE '_EV%'; SELECT * FROM T_Employees WHERE ID LIKE 'HR%'; SELECT * FROM T_Employees WHERE ID LIKE 'IT%'; SELECT * FROM T_Employees WHERE ID LIKE 'SALE%'; --少Name字段,数据库里默认为NULL INSERT INTO T_Employees(ID,Age,Salary) Values('DEV004',28,6000); --@@表示常量 SELECT @@VERSION; --日期函数 SELECT GETDATE(); --聚合函数 SELECT MAX(Salary) FROM T_Employees; SELECT Min(Salary) FROM T_Employees; SELECT AVG(Salary) FROM T_Employees; SELECT Count(Salary) FROM T_Employees; SELECT COUNT(*) FROM T_Employees; SELECT * FROM T_Employees WHERE Name IS NOT NULL; SELECT * FROM T_Employees WHERE Name IS NULL; -- 错误写法SELECT * FROM T_Employees WHERE Name <> NULL; -- 错误写法SELECT * FROM T_Employees WHERE Name = NULL; --NULL表示不知道 不能用<> 或= 来判断 某个字段是否为空 --NULL 和 '' 不一样 SELECT NULL + '123'; -- 结果为NULL SELECT '' + '123'; -- 结果为123 --按段查询 两种写法效果一样 SELECT * FROM T_Employees WHERE Age BETWEEN 28 AND 50; SELECT * FROM T_Employees WHERE Age >= 28 AND Age <= 50; --特定值查询 SELECT * FROM T_Employees WHERE Age IN(25,27,45); --更新数据 UPDATE T_Employees SET Age = Age + 1; UPDATE T_Employees SET Age = Age - 1; --更新某些列(给40岁一些员工涨工资1000) UPDATE T_Employees SET Salary += 1000 WHERE Age < 40; --在中文前加N UPDATE T_Employees SET Name = N'玛丽' WHERE Age = 27; SELECT * FROM T_Employees;
---------------------- .Net培训、WP7培训、期待与您交流!----------------------
相关文章推荐
- SQL基础复习1
- ORACLE sql基础知识复习
- java程序员面试复习资料2——[JAVA编程基础]
- 黑马 程序员——Java基础---流程控制
- 黑马程序员----objective-C 基础语法篇
- 黑马 程序员——Java基础---面向对象(下)
- SQL 基础复习
- 黑马程序员:Java基础总结----GUI&网络&IO综合开发
- 黑马程序员 Java基础——网络编程
- 黑马程序员 java基础加强--JDK1.5新特性
- 黑马 程序员——Java基础---异常处理
- 黑马 f05f 程序员---基础加强第一天小结
- 黑马 程序员——Java基础---IO(下)
- 黑马程序员-->Java基础-->集合
- SQL基础复习2
- 黑马程序员-Java基础:面向对象(上)
- 黑马程序员--ADO.NET学习之SQL注入漏洞攻击
- Microsoft SQL Server基础知识复习
- 黑马程序员--Java基础--面向对象
- 黑马程序员_java基础网络编程