Mysql sql語句大全

2021-12-25 數據思維

需要SQL學習資料的同學見文末的資料領取方法。

1、說明:創建資料庫

CREATE databasename

2、說明:刪除資料庫

drop dbname

3、說明:備份sql server

--- 創建 備份數據的 device

USE master

EXEC 'disk''testBack''c:\mssql7backup\MyNwind_1.dat'

--- 開始 備份

BACKUP pubs testBack

4、說明:創建新表

create tabname(col1 type1 [nullprimary ],col2 type2 [nullcreate tab_new tab_old (使用舊錶創建新表)

B:table as col1,col2… tab_old definition table table add col type

註:列增加後將不能刪除。DB2中列加上後數據類型也不能改變,唯一能改變的是增加類型的長度。

7、說明:添加主鍵: table add keyAlter tabname primary (col)

8、說明:創建索引:[] idxname tabname(col….)

刪除索引:index create viewname select drop viewname

10、說明:幾個簡單的基本的sql語句

選擇:* table1 範圍

插入:into valuesdelete table1 範圍

更新:table1 field1=value1 範圍

查找:* table1 field1 』%value1%』 select from order field1,field2 []

總數:count totalcount table1

求和:sumas from select (field1) avgvalue table1

最大:maxas from select (field1) minvalue table1

11、說明:幾個高級查詢運算詞

A: 運算符

UNION ALL UNION UNION ),不消除重複行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。

B: 運算符

EXCEPT ALL EXCEPT EXCEPT ),不消除重複行。

C: 運算符

INTERSECT ALL INTERSECT INTERSECT ),不消除重複行。

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

12、說明:使用外連接

A、() :

左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。

SQL: a.a, a.b, a.c, b.c, b.d, b.f a OUT b a.a = b.c

B:() :

右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。

C:/() :

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

12、分組:by一張表,一旦分組完成後,查詢後只能得到組相關的信息。

 countsummaxminavg  在SQLServer中分組時:不能以text,ntext,image類型的欄位作為分組依據

 分離資料庫: sp_detach_db; 附加資料庫:sp_attach_db 後接表明,附加需要完整的路徑名

14.如何修改資料庫的名稱:

sp_renamedb ,  

二、提升

1、說明:複製表(只複製結構,源表名:a 新表名:b) (Access可用)

法一:* b a 1<>1(僅用於SQlServer)

法二:top into from into select from into select from in where from in wherea,b,c a a (d b ) 或者: a,b,c a a (1,2,3)

5、說明:顯示文章、提交人和最後回復時間

select from a,(maxfrom where .title=a.title) b

6、說明:外連接查詢(表名1:a 表名2:b)

select from LEFT JOIN ON * (a,b,c a) T t.a > 1;

8、說明:的用法,限制查詢數據範圍時包括了邊界值,between* table1 time time1 time2

select from where not 數值1 數值2

9、說明:的使用方法

select from where notin from where exists ( * table2 table1.field1=table2.field1 )

11、說明:四表聯查問題:

select from left join on right join on inner d a.a=d.d

12、說明:日程安排提前五分鐘提醒

SQL: * 日程安排 datediff(,f開始時間,getdate())>5

13、說明:一條sql 語句搞定資料庫分頁

select 10 b.* (top from order 排序欄位 ) a,表名 b b.主鍵欄位 = a.主鍵欄位 by declare intend @sql  nvarchar(600)

  @sql=’topendfrom where not (topfrom where exec  

注意:在後不能直接跟一個變量,所以在實際應用中只有這樣的進行特殊的處理。Rid為一個標識列,如果後還有具體的欄位,這樣做是非常有好處的。因為這樣可以避免 的欄位如果是邏輯索引的,查詢的結果後實際表中的不一致(邏輯索引中的數據有可能和數據表中的不一致,而查詢時如果處在索引則首先查詢索引)

14、說明:前10條記錄

select 10 * form table1 範圍

15、說明:選擇在每一組b值相同的數據中對應的a最大的記錄的所有信息(類似這樣的用法可以用於論壇每月排行榜,每月熱銷產品分析,按科目成績排名,等等.)

select from where select (a) tablename tb tb.b=ta.b)

