第一篇: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(長度)……)