對資料庫中列的一些基本的操作的SQL命令(轉)
對資料庫中列的一些基本的操作的SQL命令[@more@]
查詢表格的結構用desc table_name; 一、data definition language
1、建表格
create table table_name(column1 datatype [not null] [not null primary key], column2 datatype [not null],..)
datatype - 資料的格式
not null - 不可以允許資料有空的
primary key - 是本表的主鍵 實例:create table randy (name char(10),age integer);
2、更改表格
alter table table_name add column column_name datatype 增加一個欄位(沒有刪除某個欄位的語法) 實例:alter table randy add address varchar(100); --在實際應用中不能有column關鍵字
alter table table_name add primary key (column_name) 更改表的定義把某個欄位設為主鍵 實例: alter table randy add primary key (name);
alter table table_name drop primary key (column_name) 把主鍵的定義刪除 實例: alter table randy drop primary key; --實際應用中不需要column_name
3、建立索引
create index index_name on table_name (column_name) 說明:對某個表格的欄位建立索引可以增加查詢時的速度 實例: create index randyindex on randy (name);
4、刪除 刪除表 drop table_name 刪除索引 drop index_name 注意不能刪除表中的某個欄位 實例:drop table table_name;
drop index index_name; --刪除時需要指明table 或 index 關鍵字 二、資料形態 datatypes smallint 16 位元的整數。 interger 32 位元的整數。 decimal(p,s) p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。 float 32位元的實數。 double 64位元的實數。 char(n) n 長度的字串,n不能超過 254。 varchar(n) 長度不固定且其最大長度為 n 的字串,n不能超過 4000。 graphic(n) 和 char(n) 一樣,不過其單位是兩個字元 double-bytes,n不能超過127。這個形態是為支援兩個字元長度的字型,例如中文字。 vargraphic(n) 可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。 date 包含了年份、月份、日期。 time 包含了 小時、分鍾、秒。 timestamp 包含了年、月、日、時、分、秒、千分之一秒。 三、資料操作 data manipulation language
1、增加資料
insert into table_name (column1,column2,...) values (value1,value2,...) 實例: insert into randy (name,age) values ('l',16); --字串要用' '表示。
insert into randy values ('wei',26,'xiddian'); --沒有指定column則會按照欄位順序填入資料 注意table_name也可以是景觀view_name;
insert into table_name (column1,column2,...) select column1x,column2x,... from another_table 說明:也可以經過一個子查詢把別的表格的資料填入 實例: insert into randy select * from copyrandy;
2、查詢資料
select column1,column2 from table_name
select * from table_name where column1 = xxx [and column2 > yyy] [or column3 <> zzz] 實例: select * from randy where name<>'l' and age<27;
select * from table_name order by column2 [desc] 說明:order by 是指定以某個欄位做排序,[desc]是指從大到小排列,而默認是從小到大排列。 實例:select * from randy order by age desc; --[desc]的[]只是說明是可選項 組合查詢:聯合一個以上的表格才能夠得到結果
select * from table1,table2 where table1.colunn1=table2.column1 實例:select * from randy,copyrandy where randy.age=copyrandy.age; 整合性查詢
select count(*) from table_name where column_name = xxx 說明:符合條的資料共有幾筆 實例: select count(*) from randy where age<30;
select sum(column1) from table_name 說明:計算出總和,所選的欄位必須是可數的數字形態 實例:select sum(age) from randy; 除此以外還有avg(),max(),min()等函式。
select column1,avg(column2) from table_name group by column1 having avg(column2)>xxx 說明:group by column 以column1為一組計算column2的平均值,如果column1只有一列資料,則avg(column2)則是column2本身。
having 必須和group by 一起使用作為整合性的限制。 實例:select name,avg(age) from randy group by name having avg(age)<27; 復合性查詢
select * from table1_name where exists (select * from table2_name where conditions) 說明:exists 指存在與否 實例: select * from randy where exists (select * from copyrandy where age=26); --where 後面的部分只是一個條件condition,如果條件為真則執行前面的部分,前面部分執行的內容和條件無關。
select * from table_name1 where column1 in (select column1 from table_name2 where conditions) 說明:in後面是一個集合表示column1存在集合裡面
select出來的資料形態必須符合column1 實例:select * from randy where name in (select name from copyrandy); 其他查詢
select * from table_name1 where column1 like 'x%' 說明:like必須與後面的'x%'相呼應表示以x開頭的子串 實例: select * from randy where name like 'w%';
select * from table_name1 where column1 in ('xxx','yyy',...) 說明:in後面是一個集合,表示column1在集合裡面 實例:select * from randy where name in ('ling','wei','ran');
select * from table_name1 where column1 between xx and yy 說明:between表示column1的值介於xx與yy之間 實例:select * from randy where age between 1 and 27;
3、更改資料
update table_name set column1='xxx' where conditions 實例:update randy set name='ling' where age=16;
4、刪除資料
delete from table_name where conditions 實例:delete from randy where name='ling'; 日期的比較不同的資料庫有不同的表示式
1)access資料庫 where mydate>#2000-01-01#
2)Oracle資料庫 where mydate>case('2000-01-01' as date) 或 where mydate>to_date('2000-01-01','yyyy-mm-dd')
1、建表格
create table table_name(column1 datatype [not null] [not null primary key], column2 datatype [not null],..)
datatype - 資料的格式
not null - 不可以允許資料有空的
primary key - 是本表的主鍵 實例:create table randy (name char(10),age integer);
2、更改表格
alter table table_name add column column_name datatype 增加一個欄位(沒有刪除某個欄位的語法) 實例:alter table randy add address varchar(100); --在實際應用中不能有column關鍵字
alter table table_name add primary key (column_name) 更改表的定義把某個欄位設為主鍵 實例: alter table randy add primary key (name);
alter table table_name drop primary key (column_name) 把主鍵的定義刪除 實例: alter table randy drop primary key; --實際應用中不需要column_name
3、建立索引
create index index_name on table_name (column_name) 說明:對某個表格的欄位建立索引可以增加查詢時的速度 實例: create index randyindex on randy (name);
4、刪除 刪除表 drop table_name 刪除索引 drop index_name 注意不能刪除表中的某個欄位 實例:drop table table_name;
drop index index_name; --刪除時需要指明table 或 index 關鍵字 二、資料形態 datatypes smallint 16 位元的整數。 interger 32 位元的整數。 decimal(p,s) p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。 float 32位元的實數。 double 64位元的實數。 char(n) n 長度的字串,n不能超過 254。 varchar(n) 長度不固定且其最大長度為 n 的字串,n不能超過 4000。 graphic(n) 和 char(n) 一樣,不過其單位是兩個字元 double-bytes,n不能超過127。這個形態是為支援兩個字元長度的字型,例如中文字。 vargraphic(n) 可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。 date 包含了年份、月份、日期。 time 包含了 小時、分鍾、秒。 timestamp 包含了年、月、日、時、分、秒、千分之一秒。 三、資料操作 data manipulation language
1、增加資料
insert into table_name (column1,column2,...) values (value1,value2,...) 實例: insert into randy (name,age) values ('l',16); --字串要用' '表示。
insert into randy values ('wei',26,'xiddian'); --沒有指定column則會按照欄位順序填入資料 注意table_name也可以是景觀view_name;
insert into table_name (column1,column2,...) select column1x,column2x,... from another_table 說明:也可以經過一個子查詢把別的表格的資料填入 實例: insert into randy select * from copyrandy;
2、查詢資料
select column1,column2 from table_name
select * from table_name where column1 = xxx [and column2 > yyy] [or column3 <> zzz] 實例: select * from randy where name<>'l' and age<27;
select * from table_name order by column2 [desc] 說明:order by 是指定以某個欄位做排序,[desc]是指從大到小排列,而默認是從小到大排列。 實例:select * from randy order by age desc; --[desc]的[]只是說明是可選項 組合查詢:聯合一個以上的表格才能夠得到結果
select * from table1,table2 where table1.colunn1=table2.column1 實例:select * from randy,copyrandy where randy.age=copyrandy.age; 整合性查詢
select count(*) from table_name where column_name = xxx 說明:符合條的資料共有幾筆 實例: select count(*) from randy where age<30;
select sum(column1) from table_name 說明:計算出總和,所選的欄位必須是可數的數字形態 實例:select sum(age) from randy; 除此以外還有avg(),max(),min()等函式。
select column1,avg(column2) from table_name group by column1 having avg(column2)>xxx 說明:group by column 以column1為一組計算column2的平均值,如果column1只有一列資料,則avg(column2)則是column2本身。
having 必須和group by 一起使用作為整合性的限制。 實例:select name,avg(age) from randy group by name having avg(age)<27; 復合性查詢
select * from table1_name where exists (select * from table2_name where conditions) 說明:exists 指存在與否 實例: select * from randy where exists (select * from copyrandy where age=26); --where 後面的部分只是一個條件condition,如果條件為真則執行前面的部分,前面部分執行的內容和條件無關。
select * from table_name1 where column1 in (select column1 from table_name2 where conditions) 說明:in後面是一個集合表示column1存在集合裡面
select出來的資料形態必須符合column1 實例:select * from randy where name in (select name from copyrandy); 其他查詢
select * from table_name1 where column1 like 'x%' 說明:like必須與後面的'x%'相呼應表示以x開頭的子串 實例: select * from randy where name like 'w%';
select * from table_name1 where column1 in ('xxx','yyy',...) 說明:in後面是一個集合,表示column1在集合裡面 實例:select * from randy where name in ('ling','wei','ran');
select * from table_name1 where column1 between xx and yy 說明:between表示column1的值介於xx與yy之間 實例:select * from randy where age between 1 and 27;
3、更改資料
update table_name set column1='xxx' where conditions 實例:update randy set name='ling' where age=16;
4、刪除資料
delete from table_name where conditions 實例:delete from randy where name='ling'; 日期的比較不同的資料庫有不同的表示式
1)access資料庫 where mydate>#2000-01-01#
2)Oracle資料庫 where mydate>case('2000-01-01' as date) 或 where mydate>to_date('2000-01-01','yyyy-mm-dd')
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10172717/viewspace-921813/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 中對XML資料的五種基本操作SQLServerXML
- 資料庫的一些操作(Sql)資料庫SQL
- SQL—對資料表內容的基本操作SQL
- shell命令列中操作HBase資料庫命令列資料庫
- MySQL對錶和庫的一些基本操作MySql
- SQL資料庫的一些攻擊(轉)SQL資料庫
- SQL Server資料庫對大容量表的操作SQLServer資料庫
- MongoDB資料庫的基本操作梳理MongoDB資料庫
- 資料庫操作命令列神器:mycli資料庫命令列
- 命令列中的常用操作命令列
- Oracle資料庫中對BLOB資料的操作問題Oracle資料庫
- MySQL(一) 資料表資料庫的基本操作MySql資料庫
- Redis 基本資料型別(Set) 的操作命令Redis資料型別
- 入侵oracle資料庫時常用的操作命令整理(轉)Oracle資料庫
- Hive資料庫及表的基本操作Hive資料庫
- cmd命令列下用命令執行SQL指令碼到SQL Server資料庫中命令列SQL指令碼Server資料庫
- 對Oracle資料庫中Stroage子句的一些理解Oracle資料庫
- 一些常用的Oacle資料庫操作資料庫
- 資料庫基本操作資料庫
- 【轉】通過sql語句獲取資料庫的基本資訊SQL資料庫
- 雲資料庫SQL Azure的基本限制TX資料庫SQL
- JavaScript中對陣列的操作JavaScript陣列
- Perl連線Oracle資料庫的一些操作指令碼【轉】Oracle資料庫指令碼
- SQLAIchemy對資料基本操作SQLAI
- 佇列的基本操作佇列
- 陣列的基本操作陣列
- Vim命令的基本操作
- HBase基本的資料操作
- 資料庫的一些基本知識部落格資料庫
- SQL Server 2005中的tempdb資料庫的一些特點SQLServer資料庫
- SQL Server資料庫中轉儲裝置的分析SQLServer資料庫
- python+資料庫(三)用python對資料庫基本操作Python資料庫
- 時序資料庫之InfluxDB的基本操作資料庫UX
- MySQL之終端:管理資料庫的基本操作MySql資料庫
- MySQL 資料庫的對庫的操作及其資料型別悔鋒MySql資料庫資料型別
- ASP獲取資料庫表名,欄位名以及對欄位的一些操作 (轉)資料庫
- SQL Server資料庫調整表中列的順序操作方法及遇到問題SQLServer資料庫
- 【RAC】在RAC環境中SQL*Plus命令對資料庫及例項的影響SQL資料庫