欢迎投稿

今日深度:

SQL语句相关概念及练习之基础篇(1)

SQL语句相关概念及练习之基础篇(1)


写在前面:最近在上海找工作,前前后后面试了N家单位,发现各个公司对程序员的数据库知识尤其是SQL语句的掌握程度有很高的要求,作为一名光荣的程序员,不会玩儿SQL语句走在街上根本不好意思和人打招呼!好了,废话不多说,新手菜鸟同志们了注意了,这篇文章提供的例子很简单,但是也很重要,请认真练习!别等到面试的时候被某些人嘲讽"唉!这年头,会写SQL语句的程序员越来越少了!L"老鸟高手同志们,你们可以优雅地飘过,但是有什么意见或建议都要提出来哦,大家一起进步嘛J,让菜鸟变成高手,提高我国的编程水平。

一、SQL 基础知识

1、DDL(数据定义语言)

1)创建数据表

  1. --创建数据表 
  2. create table Test(Id int not null, Age char(20)); 
  3.  
  4. --创建数据表 
  5. create table T_Person1(Id int not null
  6. Name nvarchar(50), 
  7. Age int null); 
  8.  
  9. --创建表,添加外键 
  10. Create table T_Students( 
  11. StudentNo char(4), 
  12. CourseNo char(4), 
  13. Score int
  14. Primary key(StudentNo), 
  15. Foreign key(CourseNo) References T_Course(CourseNo) 
  16. ); 

2)修改表结构

  1. --修改表结构,添加字段 
  2. Alter table T_Person add NickName nvarchar(50) null
  3.  
  4. --修改表结构,删除字段 
  5. Alter table T_Person Drop NickName; 

3)删除数据表

  1. --删除数据表 
  2. Drop table T_Person; 
  3.  
  4. --删除数据表 
  5. drop table test 

4)创建索引

  1. Create [UniqueIndex <索引名> on <基本表名>(<列明序列>); 

2、DML数据操纵语言)

1)插入语句

  1. insert into T_Person1(Id,Name,Age) values(1,'Vicky',20) 
  2.  
  3. --插入一条据数,字段和值必须前后对应 
  4. insert into T_Preson1(Id,Name,Age) values(2,'Tom',19) 
  5. insert into T_Person1(Id,Name,Age) values(4,'Jim',19) 
  6. insert into T_Person1(Id,Name,Age) values(5,'Green',20) 
  7. insert into T_Person1(Id,Name,Age) values(6,'Hanmeimei',21) 
  8. insert into T_Person1(Id,Name,Age) values(7,'Lilei',22) 
  9. insert into T_Person1(Id,Name,Age) values(8,'Sky',23) 
  10.  
  11. insert into T_Person1(Id,Name,Age) values(newid(),'Tom',19) 

2)更新语句

  1. --修改列,把所有的age字段改为30 
  2. update T_Person1 set age=30 
  3.  
  4. --把所有的Age字段和Name字段设置为... 
  5. update T_Person1 set Age=50,Name='Lucy' 
  6.  
  7. update T_Person1 set Name='Frankie' where Age=30 
  8.  
  9. update T_Person1 set Name=N'中文字符' where Age=20 
  10.  
  11. --中文字符前面最好加上N,以防出现乱码 
  12. update T_Person1 set Name=N'成年人' where Age=30 or Age=50 

3)删除语句

  1. delete from T_Person1 
  2. --删除表中全部数据 
  3. delete from T_Person1 where Name='Tom' 
  4. --根据条件删除数据 

4)查询语句

