標准SQL語句大全【持續更新】(navicat12版親測有效)


提示:用ctrl+F快速查找相關指令哦


-- 創建數據庫
create database test_sql;

-- 修改數據庫名稱(只有 sysadmin 和 dbcreator 固定服務器角色的成員才答能執行 sp_renamedb)
sp_renamedb 'test_sql','exam_sql';

-- 刪除數據庫
drop database test_sql;

-- 引用數據庫
use test_sql;

-- 創建表
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中列加上后數據類型也不能改變,唯一能改變的是增加varchar類型的長度)
ALTER TABLE student add sphone VARCHAR(16);

-- 添加主鍵
ALTER TABLE student ADD PRIMARY KEY(sid);

-- 刪除主鍵
ALTER TABLE student DROP primary key(sid);

-- 創建索引(索引允許數據庫高效找到關系中那些索引數組屬性上取給定值的元組,不用掃描所有元組)
create UNIQUE INDEX emailIndex on student (semail);

-- 刪除索引 (索引是不可更改的,想更改必須刪除重新建)
drop INDEX emailIndex on student;

-- 創建視圖 (存儲數據庫視圖關系,視圖中的字段就是來自一個或多個數據庫中的真實的表中的字段。我們可以向視圖添加 SQL 函數、WHERE 以及 JOIN 語句,我們也可以提交數據,就像這些來自於某個單一的表)
CREATE VIEW studentView as SELECT sid from student;

-- 刪除視圖
DROP VIEW studentView;

-- 添加數據(需要注意主外鍵重復、check等約束)
insert into student(sid,sname,sage,semail,sphone) VALUES (3,'test',17,'3@.com','15239958942');

--更新數據
update student     SET sphone ='15239958914' where sage BETWEEN 10 and 20;

-- 查找數據
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 ;--總數查找,DISTINCT age查找不同年齡,沒有disinct表示找所有sage值不空的個數,*、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;--查找最小

-- 刪除數據
DELETE FROM student where sid = 2;

-- UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行
select semail from student UNION select semail from users;

-- EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。
select semail from student EXCEPT select semail from users;

-- INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重復行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。
select semail from student INTERSECT select semail from users;

-- 左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
select student.semail from student LEFT JOIN users ON student.semail = users.semail;

-- 右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
select student.semail from student RIGHT JOIN users ON student.semail = users.semail;

-- 全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄
select student.semail from student FULL JOIN users ON student.semail = users.semail;

-- 一張表,一旦分組 完成后,查詢后只能得到組相關的信息;分組需要包含信息:(統計信息) count,sum,max,min,avg  分組的標准);在SQLServer中分組時:不能以text,ntext,image類型的字段作為分組依據;在select統計函數中的字段,不能和普通的字段放在一起。
select sage,sum(sage) as '年齡和' from student GROUP BY sage;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM