SQL 2 基礎語法

2022-09-18 13:09:13 字數 3278 閱讀 7749

一、sql分類:

ddl—資料定義語言(create,alter,drop,declare)

dml—資料操縱語言(select,delete,update,insert)

dcl—資料控制語言(grant,revoke,commit,rollback)

二、sql基礎語句

1.建立資料庫

create database 資料庫名稱

2.刪除資料庫

drop database 資料庫名稱

3.備份資料庫

建立備份資料  device

use master

exec sp_addumpdevice 'disk', 'testback', 'c:mssql7backupmynwind_1.dat'

開始備份

backup database 資料庫名稱 to testback

4.建立新錶

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根據已有的表建立新錶:

a:create table tab_new like tab_old (使用舊表建立新錶)

b:create table tab_new as select col1,col2… from tab_old definition only

複製表(只複製結構,源表名:tab_new 新錶名:tab_old) 

a:select * into tab_new from tab_old where 1<>1

b:select top 0 * into tab_new from tab_old

5.刪除新錶

drop table 表名

6.增加乙個列

alter table tabname add 列名稱 列的資料型別

7.新增或刪除粗主鍵

新增主鍵:

alter table tabname add primary key(col)

刪除主鍵:

alter table tabname drop primary key(col)

8.建立或刪除索引

建立索引:

create [unique] index idxname on tabname(col….)

刪除索引:

drop index idxname

注:索引是不可更改的,想更改必須刪除重新建。

9.建立或刪除檢視

建立檢視:

create view viewname as select statement

刪除檢視:

drop view viewname

10.幾個高階查詢運算詞

a: union 運算子

union 運算子通過組合其他兩個結果表(例如 table1 和 table2)並消去表中任何重複行而派生出乙個結果表。當 all 隨 union 一起使用時(即 union all),不消除重複行。兩種情況下,派生表的每一行不是來自 table1 就是來自 table2。

b: except 運算子

except 運算子通過包括所有在 table1 中但不在 table2 中的行並消除所有重複行而派生出乙個結果表。當 all 隨 except 一起使用時 (except all),不消除重複行。

c: intersect 運算子

intersect 運算子通過只包括 table1 和 table2 中都有的行並消除所有重複行而派生出乙個結果表。當 all 隨 intersect 一起使用時 (intersect all),不消除重複行。

注:使用運算詞的幾個查詢結果行必須是一致的。

11.使用外連線

a、left outer join: 左外連線(左連線):結果集既包括連線表的匹配行,也包括左連線表的所有行。

b:right outer join: 右外連線(右連線):結果集既包括連線表的匹配行,也包括右連線表的所有行。

c:full outer join: 全外連線:不僅包括符號連線表的匹配行,還包括兩個連線表中的所有記錄。

12.拷貝表(拷貝資料,源表名:a 目標表名:b)

insert into b(a, b, c) select d,e,f from a;

13.跨資料庫之間表的拷貝(具體資料使用絕對路徑)

14.between的用法,between限制查詢資料範圍時包括了邊界值,not between不包括

15.隨機取出10條資料

select top 10 * from tablename order by newid()

16.刪除重覆記錄

delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

17.列出乙個表中所有的列名稱

select name from syscolumns where id=object_id('tablename')

18.選擇從10到15的記錄(思路:按id順序取前15,然後倒敘取前5)

select top 5 * from (select top 15 * from table order by id asc) table_別名 order by id desc

19.成績表字段為學號,課程和成績,按照學號分組,用一句sql求每個學生成績比較高的兩個課程。

select * from 成績表 a where 成績  in (select top 2 成績 from 成績表 b where a.學號=b.學號 order by 成績)

20.sql server 2000中使用的一些資料庫物件

**,檢視,使用者定義的函式,以及儲存過程,觸發器

21.什麼是索引

簡單地說,索引是乙個資料結構,用來快速訪問資料庫**或者檢視裡的資料。在sql server裡,它們有兩種形式:聚集索引和非聚集索引。聚集索引在索引的葉級儲存資料。這意味著不論聚集索引裡有**的哪個(或哪些)字段,這些欄位都會按順序被儲存在**。由於存在這種排序,所以每個**只會有乙個聚集索引。非聚集索引在索引的葉級有乙個行識別符號。這個行識別符號是乙個指向磁碟上資料的指標。它允許每個**有多個非聚集索引。

22.什麼是主鍵/外來鍵?

主鍵是**裡的(乙個或多個)字段,只用來定義**裡的行;主鍵裡的值總是唯一的。

外來鍵是乙個用來建立兩個**之間關係的約束。這種關係一般都涉及乙個**裡的主鍵欄位與另外乙個**(儘管可能是同乙個**)裡的一系列相連的字段。那麼這些相連的字段就是外來鍵。

零基礎學習sql 2 資料型別

上節課的提問 1 delete 和truncate 的區別 delete 可以刪除部分資料,truncate 清空所有資料,另外delete 需要記錄日誌等資訊,truncate 幾乎不記錄日誌,且truncate 是ddl 操作。問題2,自己去執行,我就不說細說了。常用資料型別 官網理論一大堆,我...

LeetCode之資料庫SQL(2)

題目 於leetcode資料庫 第二高的薪水 題目 編寫乙個 sql 查詢,獲取 employee 表中第二高的薪水 salary 例如上述 employee 表,sql查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。把第二高的薪水命名secondhighe...

從零學SQL 2 關係模型

做資料運營,準確的是標籤系統運營的時候,需要找資料組拿每日使用者點選情況。主鍵每一條記錄是不能重複的,如果資料是使用者實際點選資料,無法保證不會有兩個人點選同樣的詞。如果這裡需要區分,就需要加入乙個區分它們的字段,比如id。能區分兩條記錄的字段,叫做 主鍵 注意 1.主鍵最好不要修改 由於主鍵的作用...