create table tablename(
columnname1 int,
columnname2 int
mysql:
drop table if exists tablename
oracle:
drop table tablename
注:oracle沒有if exists關鍵字,也沒用類似if exists的sql語法。
mysql:
a. alter table tablename add column columnname1 int;
b. alter table tablename add column columnname1 int, add column columnname2 int;
注:其中關鍵字column可有可無。
oracle:
a. alter table tablename add columnname1 int;
b. alter table tablename add (columnname1 int);
c. alter table tablename add (columnname1 int, columnname2 int);
注:對於a,只有新增單列的時候才可使用,對於新增多列時需要使用c,不能像mysql那樣重複使用add column關鍵字。
mysql:
a. alter table tablename drop column columnname1
b. alter table tablename drop column columnname1, drop column columnname2
注:其中關鍵字column可有可無。
oracle:
a. alter table tablename drop column columnname2
b. alter table tablename drop (columnname1)
c. alter table tablename drop (columnname1,columnname2)
注:對於a,只有刪除單列的時候才可使用,對於刪除多列時需要使用c,不能像mysql那樣重複使用drop column關鍵字。
mysql:
alter table tablename change column columnnameold columnnamenew columntype;
oracle:
alter table tablename rename column columnnameold to columnnamenew;
oracle中,在列有資料的時候,無法修改列型別;沒有資料時可以。
mysql中,無論列是否有資料都可以修改列型別。
但是當有資料是,直接修改列型別都可能對資料造成丟失等,所以一般需要結合具體的業務來對列資料做處理後,再修改列型別型別。所以修改列的型別並非使用sql語句進行一步到位的修改,而是通過以下流程:
a. 新增臨時列
b. 將需要更改的列的值經過型別轉換的驗證後,賦值給臨時列
c. 刪除原有列
d. 將臨時列的列名修改為原有列列名
在整個資料庫內,mysql的索引可以同名,也就是說mysql的索引是表級別的;但是oracle索引不可以同名,也就是說oracle的索引是資料庫級別的。
create index indexname on tablename (columnname);
mysql:
alter table tablename drop index indexname
oracle:
drop index indexname
mysql:
show index from tablename
oracle:
select index_name, table_name, column_name from user_ind_columns where table_name=' tablename '
oracle中空字串''就是null(也就是說,只有null,沒有空字元),而mysql是區分null和''的。
對於使用語句:select * from table1 where user_name <> ''來查詢列user_name不為空(不為null且不為空字元)時,oracle會查不出任何結果,而mysql可以正常執行。這裡mysql之所以可以得到正確結果,還因為比較符號<>會先將列為null的內容進行過濾,然後再比較內容是否為空字串。
這就要求一方面,以後在編寫**的時候,盡量保證不會往資料庫插入空字串''這樣的值,要麼保持有資料,要麼保持為null。另外,對於mysql中已經同時存在null和''時,所有判斷是否為null或者''的地方改為判斷列的長度是否為0。
mysql profiling的使用與sql分析
mysql在5.0.3版本之後新增了profiling來進行效能分析 首先進入資料庫 show profiles mysql預設是關閉的,也就是off 需要設定成1開啟,也就是on,注意設定以後退出視窗之後會還原,要永久生效貌似需要重啟mysql才行 檢視是否開啟 開啟 set profiling ...
mysql的操作語句是 mysql操作SQL語句
二 資料庫操作sql語句 1 顯示伺服器上當前存在什麼資料庫 show databases 2 建立名稱為rewin的資料庫 create database rewin 3 刪除名稱為rewin的資料庫 drop database rewin 4 選擇rewin資料庫 use rewin 三 表操作...
mysql 防止注入 mysql如何防止sql注入
mysql防止sql注入的方法 1 普通使用者與系統管理員使用者的許可權要嚴格地區分開 2 強迫使用者使用引數化語句 3 盡量使用sql server資料庫自帶的安全引數 4 對使用者輸入的內容進行驗證。sql injection攻擊具有很大的危害,攻擊者可以利用它讀取 修改或者刪除資料庫內的資料,...