黑马程序员——Sql基础知识总结

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

1、创建数据库

CREATE DATABASE  数据库名 
2、删除数据库
drop database 数据库名
3、创建数据表
create table 表名
(字段名1 字段类型,定段名2 字段类型,约束定义1,约束定义2,)
4.修改数据表:  1)添加字段:alter table 待修改表名 add 字段名 字段类型  2)删除字段:alter table 待修改表名 drop 待删除的字段名
5.删除数据表:  drop table 待删除的表名

1。数据的插入:insert into 待插入的表名 (字段1,字段2,字段3...) values ('值1','值2','值3'...);
  Example:insert into Food_Category(categoryName,intro) values ('谷类','粮食');
  注意:1)values后的字段值如果含有中文的话,则最好在字段前加上"N"字母,使其按unicode进行编码,防止插入后的数据乱码.
     2)values后的字段值,如果是字符和字符串类型则将值用单引号括起来,如果是整型的则不需要单引号,直接写出即可.

2。数据的删除:delete from 表名 where 条件;
 Example:delete from Food_Category where Id=1;
 注意:a>delete和drop table的区别,delete仅仅是删除表中的数据,而表的结构仍然存在,drop table不仅删除表中的数据,而且还将表的结构也删除.
    b>where后可跟多个条件,并用逻辑运算符相连,如and和or.

3。数据的更新:update 表名 set 字段名='值' where 条件;
  Example:update Food_Category set categoryName=调料 where Id=1;
4。数据的查询:select 字段名 from 表名 where 条件;
  Example:select * from Food_Category where categoryName='调料';
 注意:1)字段名可以以通配符"*"来代替,表示所有字段.
    2)where后可跟多个条件,并用逻辑运算符相连,如and和or.


5.增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
6.添加主键: Alter table tabname add primary key(col) 
删除主键: Alter table tabname drop primary key(col) 
7.创建索引:create [unique] index idxname on tabname(col….) 
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
8.创建视图:create view viewname as select statement 
删除视图:drop view viewname
9:几个常用基本sql语句
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
10、几个高级查询运算词
1) UNION 运算符 
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 
2) EXCEPT 运算符 
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 
3) INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 
注:使用运算词的几个查询结果行必须是一致的。 
11.说明:使用外连接 
1)left (outer) join: 
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。 
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
2)right (outer) join: 
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 
3)full/cross (outer) join: 
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
12、分组:Group by:
一张表,一旦分组 完成后,查询后只能得到组相关的信息。
组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准)
在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据
在selecte统计函数中的字段,不能和普通的字段放在一起;
13.Having语句:
1)在Where中不能使用聚合函数,必须使用Having,Having要位于Group By之后,
 select FAge,Count(*) AS 人数 from T_Employee group by FAge Having Count(*)>1;
2)注意Having中不能使用未参与分组的列,Having不能替代where。作用不一样,Having是对组后的信息进行过滤的。


14.对数据库进行操作:
分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后接表明,附加需要完整的路径名
15.如何修改数据库的名称:
sp_renamedb 'old_name', 'new_name'


16.数字函数:
 1)abs():求绝对值。select ABS(-45) 45
 2)ceiling():舍入到最大整数。CEILING(-3.14)  -3。
 3)floor():舍入到最小整数。FLOOR(-3.14)  -4
 4)round():四舍五入。舍入到离我半径最近的数。注意:还有一个带两个参数的ROUND()函数,其中第二个参数代表精度。
17.字符串函数:   ROUND(3.1415926,3) 3.14
 1)len():计算字符串长度。select LEN(name)4
 2)lower()、UPPER():转小写,大写。
 3)ltrim():字符串左侧的空格去掉。
 4)rtrim():字符串右侧的空格去掉。
 5)ltrim(rtrim()):字符串两侧的空格去掉。
 6)substring(string,start_position,length):
  参数string为主字符串,start_position为子字符串在主字符串中的起始位置,length为子字符串的最大长度。
  select substring('yiuyi',2,3);
18.日期函数:
 1)getdate():取得当前日期时间。
 2)dateadd(datepart,number,date):计算增加以后的日期数。参数date为待计算的日期;参数date为增量;参数datepart为计量单位。
  dateadd(DAY,3,date)为计算日期date的3天后的日期;
  dateadd(MONTH,-8,date)为计算日期date的8个月之前的日期。
 3)datediff(datepart,startdate,enddate):计算两个日期之间的差额,datepart为计量单位,可取值参考DATEADD。
 4)datepart(datepart,date):返回一个日期的特定部分。
19.类型转换函数:
 1)cast(expression AS data_type):expression将要被转换的表达式,data_type将要被转换成的类型。
 2)convert(data_type,expression)
20.空值处理函数:
 1)isnull(expression,value):如果expression不为空则返回expression,否则返回value。如:

  select isnull(FName,'民资') as 姓名 from Table

   ---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------详细请查看:http://net.itheima.com/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值