提示:用ctrl+F快速查找相關(guān)指令哦
-- 創(chuàng)建數(shù)據(jù)庫(kù)
create database test_sql;
-- 修改數(shù)據(jù)庫(kù)名稱(只有 sysadmin 和 dbcreator 固定服務(wù)器角色的成員才答能執(zhí)行 sp_renamedb)
sp_renamedb 'test_sql','exam_sql';
-- 刪除數(shù)據(jù)庫(kù)
drop database test_sql;
-- 引用數(shù)據(jù)庫(kù)
use test_sql;
-- 創(chuàng)建表
create table student(
sid int NOT NULL PRIMARY KEY,
sname VARCHAR(20) ,
sage INT not NULL CHECK (sage BETWEEN 1 and 100),
semail VARCHAR(50) CHECK (semail LIKE '_%@._%')UNIQUE
);
-- 刪除表
DROP TABLE student;
-- 增加列(列增加后將不能刪除客情。DB2中列加上后數(shù)據(jù)類型也不能改變题涨,唯一能改變的是增加varchar類型的長(zhǎng)度)
ALTER TABLE student add sphone VARCHAR(16);
-- 添加主鍵
ALTER TABLE student ADD PRIMARY KEY(sid);
-- 刪除主鍵
ALTER TABLE student DROP primary key(sid);
-- 創(chuàng)建索引(索引允許數(shù)據(jù)庫(kù)高效找到關(guān)系中那些索引數(shù)組屬性上取給定值的元組株搔,不用掃描所有元組)
create UNIQUE INDEX emailIndex on student (semail);
-- 刪除索引 (索引是不可更改的肿男,想更改必須刪除重新建)
drop INDEX emailIndex on student;
-- 創(chuàng)建視圖 (存儲(chǔ)數(shù)據(jù)庫(kù)視圖關(guān)系识藤,視圖中的字段就是來自一個(gè)或多個(gè)數(shù)據(jù)庫(kù)中的真實(shí)的表中的字段砚著。我們可以向視圖添加 SQL 函數(shù)、WHERE 以及 JOIN 語(yǔ)句痴昧,我們也可以提交數(shù)據(jù)稽穆,就像這些來自于某個(gè)單一的表)
CREATE VIEW studentView as SELECT sid from student;
-- 刪除視圖
DROP VIEW studentView;
-- 添加數(shù)據(jù)(需要注意主外鍵重復(fù)赶撰、check等約束)
insert into student(sid,sname,sage,semail,sphone) VALUES (3,'test',17,'3@.com','15239958942');
--更新數(shù)據(jù)
update student SET sphone ='15239958914' where sage BETWEEN 10 and 20;
-- 查找數(shù)據(jù)
select * from student;--全部查找
select * from student where sid = 2;--條件查找
select * from student where semail like '%@%';--like查找
select * from student ORDER BY sid DESC;--降序查找
select COUNT(DISTINCT sage) as sagecount from student ;--總數(shù)查找,DISTINCT age查找不同年齡,沒有disinct表示找所有sage值不空的個(gè)數(shù),*豪娜、1代表查所有
select SUM(sage) as sagesum from student;--查找年齡總和
select AVG(sage) as sageavg from student;--查找平均年齡
select MAX(sage) as sagemax from student;--查找最大
select MIN(sage) as sagemin from student;--查找最小
-- 刪除數(shù)據(jù)
DELETE FROM student where sid = 2;
-- UNION 運(yùn)算符通過組合其他兩個(gè)結(jié)果表(例如 TABLE1 和 TABLE2)并消去表中任何重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL 隨 UNION 一起使用時(shí)(即 UNION ALL)否灾,不消除重復(fù)行
select semail from student UNION select semail from users;
-- EXCEPT 運(yùn)算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表鸣奔。當(dāng) ALL 隨 EXCEPT 一起使用時(shí) (EXCEPT ALL)墨技,不消除重復(fù)行挎狸。
select semail from student EXCEPT select semail from users;
-- INTERSECT 運(yùn)算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL 隨 INTERSECT 一起使用時(shí) (INTERSECT ALL)锨匆,不消除重復(fù)行。
select semail from student INTERSECT select semail from users;
-- 左外連接(左連接):結(jié)果集幾包括連接表的匹配行恐锣,也包括左連接表的所有行。
select student.semail from student LEFT JOIN users ON student.semail = users.semail;
-- 右外連接(右連接):結(jié)果集既包括連接表的匹配連接行诀姚,也包括右連接表的所有行。
select student.semail from student RIGHT JOIN users ON student.semail = users.semail;
-- 全外連接:不僅包括符號(hào)連接表的匹配行学搜,還包括兩個(gè)連接表中的所有記錄
select student.semail from student FULL JOIN users ON student.semail = users.semail;
-- 一張表论衍,一旦分組 完成后,查詢后只能得到組相關(guān)的信息坯台;分組需要包含信息:(統(tǒng)計(jì)信息) count,sum,max,min,avg 分組的標(biāo)準(zhǔn))瘫寝;在SQLServer中分組時(shí):不能以text,ntext,image類型的字段作為分組依據(jù)蜒蕾;在select統(tǒng)計(jì)函數(shù)中的字段,不能和普通的字段放在一起咪啡。
select sage,sum(sage) as '年齡和' from student GROUP BY sage;