1、 查看數(shù)據(jù)庫中的表或查詢數(shù)據(jù)庫;
show tables/databases;
2、 查看數(shù)據(jù)庫中所有的表
show tables;(前提是使用use database 數(shù)據(jù)庫;)
3、 查看數(shù)據(jù)表結(jié)構(gòu)
describe 表名;
4、 創(chuàng)建數(shù)據(jù)庫
CARATE DATABASE 數(shù)據(jù)庫名;
create database studentoa;
5、 刪除數(shù)據(jù)庫
DROP DATABASE 數(shù)據(jù)庫名;
Drop database studentoa;
6、 使用數(shù)據(jù)庫
use 數(shù)據(jù)庫名;
use studentoa;
7、 創(chuàng)建數(shù)據(jù)表
CREATE TABLE 表名 ( 列名 數(shù)據(jù)類型, 列名 數(shù)據(jù)類型, 列名 數(shù)據(jù)類型 ); create table information ( id int primary key, name nvarchar(10) not null, age int, sex nvarchar(6) )
8、 刪除數(shù)據(jù)表中的列
ALTER TABLE 表名 DROP COLUMN 列名;
alter table information drop column sex;
9、 增加數(shù)據(jù)表中的列
ALTER TABLE 表名
ADD 列名 數(shù)據(jù)類型;
Alter table information add home varchar(20);
10、 數(shù)據(jù)表中添加數(shù)據(jù)
INSERT INTO 表名[(列名,列名,列名)] VALUES (值,值,值);
insert into information(id,name,age,home) values (001,'張三',23,'黑龍江');
insert into information values(002,'李四',25,'沈陽');
insert into information(id,name,home) values(003,'趙六','吉林');
11、 修改數(shù)據(jù)表中列數(shù)據(jù)類型名或者長度
12、 alter table 表名 alter column 列名 數(shù)據(jù)類型;
alter table information alter column home varchar(10);
13、 刪除數(shù)據(jù)表中的某一行數(shù)據(jù);
DELETE FROM 表名 WHERE 篩選條件;
delete from information where name='田七';
14、 更改數(shù)據(jù)表中的某一項信息
UPDATE 表名 SET 更改項 = '修改內(nèi)容' WHERE 篩選條件;
update information set age=29 where name='趙六';
15、 篩選條件中的比較運算符 Or運算符的應(yīng)用
select * from information where age>25 or home='沈陽' or home='吉林' or home='黑龍江';(篩選出年齡大于25的或者家鄉(xiāng)是東北三省的人員信息) And運算符的應(yīng)用
select * from information where age>25 and home='沈陽' or home='吉林' or home='黑龍江';(篩選出年齡大于25并且家鄉(xiāng)是東北三省的人員信息)
16、 建表之后添加約束主鍵,刪除約束主鍵
ALTER TABLE表名 ADD CONSTRAINT 約束名 約束類型 約束描述; ALTER TABLE表名DROP CONSTRAINT 約束名;
alter table information add constraint abd primary key(id); alter table information drop constraint abd;
17、 幾個高級查詢運算詞
A: UNION 運算符
UNION 運算符通過組合其他兩個結(jié)果表(例如 TABLE1 和 TABLE2)并消去表中任何重復(fù)行而派生出一個結(jié)果表。當(dāng) ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復(fù)行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符
EXCEPT運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復(fù)行而派生出一個結(jié)果表。當(dāng) ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復(fù)行。
C: INTERSECT 運算符
INTERSECT運算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復(fù)行而派生出一個結(jié)果表。當(dāng) ALL隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復(fù)行。
注:使用運算詞的幾個查詢結(jié)果行必須是一致的。
18、 使用連接
A、left (outer) join:
左外連接(左連接):結(jié)果集幾包括連接表的匹配行,也包括左連接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right (outer) join:
右外連接(右連接):結(jié)果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full/cross (outer) join:
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
D:inner join
19、 Group by:
一張表,一旦分組 完成后,查詢后只能得到組相關(guān)的信息。
組相關(guān)的信息:(統(tǒng)計信息) count,sum,max,min,avg 分組的標(biāo)準(zhǔn))
在SQLServer中分組時:不能以text,ntext,image類型的字段作為分組依據(jù)
在selecte統(tǒng)計函數(shù)中的字段,不能和普通的字段放在一起;
20、 對數(shù)據(jù)庫進(jìn)行操作:
分離數(shù)據(jù)庫: sp_detach_db;附加數(shù)據(jù)庫:sp_attach_db 后接表明,附加需要完整的路徑名
21、 如何修改數(shù)據(jù)庫的名稱:
sp_renamedb 'old_name', 'new_name'
22、 查詢結(jié)果排序
ASC從小到大、DESC從大到小
默認(rèn)按照升序
可以按多個列進(jìn)行排序,首先按前面的列排序,遇到相同記錄再按照第二列排序。
23、 聚合函數(shù)
COUNT(*):統(tǒng)計表中元素的個數(shù);
COUNT(DISTINCT 列名):統(tǒng)計本列中非空列值的個數(shù);(DISTINCT表示不包括列重復(fù)值)
SUM:計算列值的和;
AVG:平均值
MAX:最大值
MIN:最小值
上述函數(shù)中除了COUNT(*)外,其他函數(shù)在計算過程中均忽略NULL值。
24、 WHERE條件查詢
比較 =/>/</>=/<=
確定范圍 between … and …/notbetween … and …
確定集合 IN/NOT IN
字符匹配 LIKE/NOT LIKE
空值 IS NULL/IS NOTNULL
多重條件 AND/OR
25、 LIKE匹配
_下劃線:匹配任意一個字符
%百分號:匹配0個或多個字符;
[]:匹配[]中的任意一個字符。如[acgd]表示匹配a/c/g/d中的任何一個,對于連續(xù)的,可以寫成[a-d];
[^]:不匹配[]中的任何一個字符。寫成[^abgd]。