16、說明:包括所有在 TableA 中但不在 TableB和TableC 中的行並消除所有重複行而派生出一個結果表

(a tableA ) (a tableB) (a tableC)

17、說明:隨機取出10條數據

select 10 * tablename by newid()

19、說明:刪除重複記錄

1),from where not (maxfrom group col1,col2,...)

2),distinct into from delete tablename

  into select from table column_b identity(1,1)

 from where not (

select (column_b)  tablename by table drop column_b

20、說明:列出資料庫裡所有的表名

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

22、說明:列示type、vender、pcs欄位,以type欄位排列,可以方便地實現多重選擇,類似中的。

select sumcase when then else endsumcase when then else endsumcase when then else endFROM group type

顯示結果:

type vender pcs

電腦 A 1

電腦 A 1

光碟 B 2

光碟 A 2

手機 B 3

手機 C 3

23、說明:初始化表table1

TRUNCATE table1

24、說明:選擇從10到15的記錄

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

三、技巧

1、1=1,1=2的使用,在SQL語句組合時用的較多

「1=1」 是表示選擇全部    「1=2」全部不選,

如:

if @strWhere !=@strSQL = + @tblName + + @strWhere

end

else

begin

set 'select count(*) as Total from [' ']'

end

我們可以直接寫成

錯誤!未找到目錄項。

set 'select count(*) as Total from [' '] where 1=1 安定 'sp_change_users_login ,,from 'E:\dvbbs.bak'

6、修複數據庫

ALTER [dvbbs] SINGLE_USER

GO

DBCC CHECKDB(,repair_allow_data_loss) TABLOCK

GO

ALTER [dvbbs] MULTI_USER

GO

7、日誌清除

SET ON

DECLARE @MaxMinutes ,

 INT

-- 要操作的資料庫名

SELECT  'tablename_log'-- 日誌文件名

@MaxMinutes = 10, @NewSize = 1  @OriginalSize @OriginalSize = FROM WHERE = @LogicalFileName

SELECT + db_name() + +

 ((30),@OriginalSize) + +

 ((30),(@OriginalSize*8/1024)) + FROM WHERE = @LogicalFileName

CREATE DummyTrans

 char not )

@Counter    ,

 @TruncLog   (255)

SELECT @TruncLog = + db_name() + (@TruncLog)

-- Wrap the log if necessary.

WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) AND SELECT FROM WHERE = @LogicalFileName)

 (@OriginalSize * 8 /1024) > @NewSize

 -- Outer loop.

SELECT WHILE   ((@Counter < @OriginalSize / 16) (@Counter < 50000))

 -- update

 DummyTrans () DummyTrans

 @Counter = @Counter + 1

 EXEC END

SELECT + db_name() + +

 ((30),) + +

 ((30),(*8/1024)) + FROM WHERE = @LogicalFileName

DROP DummyTrans

SET OFF

8、說明:更改某個表

exec 'tablename''dbo'

9、存儲更改全部表

CREATE dbo.User_ChangeObjectOwnerBatch

@OldOwner NVARCHAR(128),

@NewOwner NVARCHAR(128)

AS

DECLARE Name    NVARCHAR(128)

DECLARE as @OwnerName   NVARCHAR(128)

DECLARE CURSOR 'Name'    name'Owner'    sysobjects

where by curObject

FETCH FROM INTO Nameset '.' Nameexec NEXT curObject @, @Owner

END

close curObject

GO

@i @i=1

while @i<30

begin

    into valuesset Name     Zhangshan 80

 Wangwu      50

 select (score) tb_table)<60)

begin

update set score<60

if  (minfrom break

 continue

end

 

1.按姓氏筆畫排序:

Select From Order CustomerName Chinese_PRC_Stroke_ci_as //從少到多

2.資料庫加密:

select '原始密碼'pwdencrypt()

select '原始密碼''加密後密碼'--相同;否則不相同 encrypt('原始密碼')

select '原始密碼'pwdcompare(,) = 1@list (1000),

@sql nvarchar(1000)

select ','name sysobjects a,syscolumns b a.id=b.id a.=@sql=+(@list,len(@list)-1)+(@sql)

4.查看硬碟分區:

EXEC select from =

    select from '相等'

else

print hcforeach GLOBAL SELECT +RTRIM(spid) master.dbo.sysprocesses

WHERE IN'SQL profiler''SQL 事件探查器'sp_msforeach_worker Top From Top From Where in Select M ID 表) by Desc

----

N到結尾記錄

Select N * 表 by Desc

案例

例如1:一張表有一萬多條記錄,表的第一個欄位 RecID 是自增長欄位, 寫一個SQL語句,找出表的第31到第40個記錄。

 top from where not  (top from select 10 recid A ……是從索引中查找,而後面的top from order select 30 recid A by select 30 recid A recid>-1

例2:查詢表中的最後以條記錄,並不知道這個表共有多少數據,以及表結構。

set 'select top 1 * from T   where pid not in (select top ' count' pid  from  T)'

print @s      sp_executesql  @s

9:獲取當前資料庫中的所有用戶表

select from where 'u' status>=0

10:獲取某一個表的所有欄位

select from where '表名'name syscolumns id (id sysobjects type = and = )

兩種方式的效果相同

11:查看與某一個表相關的視圖、存儲過程、函數

select from where and like name 存儲過程名稱 sysobjects xtype=* master..sysdatabases D sid inselect from where =)

或者

select name DB_NAME master..sysdatabases sid <> 0x01

14:查詢某一個表的欄位和數據類型

select from table_name = sp_addlinkedserver   , , , sp_addlinkedsrvlogin  , ,, , * ITSV.資料庫名.dbo.表名

--導入示例

select into from sp_dropserver  ,  

--連接遠程/區域網數據(openrowset/openquery/opendatasource)

--1、openrowset

--查詢示例

select from 'SQLOLEDB ''sql伺服器名 ''用戶名 ''密碼 '* 表 openrowset( , ; ; ,資料庫名.dbo.表名)

openrowset( , ; ; ,資料庫名.dbo.表名)

select from b

set from 'SQLOLEDB ''sql伺服器名 ''用戶名 ''密碼 'as inner 本地表 b

on sp_addlinkedserver   , , , *

FROM 'SELECT *  FROM 資料庫.dbo.表名 'openquery(ITSV,  )

select from b

set openquery(ITSV,  ) a

inner 本地表 b a.列A=b.列A

*

FROM   'SQLOLEDB ''Data Source=ip/ServerName;User ID=登陸名;Password=密碼 ' opendatasource( ,  ).資料庫.dbo.表名

select from substringrightleftisnullEXEC 'NULL'

6,nocount {|}

使返回的結果中不包含有關受 Transact-SQL 語句影響的行數的信息。如果存儲過程中包含的一些語句並不返回許多實際的數據,則該設置由於大量減少了網絡流量,因此可顯著提高性能。NOCOUNT 設置是在執行或運行時設置,而不是在分析時設置。

SET ON NOCOUNT 為 時,返回計數

常識

fromOrder ,查詢時,先排序,後取

在SQL中,一個欄位的最大容量是8000,而對於nvarchar(4000),由於nvarchar是Unicode碼。

  

SQLServer2000同步複製技術實現步驟

一、 預備工作

1.發布伺服器,訂閱伺服器都創建一個同名的windows用戶,並設置相同的密碼,做為發布快照文件夾的有效訪問用戶

--管理工具

--計算機管理

--用戶和組

--右鍵用戶

--新建用戶

--建立一個隸屬於administrator組的登陸windows的用戶(SynUser)

2.在發布伺服器上,新建一個共享目錄,做為發布的快照文件的存放目錄,操作:

我的電腦 

--確定

3.設置SQL代理(SQLSERVERAGENT)服務的啟動用戶(發布/訂閱伺服器均做此設置)

開始(在連接端配置,比如,在訂閱伺服器上配置的話,伺服器名稱中輸入的是發布伺服器的IP)

開始"SQL SERVER 2000"namename 

要求:

srv1.庫名..author增加記錄則srv1.庫名..author記錄增加

srv1.庫名..author的phone欄位更新,則srv1.庫名..author對應欄位telphone更新