查询语句非常强大,几乎可以查任意东西!

  1. ----------------- 
  2. ---- 数据检索 ----- 
  3. ----------------- 
  4. --查询不与任何表关联的数据. 
  5. SELECT 1+1; --简单运算 
  6. select 1+2 as 结果 
  7. SELECT newid();--查询一个GUID字符创 
  8. select GETDATE() as 日期 --查询日期 
  9. --可以查询SQLServer版本 
  10. select @@VERSION as SQLServer版本 
  11. --一次查询多个 
  12. select 1+1 结果, GETDATE() as 日期, @@VERSION as 版本, NEWID() as 编号 
  13. --简单的数据查询.HelloWorld级别 
  14. SELECT * FROM T_Employee; 
  15. --只查询需要的列. 
  16. SELECT FNumber FROM T_Employee; 
  17. --给列取别名.As关键字 
  18. SELECT FNumber AS 编号, FName AS 姓名 FROM T_Employee; 
  19. --使用 WHERE 查询符合条件的记录. 
  20. SELECT FName FROM T_Employee WHERE FSalary<5000; 
  21. --对表记录进行排序,默认排序规则是ASC 
  22. SELECT * FROM T_Employee ORDER BY FAge ASC,FSalary DESC
  23. --ORDER BY 子句要放在 WHERE 子句之后. 
  24. SELECT * FROM T_Employee WHERE FAge>23 ORDER BY FAge DESC,FSalary DESC
  25. --WHERE 中可以使用的逻辑运算符:or、and、not、<、>、=、>=、<=、!=、<>等. 
  26. --模糊匹配,首字母未知. 
  27. SELECT * FROM T_Employee WHERE FName LIKE '_arry'
  28. --模糊匹配,前后多个字符未知. 
  29. SELECT * FROM T_Employee WHERE FName LIKE '%n%'
  30. --NULL 表示"不知道",有 NULL 参与的运算结果一般都为 NULL. 
  31. --查询数据是否为 NULL,不能用 = 、!= 或 <>,要用IS关键字 
  32. SELECT * FROM T_Employee WHERE FName IS NULL
  33. SELECT * FROM T_Employee WHERE FName IS NOT NULL
  34. --查询在某个范围内的数据,IN 表示包含于,IN后面是一个集合 
  35. SELECT * FROM T_Employee WHERE FAge IN (23, 25, 28); 
  36. --下面两条查询语句等价。 
  37. SELECT * FROM T_Employee WHERE FAge>=23 AND FAge<=30; 
  38. SELECT * FROM T_Employee WHERE FAge BETWEEN 23 AND 30; 
  39. ----创建一张Employee表,以下几个Demo中会用的这张表中的数据 
  40. ----在SQL管理器中执行下面的SQL语句,在T_Employee表中进行练习 
  41. create table T_Employee(FNumber varchar(20), 
  42. FName varchar(20), 
  43. FAge int
  44. FSalary Numeric(10,2), 
  45. primary key (FNumber) 
  46. insert into T_Employee(FNumber,FName,FAge,FSalary) values('DEV001','Tom',25,8300) 
  47. insert into T_Employee(FNumber,FName,FAge,FSalary) values('DEV002','Jerry',28,2300.83) 
  48. insert into T_Employee(FNumber,FName,FAge,FSalary) values('SALES001','Lucy',25,5000) 
  49. insert into T_Employee(FNumber,FName,FAge,FSalary) values('SALES002','Lily',25,6200) 
  50. insert into T_Employee(FNumber,FName,FAge,FSalary) values('SALES003','Vicky',25,1200) 
  51. insert into T_Employee(FNumber,FName,FAge,FSalary) values('HR001','James',23,2200.88) 
  52. insert into T_Employee(FNumber,FName,FAge,FSalary) values('HR002','Tom',25,5100.36) 
  53. insert into T_Employee(FNumber,FName,FAge,FSalary) values('IT001','Tom',28,3900) 
  54. insert into T_Employee(FNumber,FAge,FSalary) values('IT002',25,3800) 
  55. --开始对T_Employee表进行各种操作 
  56. --检索所有字段 
  57. select * from T_Employee 
  58. --只检索特定字段 
  59. select FName,FAge from T_Employee 
  60. --带过滤条件的检索 
  61. select * from T_Employee 
  62. where FSalary<5000 
  63. --可更改显示列名的关键字as,as—起别名 
  64. select FName as 姓名,FAge as 年龄,FSalary as 薪水 from T_Employee  


www.htsjk.Com true http://www.htsjk.com/shujukujc/18792.html NewsArticle SQL语句相关概念及练习之基础篇(1) 写在前面:最近在上海找工作,前前后后面试了N家单位,发现各个公司对程序员的数据库知识尤其是SQL语句的掌握程度有很高的要求,作为一名光荣...
评论暂时关闭