SQL常用語句整理

2021-07-03 19:45:35 字數 3105 閱讀 5999

自己做專案時,主要是表單的提交,所以對資料庫的操作有所了解。但是面試時問起時,發現自己掌握不牢,而且掌握的都太基本了,故在此將面試中涉及到的和基本的sql操作一起整理一下。所有的sql操作我按照以下分類進行整理:

(1)運算元據庫

create database test;建立資料庫test

drop database test;刪除資料庫test

use test;使用資料庫test

show databases;顯示所有的資料庫

(2)運算元據表

create table test (

username vachar(100),

passwd varchar,

);指定列和列的資料型別建立表

create table new_table like old_table;//從已有表建立新錶

create table new_table as select col1,col2,...,coln from old_table definition only;用舊表的特定列建立新錶

drop table test;刪除表test

alter table test add column user_*** int;給表test增加一列user_***並指定資料型別

alter table test add primary key(username);給表test新增主鍵為username

alter table test drop primary key(username);刪除表的主鍵

對資料記錄的操作有基本和高階之分,以下是基本的操作:

(3)查詢資料記錄

select * from table_name where arr_1 = value;*表示選出所有列

select * from table_name where arr_1 between value1 and value2;

select * from table_name where arr_1 like '%value%';like %value%表示只要含有value字串就行

select username, passwd from test;從表test中選出指定列

select distinct username from test;從表test中選出username列並去重

select * from table_name where col_1 = 'value1' and(or) col_2 = 'value2';雙重條件,若多重可加括號

select name, age from person order by name, age;//從person表中選出name和age兩列,按字母順序顯示name,以數字順序顯示age

select name, age from person order by name desc, age asc;//從person表中選出name和age兩列,按字母順序顯示name,以數字順序顯示age

select col_1, col_2 from old_table as new_table;從表old_table中取出兩列形成新的表new_table

(4)更新資料記錄

update table_name set col_1 = new_value where col_2 = value2

update test set passwd = 'newpasswd' where username = 'hbj';更新username為hbj的密碼為passwd

(5)增加資料條目

insert into table_name values (value1, value2,....);插入所有值

insert into table_name (col_1, col_2,...) values (value1, value2,....);

insert into lab (name, officer) values ('ngirc', 'cqxu');特定列值插入

(6)刪除資料條目

delete * from table_name;刪除所有列

delete from table_name where col_1='value1';刪除特定列

以下是幾個常用的高階操作:

1.select top number|percent col_1 from table_name:select top 2 * from test;限制了顯示的條目數

2.selet col_1 from table_name where col_2 in (value1,value2,...);col_2有多選項

3.select col_1 as name_1, col_2 as name_2 from table_name;給表取個別名

4.select new1.col_1, new2.col_3, new2.col_7 from table1 as new1, table2 as new2 where new1.col_5 = 'value5' and new2.col_7 = 'value7' ;此語句也可用5來寫

5.select persons.lastname, persons.firstname, orders.orderno from persons inner join orders on persons.id_p=orders.id_p order by persons.lastname;適用於兩個表有共享鍵的情形,也可用4來寫

6.select column_name(s) from table_name1 left join table_name2  on table_name1.column_name = table_name2.column_name;返回table_name1中所有的行即使table_name2中沒有匹配的行。

7.select column_name(s) from table_name1 left join table_name2  on table_name1.column_name = table_name2.column_name;跟6恰好相反;join的作用只是將選出的部分鄰接在一起。

8.select col_1 from table_name1 union select col_2 from table_name2;將兩個表中選出的資料融合到一起

很好的參考資料:

sql常用語句

use myoa select from delete from department where departmentid 1 insert department departmentid,departmentname values 1,技術部 update department set depa...

sql常用語句

在sqlserver,簡單的組合sp spaceused和sp msforeachtable這兩個儲存過程,可以方便的統計出使用者 資料表的大小,包括記錄總數和空間占用情況,非常實用,在sqlserver2k和sqlserver2005中都測試通過。1.exec sp spaceused 表名 sq...

sql常用語句

第一種 行列互換思想,外層group by,使用case when then 我有乙個表,有兩個字段 收費專案 唯一值 收費金額。我想用sql按收費專案不同生成不同的字段,對應值是金額。如 房租 100 水電費 50 雜費 50 生成後的格式是 房租 水電費 雜費 100 50 50 請問,如何寫這...