--*/

sp_addlinkedserver ,,,sp_addlinkedsrvlogin ,,,,--控制面板--管理工具--服務--右鍵 Distributed Transaction Coordinator--屬性--啟動--並將啟動類型設置為自動啟動

go

 

--然後創建一個作業定時調用上面的同步處理存儲過程就行了

 

 

設置方法:

我的電腦 

 

--在srv1中創建如下的同步處理存儲過程

create b namenamesrv2.庫名.dbo.author b,author i

where and

(b.<> i.or  

--插入新增的數據

insert nameid,,telphone author i

where exists(

select from where  

--刪除已經刪除的數據(如果需要的話)

delete srv2.庫名.dbo.author b

where exists(

select from where 

資料的領取方法(任選一):

1. 分享此篇文章到朋友圈,並獲得5個贊。

2. 分享本文到100人以上的數據分析微信群(溫馨提醒,小心被T)。

完成後,加微信 L23683716,發截圖,我們會儘快給您發送資料。

學習交流請加小編入群。

相關焦點

  • mysql常用sql語句總結
    SELECT column_name(s)FROM table_name1INNER JOIN table_name2ON table_name1.column_name=table_name2.column_name外連結查詢外連接(全部併集)mysql不支持,oricle,sql server都可以。
  • php mysql SQL注入語句構造
    由於PHP和MYSQL本身得原因,PHP+MYSQL的注射要比asp困難,尤其是注射時語句的構造方面更是個難點,本文主要是借對Okphp BBS v1.3一些文件得簡單分析,來談談php+mysql注射語句構造方式,希望本文對你有點幫助。
  • Mysql中一條SQL查詢語句是如何執行的?
    2.查詢流程解析select * from table1 where ID=10;這條語句相信大家再熟悉不過了,下面我們就看看這一條語句在mysql中是怎麼執行的。第一步:一條sql語句要經過連接器,客戶端要和mysql建立連接。
  • MySQL-SQL語句執行流程
    查詢緩存:  執行查詢語句的時候,會先查詢緩存(MySQL 8.0 版本後移除,因為這個功能不太實用)。分析器:  沒有命中緩存的話,SQL 語句就會經過分析器,分析器說白了就是要先看你的 SQL 語句要幹嘛,再檢查你的 SQL 語句語法是否正確。
  • 資料庫系列之MySQL中的SQL Mode介紹
    對於非事務表,如果值出現在單行語句或多行語句的第一行中,則中止該語句TRADITIONAL:使MySQL的行為像一個「傳統」的SQL資料庫系統,在向列中插入錯誤值時,此模式「給出錯誤而不是警告」。mysql> set @@session.sql_mode='';Query OK, 0 rows affected (0.00 sec)mysql> select @@session.sql_mode;++| @@session.sql_mode |++|
  • 提升SQL語句性能的方法
    用具體案例進行SQL語句性能提升的方法。先用實際案例分析了優化SQL語句的方法,然後再結合nat123這個實際案例分析了如何實現外網訪問內網Mysql資料庫的方法。線上mysql資料庫爆出一個慢查詢,DBA觀察發現,查詢時伺服器IO飆升,IO佔用率達到100%, 執行時間長達7s左右。優化方法:優化的總體思路是拆分sql,將排序操作和查詢所有信息的操作分開。
  • 一道簡單的sql語句題
    結果才發現,數據分析崗位大多注重的是資料庫的能力,比如sql語句的考察,hive的考察,以及一些運營思維的考察,所以第一次面試就很悲劇啦,不過題目還是很有代表性的。其他的不寫了,這裡只分享一個關於sql的題目。1、問題引出現在有兩個數據表,一個數據表記錄司機的信息,比如司機id,司機姓名,司機註冊時間等等,一個數據表記錄一天的訂單情況,比如訂單ID,訂單司機id,訂單時間。
  • MySQL語句中去除重複語句
    案例:id         姓名  課程名稱 分數1         張三     數學    692          李四        數學    893          張三        數學    69刪除除了自動編號不同,其他都相同的學生冗餘信息--按常理來說,這個sql
  • 《MySQL》系列 - select 語句是怎麼執行的?
    為此,我畫了張 mysql 的架構圖(你也可以理解為 sql 查詢語句的執行過程),如下所示:Mysql 架構圖首先 msql 分為 server 層和存儲引擎層兩個部分。server 層包括四個功能模塊,分別是:連接器、查詢緩存、優化器、執行器。
  • MySQL DELETE 刪除語句用法詳解與示例
    如果在語句中省略WHERE子句,該查詢將從資料庫表中刪除整個記錄。如果要使用單個delete查詢從多個表中刪除記錄,則必須使用delete語句添加JOIN子句。如果希望在不知道已刪除行數的情況下刪除表中的所有記錄,則必須使用提供更好性能的TRUNCATE table語句。
  • 【資料庫】MySQL常見SQL語句
    7、刪除資料庫-databasename - 資料庫名DROP DATABASE databasename;8、修改資料庫名alter database 舊名稱 modify name = 新名稱9、備份sql
  • MySQL 語句大全:創建、授權、查詢、修改等
    利用「mysqldump -u 用戶名 -p 資料庫名>備份名字」導出資料庫到文件C:\Program Files\MySQL\MySQL Server 5.5\bin>mysqldump -u root -p test >test.sqlEnter password: ***即可.
  • mysql修改語句UPDATE的使用
    今天介紹一下update的使用,這個關鍵詞就是修改資料庫語句。我們看看在哪些環境會用到修改語句,比如在編輯輸入資料的時候發現資料錄錯了,或者某個信息要修改,這個時候就需要用到update了。我們實現的是最後原理,不管是asp,jsp還是php實現最底層都是通過sql語句修改資料庫,實現達到的效果。通過程序篩選出數據,在指定去執行。我們看看demo我們先看看update的語法。
  • 利用圖形界面從SQL導入導出到MySQL
    從sql導出到mysql的方法很多,現介紹一種無需編程,直接利用sql和mysql裡的圖形界面進行導入導出的簡單方法。前提是已經安裝了sqlserver客戶端和mysql的圖形界面管理工具 phpmyadmin。
  • 經典SQL語句大全
    9、說明:創建視圖:create view viewname as select statement刪除視圖:drop view viewname10、說明:幾個簡單的基本的sql語句選擇:select * from table1 where 範圍插入:insert into table1(field1,field2
  • 學習MySQL的select語句
    select語句可 以用回車分隔$sql="select * from article where id=1"和  $sql="select * from article where id=1">都可以得到正確的結果,但有時分開寫或許能 更明了一點,特別是當sql語句比較長時。
  • mysql批量語句,怎麼保證操作都成功?
    在一個批量操作的sql中,如果一個失敗,其他的會怎麼樣呢第一種情況:先看一下,多條語句沒有事務控制的代碼$conn = Yii::$app->db1; $sql1 = 'insert into member (name,password) values ("yang","vincent")';$sql2 = 'insert into
  • MySQL資料庫的分組操作,語句拼接,列轉行操作
    本文介紹MySQL資料庫的分組操作,語句拼接,列轉行操作。關於group by 的sql_mode關於group by 的sql_modeonly_full_group_by說明:僅是MySQL5.7中存在,5.6和8.0都沒有,查看sql_modeselect @@sql_mode;在帶有group by 子句的select中,select後的條件列(非主鍵列),要麼是group by 後面的列,要麼需要在函數中
  • |sql|mysql|數據源|java|...
    package  com.mysql.cj.jdbc;  public  class  NonRegisteringDriver  implements  java  .  sql  .  獲取Statement  三種類型  要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3 種類型:  執行靜態SQL語句。通常通過Statement實例實現。  執行動態SQL語句。通常通過PreparedStatement實例實現。  執行資料庫存儲過程。
  • 15.Go語言編程之go-sql-driver操作MySQL資料庫實踐
    ` (注意是在項目目錄裡)➜ go get -u github.com/go-sql-driver/mysqlgo: downloading github.com/go-sql-driver/mysql v1.6.0➜ weiyigeek.top go get github.com/go-sql-driver/mysql# 項目地址➜ weiyigeek.top