① mysql增加的sql語言元素
MYSQL 和 SQL 語法對照
一、資料定義 ddl(data definition language)
資料定語言是指對資料的格式和形態下定義的語言,他是每個資料庫要建立時候時首先要面對的,舉凡資料分哪些表格關系、表格內的有什麽欄位主鍵、表格和表格之間互相參考的關系等等,都是在開始的時候所必須規劃好的。
1、建表格:
create table table_name(
column1 datatype [not null] [not null primary key],
column2 datatype [not null],
...);
說明:
datatype --是資料的格式,詳見表。
nut null --可不可以允許資料有空的(尚未有資料填入)。
primary key --是本表的主鍵。
2、更改表格
alter table table_name
add column column_name datatype
說明:增加一個欄位(沒有刪除某個欄位的語法。
alter table table_name
add primary key (column_name)
說明:更改表得的定義把某個欄位設為主鍵。
alter table table_name
drop primary key (column_name)
說明:把主鍵的定義刪除。
3、建立索引
create index index_name on table_name (column_name)
說明:對某個表格的欄位建立索引以增加查詢時的速度。
4、刪除
drop table_name
drop index_name
二、資料操作 dml (data manipulation language)
資料定義好之後接下來的就是資料的操作。資料的操作不外乎增加資料(insert)、查詢資料(query)、更改資料(update) 、刪除資料(delete)四種模式,以下分 別介紹他們的語法:
1、增加資料:
insert into table_name (column1,column2,...)
values ( value1,value2, ...)
說明:
1.若沒有指定column 系統則會按表格內的欄位順序填入資料。
2.欄位的資料形態和所填入的資料必須吻合。
3.table_name 也可以是景觀 view_name。
insert into table_name (column1,column2,...)
select columnx,columny,... from another_table
說明:也可以經過一個子查詢(subquery)把別的表格的資料填入。
2、查詢資料:
基本查詢
select column1,columns2,...
from table_name
說明:把table_name 的特定欄位資料全部列出來
select *
from table_name
where column1 = xxx
[and column2 > yyy] [or column3 <> zzz]
說明:
1.\'*\'表示全部的欄位都列出來。
2.where 之後是接條件式,把符合條件的資料列出來。
select column1,column2
from table_name
order by column2 [desc]
說明:order by 是指定以某個欄位做排序,[desc]是指從大到小排列,若沒有指明,則是從小到大
排列
組合查詢
組合查詢是指所查詢得資料來源並不只有單一的表格,而是聯合一個以上的表格才能夠得到結果的。
select *
from table1,table2
where table1.colum1=table2.column1
說明:
1.查詢兩個表格中其中 column1 值相同的資料。
2.當然兩個表格相互比較的欄位,其資料形態必須相同。
3.一個復雜的查詢其動用到的表格可能會很多個。
整合性的查詢:
select count (*)
from table_name
where column_name = xxx
說明:
查詢符合條件的資料共有幾筆。
select sum(column1)
from table_name
說明:
1.計算出總和,所選的欄位必須是可數的數字形態。
2.除此以外還有 avg() 是計算平均、max()、min()計算最大最小值的整合性查詢。
select column1,avg(column2)
from table_name
group by column1
having avg(column2) > xxx
說明:
1.group by: 以column1 為一組計算 column2 的平均值必須和 avg、sum等整合性查詢的關鍵字一起使用。
2.having : 必須和 group by 一起使用作為整合性的限制。
復合性的查詢
select *
from table_name1
where exists (
select *
from table_name2
where conditions )
說明:
1.where 的 conditions 可以是另外一個的 query。
2.exists 在此是指存在與否。
select *
from table_name1
where column1 in (
select column1
from table_name2
where conditions )
說明:
1. in 後面接的是一個集合,表示column1 存在集合裡面。
2. select 出來的資料形態必須符合 column1。
其他查詢
select *
from table_name1
where column1 like \'x%\'
說明:like 必須和後面的\'x%\' 相呼應表示以 x為開頭的字串。
select *
from table_name1
where column1 in (\'xxx\',\'yyy\',..)
說明:in 後面接的是一個集合,表示column1 存在集合裡面。
select *
from table_name1
where column1 between xx and yy
說明:between 表示 column1 的值介於 xx 和 yy 之間。
3、更改資料:
update table_name
set column1=\'xxx\'
where conditoins
說明:
1.更改某個欄位設定其值為\'xxx\'。
2.conditions 是所要符合的條件、若沒有 where 則整個 table 的那個欄位都會全部被更改。
4、刪除資料:
delete from table_name
where conditions
說明:刪除符合條件的資料。
說明:關於where條件後面如果包含有日期的比較,不同資料庫有不同的表達式。具體如下:
(1)如果是access資料庫,則為:where mydate>#2000-01-01#
(2)如果是oracle資料庫,則為:where mydate>cast(\'2000-01-01\' as date) 或:where mydate>to_date(\'2000-01-01\',\'yyyy-mm-dd\')
在delphi中寫成:
thedate=\'2000-01-01\';
query1.sql.add(\'select * from abc where mydate>cast(\'+\'\'\'\'+thedate+\'\'\'\'+\' as date)\');
如果比較日期時間型,則為:
where mydatetime>to_date(\'2000-01-01 10:00:01\',\'yyyy-mm-dd hh24:mi:ss\');
② plsql怎麼設置中文
點菜單->Tools ->preferences->User Interface -> Appearance -> Language,最後,選擇 Chinese.lang。
③ 如何用SQL語言在已經建立的表中增加完整
一般情況下語法如下:
刪除:
ALTER TABLE SALES_ORDER_LINE
DROP FOREIGN KEY FK_SALES_ORDER_LINE_PRODUCT
增加
ALTER TABLE <table_name>
ADD <column_name1> <datatype1> <constraint1>
ALTER TABLE <table_name>
ALTER COLUMN <column_name1> <datatype1> <constraint1>
ALTER TABLE <table_name>
DROP COLUMN <column_name1> <datatype1>
④ 翻譯SQL語句,增加新的語句
---------------接上面的--------------
function GetMemberName($rank,$mt)
{
global $MemberTypes;
if(isset($MemberTypes[$rank]))
{
if($mt=='ut') return " <font color='red'>待升級:".$MemberTypes[$rank]."</font>";
else return $MemberTypes[$rank];
}
else
{
if($mt=='ut') return '';
else return $mt;
}
}
function GetMobile($mid)
{
global $MemberTypes;
if(isset($MemberTypes[$rank]))
{
if($mt=='ut') return " <font color='red'>待升級:".$MemberTypes[$rank]."</font>";
else return $MemberTypes[$rank];
}
else
{
if($mt=='ut') return '';
else return $mt;
}
}
function GetMAtt($m)
{
if($m<1) return '';
else if($m==10) return "<font color='red'>[管理員]</font>";
else return "<img src='img/adminuserico.gif' wmidth='16' height='15'><font color='red'>[薦]</font>";
}
?>
⑤ 如何學習 SQL 語言
先學SQL,把子查詢,group by, order by, having, union, exists, in, join, left join, inner join 搞得明明白白
裝個SQL 2005,裝兩個實例。裝service pack。裝了卸,卸了裝,直到嘔吐(嘿嘿)
把login, user, schema, linked server這些基本概念搞清
把不同的系統許可權,用戶許可權學習一遍
建資料庫,備份資料庫,全備份,增量備份,日誌備份
建表,寫SQL建表,把常用數據類型搞懂,邊建表,學習update/delete邊插入/刪除記錄,邊做備份
然後恢復資料庫,恢復全備份,恢復到某個標記,恢復到某個時間點
用SQL命令把上面的這些操作做一遍(都有SQL的,不要只會用滑鼠點來點去)
DBCC的一些常用命令
好好學習一下索引,用SQL建索引,各種各樣的索引
建幾個表,分別有1千條記錄,1萬條記錄,10萬條記錄,100萬條記錄,500萬條記錄
每建一個表,就看看資料庫如何變大,日誌如何變大,如果沒看懂,恢復資料庫到前一個狀態再做....
把資料庫縮小,放大,增加數據文件,把數據文件放在不同硬碟上,把日誌截斷(雖然小了,但看看還能不能恢復)
把主鍵,外鍵,約束,默認值,數據類型等基本概念搞清楚
然後開始在上面玩索引和各種查詢,玩玩備份和恢復,刪除50萬條記錄,插入10萬條記錄,等等
看你的硬碟小燈亂閃,CPU冒煙,你就對性能和速度開始關注了(嘿嘿)
就會想著怎麼優化一下你的SQL,怎麼優化索引等這些問題了。
學習T-SQL的一些基本東西,學習一下存儲過程,觸發器
到這里多回答別人的問題,幫別人寫點存儲過程,觸發器的代碼,多看別人怎麼寫的,怎麼解決問題的。
到這里,你應該有不錯的基本功了。
如果對資料庫開發有興趣呢,T-SQL要熟悉,會分析execution plan,對索引比較精通,然後就是要使用的程序語言
如果要做DBA,我覺得一個好的DBA應該有很好的開發方面的經驗,
主動爭取維護一下開發環境下的資料庫,首先是每天都備份,然後看看有沒有可以優化的地方。
多關注性能,安全,備份/恢復,高可用性方面的東西。試試資料庫復制,日誌轉移,數據鏡像,如果有機會再試試集群。
⑥ sql中要在同一列數里同時增加一個數,SQL語言怎麼寫啊
這要看你的數據類型了吧。如果是char/varchar型的數據,那麼可以用雙豎線來合並兩個字元串:update
table_mytable
set
cl
=
cl||'
'
這個是標准SQL,一般資料庫應該都支持的。
如果是int/number
型的數據,那麼你的要求等同於是把原來的數據乘以你要加的數字的位數,在加上你要加的數據,例如你要加123:
set
cl
=
cl*1000
+
123
假設原來是
456,就變成
456000
+
123
=
456123
當然,如果你只是要把一個數值型加某個值,例如要把
123
加
4
變成127,那麼就直接加就OK了:
set
cl
=
cl
+
4
⑦ php的sql插入語句問題
頁面文件修改為GB2312,瀏覽器的頁面編碼也要修改為GB2312,資料庫裡面的字元集要設置為GB2312(建時指定、PHPMYADMIN可以修改),這些你都做好了,那就剩下一步:
設置MYSQL連接的會話為GB2312,語句是:
mysql_query("set names gb2312"):
⑧ sql語句的插入和添加
學生表就暫定為student表,學院表為college表
select s.stuid,s.stuno,s.stuname,c.collegename from student s join college c where s.collegeid=c.collegeid
這條語句查出來的數據就是只有stuid,studno ,stuname ,collegename這四項,你在代碼裡面執行綁定的語句時將上面那句放進去就行,希望能幫到你。
⑨ SQL語言設置
控制面板——區域和語言選項——區域選項
都選擇中國
⑩ 在資料庫中添加一行的SQL語句怎麼寫
在資料庫中添加一行的SQL語句寫法的步驟如下:
我們需要准備的材料分別是:電腦、sql查詢器。
1、首先,打開sql查詢器,連接上相應的資料庫表,以stu2表添加一行數據為例。