一、主鍵自增長:
1) oracle:
使用序列實現,比如創建序列,起點是1000,步進是1:
create sequence myseq increment by 1 start with 1000
增加記錄:
insert into student(stuId,stuName) values(myseq.nextval,'peter')
2) mysql:
在建表時指定主鍵自增長
create table student(stuId int auto_increment primary key,stuName char(20))
增加記錄:
insert into student(stuName) values ('peter')
二、命令行工具:
Oracle 的官方命令行工具是SQLPlus
mysql 的命令行工具是mysql:
三、關於用戶的概念:
1)Oracle
在Oracle中有一個用戶的概念,用來登錄到數據庫,比如openlab用戶。用戶擁有一定的權限,可以創建表、視圖等。用戶名下的數據表,視圖等對象的集合叫Schema。
數據庫安裝好後。建立的默認用戶是:sys.system.scott。
創建用戶:create user 用戶名 identified by 密碼(一般是DBA來創建,普通用戶沒有創建用戶的權限)
在SQLPLus工具中切換用戶:conn 用戶名/密碼@主機字符串
查看當前用戶:show user
顯示所有的用戶:select * from all_users
顯示用戶下的表:select * from tab
2) mysql
mysql中對應於oracle中用戶的概念是database。登陸後要先建立database,才能建表。默認創建的database是mysql , test。
創建數據庫:create databases 庫名
切換用戶:use database 庫名
查看當前用戶:connect
顯示所有數據庫:show databases
顯示用戶下的表:show tables
四、假設有外部腳本文件 C:\script.sql,執行外部腳本文件的方式:
1)Oracle:
@ script.sql
2) mysql:
source script.sql
五、Sql語句中的表達式:
1)Oracle:
select 12 * 10 from dual
2) mysql:
select 12 * 10
六、取系統時間
1)Oracle:
select sysdate from dual
2) mysql:
select now() select sysdate() select curdate() select select current_date select curtime() select current_time
七、日期格式轉換:
1)Oracle:
select to_char(sysdate,'yyyy-mm-dd') from dual; select to_char(sysdate,'hh24-mi-ss') from dual;
2) mysql:
select date_format(now(),'%Y-%m-%d')
select time_format(now(),'%H-%i-%S')
1、直接在數據庫 用sql語句就把 日期時間處理好
2、Java代碼裡 把日期處理好(框架)
3、頁面 用JavaScript代碼 處理好
4、標簽(C S)
八、日期函數:6個月以後
1)Oracle:
select add_months(sysdate,6) from dual
2) mysql:
select date_add(now(),interval 6 month)
九、字符函數:從‘helloworld’中截取hello
1)Oracle:
select substr('helloworld',1,5) from dual;
2) mysql:
select substring('helloworld',1,5)
十、修改表名:
1)Oracle:
rename oldname to newname
也可以用來修改各種對象名稱
2) mysql:
alter table oldname to newname
十一、關於組函數
select deptno,count(*) from emp
這種語法,在mysql中是正常的,而在oracle中是會報錯的,select列表中的deptno列必須跟在group by 短語後:
select deptno,count(*) from emp group by deptno
十二、分頁語句
1)Oracle:
select * from (select t.*,rownum rn from (select * from emp) t where rownum < 11) where rn > 5
查到的是第6~10條記錄
2) mysql:
select * from emp limit 5,5
查到的是第6~10條記錄
十三、計算每個員工的年薪:工資 * 12 + 獎金 * 12
select ename,sal*12 + nvl(comm,0)*12 from emp
nvl :單行函數,如果為空,返回0
Oracle : nvl
Mysql : ifnull
Sqlserver : isnull