SQL
SQL
SQL是结构化查询语言(structured query language)。可提供以下
命令:
查询数据
在
中插入、修改和删除
建立、修改和删除数据对象
控制对数据和数据对象的存取
保证数据库具有一致性和完整性
一、select 子句(例子数据库为:车队管理数据库)
<一> 简单查询:选择列表、from 子句、where子句
查询结果排序:order by (asc/desc)
注:ntext/text/image不能排序
变换列名:新列名=列名;列名 as 新列名
删除或保留重复行:all/distinct
限制返回的行数:top n [precent]:看过正面的截图就
会明白的^--^
SQL
<二> from 子句:对象为表或视图,最多为 256个表或视图,
以逗号分隔。
变换表名或视图名:表名 as 别名;表名 别名
注:select 不仅可以从表或视图中检索数据,还能从其他的查询语言的返回集
合中查询数据。
<三> where 子句:主要过滤掉不需要的数据行
比较:> < >= <= <> !> !< =
范围运算符:between…and , not between…and
SQL
列表运算符:in(1,2…) not in (1,2…)
模式匹配符:like , not like
可用于 char, varchar, text, ntext, datetime, smalldatetime 等。
%百分号 任意类型和长度(含 0 个)的字符。注:若为中文,则用%%
_下划线 单个任意字符,
[ ]方括号 指定一个字符、字符串或范围,必须选择其中之一
[^] 不是[ ]中的
Like ‘%[ % ]%’:表示查询记录中有%的记录
空值判断符:is null, is not null
逻辑运算符:not, and , or。注:优先级降低
Union查询
二、连接查询(业务数据库)
通过连接运算符可以实现多个表查询。连接是关系数据库模
型的主要特征,也是区别于其它类型数据库管理系统的一个标志。
连接可以在 from 子句中或 where 子句中建立。两种方法都
可以使用,但使用 from 的优点是:与 where 子句的条件相区分
开来。
<一> 内连接(inner join)注:where条件,having条件
等值连接
不等连接
自然连接
SQL
SQL
<二> 外连接
左外(left join):另加左表的记录
SQL
右外 (right join):另加右表的记录
SQL
全外 (full join):另加两表的记录
SQL
<三> 交叉连接(cross join):不带 where子句,返回被连接的
两 个 表 所 有 符 合 条 件 数 据 行 的 笛 卡 尔 积 。
解析:业务员(表)中女性为 7名,订单表中大于 2000 的订单
有 7张。则共 49条记录。
三、记录的插入、删除和更新
<一> 插入数据:insert
insert into {table name | view name} [( column_list )]
{default values | values_list | select_statement}
<二> 删除数据:delete 注:删除表用 drop
SQL
delete [from] {table_name | view_name } [where clause]
注:删除整个表中的记录用:truncate table语句
<三> 更新记录:update
update {table_name | view_name }
set {table_name | view_name } [where clause]
{variable_and_column_list}
[where clause]
<四> 用 select 创建记录和表:select 和 insert 的结合使用。
insert [into] {table_name | view_name}
select values_list
from table_name
[where clause]
四、字段属性:空值、缺省值、标识值
<一> 空值
大多数字段可以接受空值,即 null
空值和零是不同的
禁止空值有其独特的作用
<二> 缺省值:可以理解为在没有输入的情况下的默认值。
例如:为统计某班学生信息,设计表:学生籍贯(国家,
城市,街道,邮政编码),因大多学生中国的,则可将‘中
国’作为国家的缺省值。
<三> 标识值:每个表可以有一个也只能有一个标识字段。
五、SQL常用函数
SQL
SQL针对不同类型的数据处理提供了几种类型的函数,有字符处
理函数、算术运算函数以及时间处理函数等。
<一> 字符处理函数:
<二> 算术运算函数:
<三> 平均值函数:
函数表达式(部分略去参数列表) 参数或功能
abs 绝对值
sign 测试参数正负号:0,1,-1
ceiling >=表达式的最小整数
floor <=表达式的最小整数
round(参数,精度) 以精度为数度的四舍五入值
cos 弧度余弦
acos float 以弧度表示的余弦
sin 弧度正切
asin float 以弧度表示的正切
tan 弧度正切
atan float 以弧度表示的正切
exp 指数
log 自然对数
sqrt 平方根
pi 返回值为 π
rand 得到 0~1 随机浮点数
SQL
<四>日期时间函数:
函数表达式 参数或功能
day 日期值
month 月份值
year 年份值
dateadd 指定日期上加上参数的新日期
dateiff
(datepart,date1,date2)
返回两个日期的差距值,可正
可负
datename(datepart,date) 以字符串形式返回指定部分
datepart(datepart,date) 以正数形式返回指定部分
getdate 以 datetime的缺省格式,返回
系统当前的日期和时间
day,month,year 的用法
注意:为了使查询结果较少,以便更好地截图显示,下面全部截图中
加入了 where 条件
SQL
month和 year 同理,这里就不举例咯
注:dateadd(week,1,日期)与 dateadd(day,7,日期)结果一样。
month同理:dateadd(month,12,日期)与 dateadd(year,1,日期)结果一样。
SQL
对于 1 年和 365 天貌似是成立的(请看后面详解)
但是对于 1 月和 30 天,要考虑到:
1.3.5.7.8.10.12 月永为 31 天
4.6.9.11 月永为 30 天
闰年 2 月 29 天,平年 2 月 28 天
因此,闰年 1 年为:366 天,平年 1 年为:365
SQL
五:由于时间仓促,先写到这里,之后的部分我会赶时间写出来,
如有需要,请联系:964408574@qq.com。
如有需要上文用到的数据库,请联系我。