SQL语句

网址:amzoo.cn 发布时间:2013/7/1 来源:广州扬帆科技网 人气: 【
大 中 小】
SELECT * FROM health_news where DATENAME(dw, addtime) in(’星期一’,’星期二’)——程民
Select * from cDate where CountDate>=#02/04/2007# and CountDate <=#02/10/2007# order by CountDate desc
SELECT * FROM health_news where month(addtime)=month(getdate()) and day(addtime)=day(getdate())
SELECT * FROM health_news where dateprat(WEEKDAY,addtime)——20070205
==========================
truncate table yy114_hits ——20070108
==========================
将table2表中的信息追加到table1
insert into table1(a,b,c)
select d,e,f from table2 where ... 于20061016晚
设置类型为datatime,然后在这个字段的公式里写上:GETUTCDATE() 小写1)getutcdate()或2)getdate()
而在ACCESS则是Now()
4.2数据定义命令
4.2.1建立数据库:
创建学费管理数据库
Create Database xfgl; (Create Database <数据库名>)
4.2.2建立数据表:
Create Table jbqk(
number char(8)not null,
name char(8)not null,
sex char(2)not null,
birthday datetime,
department char(12));
Create Table <表名>(<列名1><数据库名>[not null],<列名2><数据库名>[ not null],...);
4.2.3数据表的修改:
4.2.3.1在jbqk表中添加score列:
Alter Table jbqk Add score decimal(3,0);(alter table <表名> add 列名 数据库类型;)
4.2.3.2在jbqk表中删除score列:
Alter Table jbqk Drop Column score;(alter table <表名> drop column列名;)
4.2.4数据表删除格式:
Drop Table course;(drop table <表名>;)
4.3数据查询语言
查询语句格式: Select [All(*) | Distinct]<目标列表达式>[,<目标列表达式>]...
From <基本表名或视图名>[,<基本表名或视图名>]...
[Where<条件表达式1>]
[Group by<列名1>[having<条件表达式>]]
[Order by<列名2>[asc | desc]];
列表达式的一些常用函数如下:
# count(*):统计记录条数。
# count(列名):统计一列值的个数。
# sum(列名):计算某一数值型列的值的总和。
# avg(列名):计算某一数值型列的值的平均值。
# max(列名):计算某一数值型列的值的最大值。
# min(列名):计算某一数值型列的值的最小值。
distinct参数:表示在结果集中,查询出的内容相同的记录只留下一条。
4.3.2单表查询
4.3.2.1选择表中的列
例1 选择jbqk表中的所有列:SELECT * FROM jbqk;
例2 选择jbqk表中的number、name、department列:SELECT number,name,department FROM jbqk;
例3 选择jbqk表中所有系department的名字,去掉重复行:SELECT distinct department FROM jbqk;
4.3.2.2选择表中的记录
例如 选择jbqk中所有计算机系的学生:
select * from jbqk where department=’计算机系’;
4.3.2.3条件表达式的构成
例1 查询考试成绩不及格学生的学号:
select distinct number from sle_course where score<60;
例2 查询学时在60-70之间的课程名称和学时:
select c_name,period from course where period not between 60 AND 70;
例3 假设当前的系统年份为2004,查询计算机系、电子系学生的学号、姓名、年龄:
SELECT number,name,2004-year(birthday) FROM jbqk WHERE department IN(’计算机系’,’电子系’);
例4 查询所有姓“王”的学生信息:
SELECT * FROM jbqk WHERE name LIKE ’王%’;
# LIKE前的列名必须是字符串类型
# 可以使用通配符:_(下划线)表示任一单个字符;%(百分号)表示任意长度字符。
4.3.2.4查询中集函数的使用
例1 查询学生总人数:
SELECT COUNT(*) FROM jbqk;
例2 计算01513学生的平均成绩:
SELECT AVG(score) FROM sle_course WHERE number=0151301;
4.3.2.5查询结果的分组与排序
略
4.3.3多表查询
SELECT jbqk.number,jbqk.name,course.c_name,sle_course,score_teacher.t_name FROM jbqk,course,
sle_course,teacher WHERE jbqk.number=sle_course.number and course.t_number=teacher.t_number;
4.3.4嵌套查询
略
4.4数据操纵语言
4.4.1插入数据格式:insert into <表名>[(<列名1>,<列名2>,...)] values(<值1>,<值2>,<...>,...)
例1 向学生jbqk表中插入一条记录:
INSERT INTO jbqk VALUES(’0151301’,’樊建波’,’男’,’1982-01-01’,’计算机系’,99);
例2 向教师表teacher中加入一条记录
INSERT INTO teacher VALUES(’T509’,’覃刚’,’教授’);
4.4.2删除数据格式:delect from <表名> where <条件>;
例如 删除jbqk表中学号为“0151301”的学生:delete from jbqk where xuhao=0151301
4.4.3修改数据格式:updata <表名> set <列名1> =<表达式1><列名2> =<表达式2>...where <条件>;
例1 将课程表course中所有课程的学时减少5学时:
UPDATE course SET period =period + 5;
例2 将jbqk表中“樊建波”同学的所在系该为“计算机科学与工程系”:
UPDATE jbqk SET department =’计算机科学与工程系’ WHERE name = ’樊建波’;
4.6数据控制
4.6.1授权GRANT语句格式:
例1 将查询jbqk表的权限授予用户sa:
GRANT SELECT ON TABLE jbqk TO sa;
例2 将在sle_course表上进行UPDATE的权限授予用户sl,并允许他传播该权限:
GRANT SELECT ON TABLE sle_course TO sl WITH GRANT OPTION;
例3 DBA将在数据库pubs中建立基本表的权限授予s3:
GRANT CREATTAB ON TABLEBASE pubs TO s3;
4.6.2回收权限:
例1 将用户sa查询jbqk表的权限收回:
REVOKE SELECT ON TABLE jbqk FROM sa;
例2 将用户s2更新sle_course表的权限收回,同时s2的更新权也被收回:
REVOKE UPDATE ON TABLE sle_course FROM s2;