第一篇:SQL基本操作语句笔记
一、SQL基本操作语句(DML):Insert,Select,Update,Delete1、INSERT语句:将一行记录插入到指定的一个表中。
1.1语法:
INSERTINTOtable[(column { ,column})]ALUES(columnvalue [{,columnvalue}])
1.2举例:
1.2.1、INSERTINTOEMPLOYEESVALUES('Smith','John','1980-06-10','Los Angles',16,45000);
1.3注意事项:
1.3.1、系统将试着将数值填入到相应的列中,按照创建表时定义的顺序排列。
1.3.2、VALUE子句和可选的列名列表中必须使用圆括号。
1.3.3、未列出的列中将自动填入缺省值,如果没有设置缺省值则填入NULL。
1.3.4、所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。
1.3.5、输入文字值时要使用单引号,双引号用来封装限界标识符。
2、SELECT语句:可以从一个或多个表中选取特定的行和列。
2.1语法:
SELECT[DISTINCT](column [{, columns}])| * FROM table [ {, table}][ORDER BY column [ASC] | DESC [ {, column [ASC] | DESC }]]WHEREpredicate [ { logical-connector predicate } ]
2.2举例:
2.2.1SELECTBRANCH_OFFICEFROMEMPLOYEES 最简单的语句
2.2.2SELECTBRANCH_OFFICEFROMEMPLOYEES 消除结果中的重复行的语句
2.2.3SELECTBRANCH_OFFICEFROMEMPLOYEESORDER BY BRANCH_OFFICE消除结果中重复行并按照升序排列,降序用关键字DESC
2.2.4SELECTFROMEMPLOYEES 选择表中所有数据可用*号
2.3定义选择标准:SELECTcolumnsFROMtables[WHEREpredicates]
举例:SELECT * FROMEMPLOYEESWHERELAST_NAME = 'Jones' 查询所有姓为Jones的职员 使用最多的六种比较:等于 =,不等于 <>,小于 <,大于 >,小于或等于 <=,大于或等于 >=
2.3.1逻辑连接符:为了进一步定义一个WHERE子句,可以使用逻辑连接符AND,OR和NOT,断言可以与其他的断言嵌套使用。
例1:为了只得到职员Davy Jones的记录,用户可以输入如下语句:SELECT * FROMEMPLOYEESWHERELAST_NAME = 'Jones'ANDFIRST_NAME = 'Davy'
例2:如果用户需要定义一个SELECT语句来使得当其中任何一项成立就满足条件时,可以使用OR连接符:SELECT * FROMEMPLOYEESWHERELAST_NAME = 'Jones'ORLAST_NAME = 'Smith'
例3:如果想要查看除了Boston办事处的职员以外的其他所有职员的信息时,可以进行如下的查询:SELECT * FROMEMPLOYEESWHERENOT(BRANCH_OFFICE = 'Boston')
3、UPDATE语句:在已知的表中对现有的行进行修改。
3.1语法:
UPDATE table SET column = value [{,column = value}][ WHERE predicate [ { logical-connector predicate}]]
3.2举例:
3.2.1UPDATEEMPLOYEESSETGRADE = 16, SALARY = 40000WHEREFIRST_NAME = 'Indiana' ANDLAST_NAME = 'Jones'
4、DELETE语句:用来删除已知表中的行。
4.1语法:DELETEFROMtable[WHERE predicate [ { logical-connector predicate} ] ]
4.2举例:DELETEFROMEMPLOYEESWHEREBRANCH_OFFICE = 'Los Angeles'
第二篇:基本sql语句
典型SQL语句汇总
Sys用户是超级用户,具有sysdba的角色,密码是:change_on_install。System用户是管理操作员,具有sysoper的角色,密码是:manager。
普通登录用户:
用户名:scott,密码:tiger
用户名:sys,密码:change_on_install
用户名:system,密码:manager
用户名:sysman,密码:oem_temp
1.创建用户:create user
2.给用户修改密码:alter user 用户名 identified by 密码
3.删除用户:drop user 或者drop user 用户名[cascade]
4.授权操作
1)授权连接:grant connect to xiaoming
2)连接数据库:conn xiaoming/m1234
3)授权小明对emp表的选择操作:grant select on emp to xiaoming
4)授权小明对emp表的更新操作:grant update on emp to xiaoming
5)授权小明对emp表的所有操作:grant all on emp to xiaoming
6)对象权限授权:grant select on emp to xiaoming with grant option
7)系统权限授权:grant connect to xiaoming with admin option
5.建表
表1:Create table student(xh number(4),表2:create table classes(Xm varchar2(20),classId number(2),Sex char(2),className varchar2(40),Birthday date,);
Sal number(7,2));
6.对上述两张表的操作:
1)添加一个字段:alter table student add(classId number(2))
2)修改字段长度:alter table student modify(xm varchar2(30))
3)删除一个字段:alter table student drop column sal
4)修改表的名字:rename student to stu
5)删除表:drop table student
6)改变日期的格式:alter session set nls_date_format=‟yyyy_mm_dd‟
7)添加数据:insert into student values(„A001‟,‟张三‟,‟男‟,‟11-12月
-1997‟,‟113.5‟,10)或者insert into student(xh,xm,sex,birthday)values(„1‟,‟aa‟,‟女‟,null)
8)修改数据:update student set sex=‟女‟where xh=‟A001‟,修改多个字段:update student set sal=sal/2,classId=3 where sex=‟男‟
9)删除数据:
Delete from student;--删除表
Drop table student;--删除表的结构和数据
Delete from student where sal=2000;--删除表中的数据
Truncate table student;--删除表中的所有记录,表结构还在,无法找回删除的记录,速度快
7.表的查询
Select ename,sal,job from emp
Select sal*13+nvl(comm,0)*13 “年工资”,ename from emp
Select ename,sal from emp where sal>=2000 and sal<=2500
Select distinct ename,deptno from emp;--取消重复行
Select * from emp where sal>(select avg(sal)from emp)
8.如何使用like操作符:%:任意0到多个字符,_:表示任意单个字符
Select ename,sal from emp where ename like „s%‟
Select ename,sal from emp where ename like „_s%‟
9.where条件中in的使用:
Select * from emp where empno in(7844,7566)
Select * from emp where mgr is null
10.order by的使用
Select * from emp order by deptno asc,sal desc,hiredate desc;--排序默认是asc
11.group by用于对查询结果进行分组统计。
Having用于限制分组显示结果。
Select avg(sal),deptno from emp
group by deptno
having avg(sal)<2000
12.创建存储过程
1)先创建一个简单的表:
Create table mytest(name varchar2(30),password varchar2(30))
2)创建过程:
过程1:
create procedure sp_pro1 is
begin
insert into mytest(„EE‟,‟m1234‟);
end;
过程2:
create or replace procedure sp_pro2 is
begin
delete from mytest where name=‟EE‟;
end;
select * from rh_blood where userid='K999998264' and f_datetime_device between TO_DATE('2014-01-01 00:00:01','yyyy-mm-dd hh24:mi:ss')and
TO_DATE('2014-01-31 23:23:59','yyyy-mm-dd hh24:mi:ss');
第三篇:SQL查询语句学习笔记
问题描述:
为管理岗位业务培训信息,建立3个表:
S(SID,SNAME,SDEPT,SEX,AGE)SID,SNAME,SDEPT,SEX,AGE 分别代表学号、学员姓名、所属部门、学员性别、学员年龄
C(CID,CNAME)CID,CNAME 分别代表课程编号、课程名称
SC(SID,CID,GRADE)SID,CID,GRADE 分别代表学号、所选修的课程编号、学习成绩
表结构与数据见Data4SqlTest1.sql
要求实现如下5个处理:
1.使用标准SQL嵌套语句查询选修课程名称为“英语”的学员学号和姓名
2.使用标准SQL Join语句查询选修课程名称为“英语”的学员学号和姓名
3.使用标准SQL语句查询不选修“数学”课程的学员姓名和所属单位
4.使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
5.查询选修了课程的学员人数
6.查询选修课程超过3门的学员学号和所属单位
1.使用标准SQL嵌套语句查询选修课程名称为“英语”的学员学号和姓名 Java代码
1.SELECT SNAME,SDEPT FROM S
2.WHERE SID IN(3.SELECT SID FROM C,SC
4.WHERE C.CID=SC.CID
5.AND CNAME='英语')
2.使用标准SQL Join语句查询选修课程名称为“英语”的学员学号和姓名 Java代码
1.SELECT SNAME,SDEPT FROM S
2.JOIN SC ON S.SID=SC.SID JOIN C ON C.CID=SC.CID
3.WHERE CNAME='英语'
3.使用标准SQL语句查询不选修“数学”课程的学员姓名和所属单位 Java代码
1.select SNAME,SDEPT
2.from S
3.where SID not in(4.select SC.SID
5.from SC
6.right join(select S.SID,C.CID from S join C)as T on SC.SID=T.SID
and SC.CID=T.CID join C on T.CID=C.CID
7.where C.CNAME='数学' and SC.SID is not null
8.)
或者是:
Java代码
1.SELECT SNAME,SDEPT FROM S
2.WHERE SID NOT IN(3.SELECT SID FROM SC
4.WHERE CID IN(SELECT CID FROM C WHERE CNAME='数学'))
4.使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位 Java代码
1.select SNAME,SDEPT
2.from S
3.where SID in
4.(select S.SID
5.from S
6.inner join SC on S.SID=SC.SID
7.group by S.SID
8.having count(CID)=(select count(1)from C)
9.)
5.查询选修了课程的学员人数
Java代码
1.SELECT 学员人数=COUNT(DISTINCT(SID))FROM SC
6.查询选修课程超过3门的学员学号和所属单位
Java代码
1.SELECT SNAME,SDEPT FROM S
2.WHERE SID IN(3.SELECT SID FROM SC
4.GROUP BY SID
5.HAVING COUNT(DISTINCT(CID))>3)
第四篇:SQL语言基本语句介绍
SQL语言基本语句介绍
表的建立
关系数据库的主要特点之一就是用表的方式组织数据。表是SQL语言存放数据、查找数据以及更新数据的基本数据结构。在SQL语言中,表有严格的定义,它是一种二维表,对于这种表有如下规定:
1)每一张表都有一个名字,通常称为表名或关系名。表名必须以字母开头,最大长度为30个字符。
2)一张表可以由若干列组成,列名唯一,列名也称作属性名。
3)表中的一行称为一个元组,它相当于一条记录。
4)同一列的数据必须具有相同的数据类型。
5)表中的每一个列值必须是不可分割的基本数据项。
注意:当用户需要新的数据结构或表存放数据时,首先要生成一个表。
语法:
CREATE TABLE 表名 [表约束]
(列名1 数据类型 [缺省值1,列约束1]
(列名2 数据类型 [缺省值2,列约束2]
…
列名n 数据类型 [缺省值n,列约束n]
[TABLESPACE 表空间名称]
[STORAGE(存贮的子句)]
[ENABLE 约束名]
[DISABLE 约束名]
插入数据
当一个表新建成时,它里面没有数据,通过向表中扦入数据,建成表的实例。
语句句法:
INSERT INTO 表名[(列名1,…)]
VALUES(值1,值2,…,值n)
[子查询];
假设有一张表Student如下所示:
NO NAME AGE
1001 A 12
1002 B 14
将新学生E增加到上表中,并按照表的结构将信息添加完整,需要如下语句:
INSERT INTO STUDENT VALUSE(1003, 'E',12);
修改数据
对表中已有数据进行修改,语句句法:
UPDATE 表名SET 列名1=表达式1,列名2=表达式2,…
WHERE 条件;
例如:对下表Student
NO NAME AGE
1001 A 12
1002 B 14
将B的年纪改为18;应该执行以下语句:
UPDATE STUDENT SET AGE=18 WHERE NAME='B';
删除数据
删除表中已有数据,不能删除不存在的数据。
语句句法:
DELETE FROM 表名 WHERE 条件;
例如:
对下面Student表进行删除,要删除其中年纪为12的学生;
NO NAME AGE
1001 A 12
1002 B 14
DELETE FROM STUDENT WHERE AGE=12;
表结构的修改
在已存在的表中增加新列,语句句法:
ALTER TABLE 表名 ADD(新列名 数据类型(长度));
例如:
ALTER TABLE STUDENT ADD(DEPARTMENT CHAR(8));
b.增加已有列的数据类型。
例如:
ALTER TABLE STUDENT MODIFY(NAME VARCHAR2(25));
表的删除
将已经存在的表删除,语句句法:
DROP TABLE表名;
例如:
DROP TABLE EMP;
查询语句
SELECT命令的语法为:
SELECT [DISTINCT|ALL] {*|模式名.] {表名|视图名|
快照名].*…| {表达式[列别名]…} } [, [模式名.] {表名|
视图名|}.*…| 表达式[列别名] ]…
FROM [模式名.] {表名|视图名|快照名} [@数据库链名] [表别名]
[, [模式名.] {表名|视图名|快照名} [@数据库链名]
[表别名] ]…
[WHERE条件]
[START WITH条件 CONNECT BY 条件]
[GROUP BY表达式[,表达式] …[HAVING条件]
[UNION|UNION ALL |INTERSECT|MINUS]SELECT命令
[ORDER BY{表达式|位置} [ASC|DESC] [, {表达式|位置[ASC|DESC]}]…]
例如:对于STUDENT表:
NO NAME AGE
1001 AE 12
1002 BT 14
(1)查询年纪为12的学生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE=12;
(2)查询年纪在12至16岁之间的学生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE BETWEEN 12 AND 16;
(3)查询年纪不在12至16岁之间的学生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE NOT BETWEEN 12 AND 16;
(4)查询所有姓名以A开头的学生的姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE NAME LIKE 'A%';
(5)列出所有学生年纪的和,年纪的平均值,最大值,最小值,最大值与最小值之间的差值;
SELECT AVG(AGE), SUM(AGE), MAX(AGE), MIN(AGE), MAX(AGE)-MIN(AGE);
(6)将所有学生按学号顺序升序排列;
SELECT * FROM STUDENT ORDER BY NO DESC;
(7)将所有学生按学号顺序升序排列;
SELECT * FROM STUDENT ORDER BY NO ASC;
第五篇:几个简单的基本的sql语句
几个简单的基本的sql语句
(1)数据记录筛选:
sql=“select * from 数据表 where 字段名=字段值 order by 字段名
[desc]”
sql=“select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]”
sql=“select top 10 * from 数据表 where 字段名 order by 字段名
[desc]”
sql=“select * from 数据表 where 字段名 in('值1','值2','值3')”
sql=“select * from 数据表 where 字段名 between 值1 and 值2”
(2)更新数据记录:
sql=“update 数据表 set 字段名=字段值 where 条件表达式”
sql=“update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式”
(3)删除数据记录:
sql=“delete from 数据表 where 条件表达式”
sql=“delete from 数据表”(将数据表所有记录删除)
(4)添加数据记录:
sql=“insert into 数据表(字段1,字段2,字段3 …)values(值1,值2,值3 …)”
sql=“insert into 目标数据表 select * from 源数据表”(把源数据表的记录添加到目标数据表)
(5)数据记录统计函数:
AVG(字段名)得出一个表格栏平均值
COUNT(*¦字段名)对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名)取得一个表格栏最大的值
MIN(字段名)取得一个表格栏最小的值
SUM(字段名)把数据栏的值相加
引用以上函数的方法:
sql=“select sum(字段名)as 别名 from 数据表 where 条件表达式”set rs=conn.excute(sql)
用 rs(“别名”)获取统计的值,其它函数运用同上。
查询去除重复值:select distinct * from table1
(5)数据表的建立和删除:
CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度)……)