日本一本亚洲最大|日本午夜免费啪视频在|国产自产在线视频一区|亚洲福利精品视频

    <object id="4ihfc"></object>
      
      
    1. <object id="4ihfc"></object>
    2. 我要投稿 投訴建議

      經(jīng)典SQL語句

      時間:2022-07-21 14:31:07 句子 我要投稿

      經(jīng)典SQL語句大全

      經(jīng)典SQL語句大全1

        Yii2自帶一個強大的命令行管理工具,在windows下打卡cmd命令窗口,切換到Y(jié)ii項目所在目錄(包含Yii.bat),就可以在cmd中運行Yii命令了。

        使用Yii migrate命令執(zhí)行sql語句:

        如在路徑為/console/migrations/m130524_201442_init.php這個文件定義了一張User表的sql,我們要執(zhí)行這個sql來生成數(shù)據(jù)表,就運行:

        migrate是Yii用于數(shù)據(jù)遷移的命令,這只是其中一個用法。

      經(jīng)典SQL語句大全2

        1.Top排序問題.

        我們經(jīng)常要對表某個字段進行排序,然后取前N名.所以我們會寫如下的SQL語句:

        selecttop100*from表

        orderbyScoredesc

        如果表非常大的話,那么這樣的操作是非常消耗資源的,因為SQLSERVER要對整個表進行排序,然后取前N條記錄.這樣的造作是在Temdb里邊進行的,所以極端的時候會報Log已滿這樣的錯誤.為了避免進行全表的排序,我們要做的僅僅是在Score上建立索引,這樣因為Score索引的葉級是有序的,只要在Score所以的頁級取前100個,然后根據(jù)書簽查找到實際的記錄,這樣對DB的性能就會有極大的提升.

        2.同一天問題.

        我們經(jīng)常要查找和一個日期同一天的記錄,所以我們回寫如下的SQL語句;

        declare@DateTimedatetime

        set@DateTime=getdate()

        select*from表

        whereconvert(10),F_Time,120)=convert(10),@DateTime,120)

        但是這樣寫的SQL語句帶來的問題就是不能使用F_Time上的索引了.為了近可能的使用F_Time上的索引,我們可以使用時間段查詢的方式來代替上邊的語句.

        declare@startdatetime

        declare@enddatetime

        declare@datetimedatetime

        set@datetime=getdate()

        tart=convert(10),@datetime,120)--一天的其始時間

        set@end=dateadd(ss,-1,dateadd(d,1,@start))--一天的結(jié)束時間

        select*from表whereF_Timebetween@startand@end

        這樣就解決了使用不上索引的問題.

        3.利用索引進行分組操作.】我們經(jīng)常要對某一字段進行分組,而對另外一些字段進行聚合操作.如果我們對分組的字段合理的使用索引,可以加快我們分組的速度.下邊以Northwind的Orders表為例:

        --orders表的EmployeeID上建有索引.

        selectEmployeeID,count(*)

        fromorders

        groupbyEmployeeID

        --查看執(zhí)行計劃,此查詢利用了EmployeeID上的索引.如改成如下查詢:

        selectEmployeeID,sum(Freight)

        fromorders

        groupbyEmployeeID

        --查看執(zhí)行計劃,此查詢則沒有使用EmployeeID上的索引.而是使用了全表掃描.那么原因是什么呢?是因為Freight沒有在EmployeeID的索引上,所以通過索引不能得到結(jié)果.而如果通過書簽查詢的成本太高,所以SQLSERVER選擇了使用全表掃描.而如果我們執(zhí)行在EmployeeID和Freight上建立復(fù)合索引呢?

        createindexidx_EmployeeIDonorders(EmployeeID,Freight)

        --再次執(zhí)行第二個查詢.查看執(zhí)行計劃.SQLSERVER使用的我們建立的索引.只需要使用索引就可以查詢到結(jié)果,極大的提高了我們的查詢速度.

      經(jīng)典SQL語句大全3

        1、創(chuàng)建數(shù)據(jù)庫: create database 數(shù)據(jù)庫名

        如:create database student;

        2、連接到一個已經(jīng)存在的數(shù)據(jù)庫: use 數(shù)據(jù)庫名

        如:use student;

        3、刪除數(shù)據(jù)庫:drop database 數(shù)據(jù)庫名

        如: drop database student;

        4、創(chuàng)建表:create table 表名列名列的數(shù)據(jù)類型列的約束])

        如:create table stuInfo(stuId int primary key,stuName var20) not null)

        5、刪除表: 表名

        如: stuInfo;

        6、修改表:alter table

        給表添加新列: alter table 表名 add 列名列的數(shù)據(jù)類型

        添加多列,中間用逗號隔開

        如:alter table stuInfo add stuGender var10)

        修改某列的數(shù)據(jù)類型:alter table 表名 modify 列名新數(shù)據(jù)類型

        如:alter table stuInfo modify stuGender int

        修改列名:alter table 表名 change 老列名新列名數(shù)據(jù)類型

        如:alter table stuInfo change stuName stuAddress var30)

        刪除列:alter table 表名 drop 列名

        如: alter table stuInfo drop stuGender

        7、將創(chuàng)建的表的語句反向?qū)С觯?show create table 表名

        8、查詢表的所有內(nèi)容:select * from 表名

        查詢表的部分內(nèi)容: select 列名列表 from 表名

        9、查詢表結(jié)構(gòu):show columns from 表名

        10、插入單行數(shù)據(jù): into 表名列名列表) values(值列表)

        11、插入多行數(shù)據(jù):作用相當于將數(shù)據(jù)從一個表復(fù)制到另一個表

         into 表名 (列名列表) select

        如將stuInfo表中的所有的學生姓名復(fù)制到students表中的stuName列中: into students(stuName) select stuName from stuInfo

        12、刪除數(shù)據(jù): from 表名 where過濾條件

        如刪除stuID為4的人的數(shù)據(jù): from stuInfo where stuId=4

      經(jīng)典SQL語句大全4

        單表的MySQL UPDATE語句:

        UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

        多表的UPDATE語句:

        UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

        UPDATE語法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要給予哪些值。WHERE子句指定應(yīng)更新哪些行。如果沒有WHERE子句,則更新所有的行。如果指定了ORDER BY子句,則按照被指定的順序?qū)π羞M行更新。LIMIT子句用于給定一個限值,限制可以被更新的行的數(shù)目。

        MySQL UPDATE語句支持以下修飾符:

        如果您使用LOW_PRIORITY關(guān)鍵詞,則UPDATE的執(zhí)行被延遲了,直到?jīng)]有其它的客戶端從表中讀取為止。

        如果您使用IGNORE關(guān)鍵詞,則即使在更新過程中出現(xiàn)錯誤,更新語句也不會中斷。如果出現(xiàn)了重復(fù)關(guān)鍵字沖突,則這些行不會被更新。如果列被更新后,新值會導(dǎo)致數(shù)據(jù)轉(zhuǎn)化錯誤,則這些行被更新為最接近的合法的值。

        如果您在一個表達式中通過tbl_name訪問一列,則UPDATE使用列中的當前值。例如,以下語句把年齡列設(shè)置為比當前值多一:

        MySQL> UPDATE persondata SET ageage=age+1;

        MySQL UPDATE賦值被從左到右評估。例如,以下語句對年齡列加倍,然后再進行增加:

        MySQL> UPDATE persondata SET ageage=age*2, ageage=age+1;

        如果您把一列設(shè)置為其當前含有的值,則MySQL會注意到這一點,但不會更新。

        如果您把被已定義為NOT NULL的列更新為NULL,則該列被設(shè)置到與列類型對應(yīng)的默認值,并且累加警告數(shù)。對于數(shù)字類型,默認值為0;對于字符串類型,默認值為空字符串(');對于日期和時間類型,默認值為“zero”值。

        UPDATE會返回實際被改變的行的數(shù)目。MySQL_info() C API函數(shù)可以返回被匹配和被更新的行的數(shù)目,以及在UPDATE過程中產(chǎn)生的警告的數(shù)量。

        您可以使用LIMIT row_count來限定UPDATE的范圍。LIMIT子句是一個與行匹配的限定。只要發(fā)現(xiàn)可以滿足WHERE子句的row_count行,則該語句中止,不論這些行是否被改變。

        如果一個UPDATE語句包括一個ORDER BY子句,則按照由子句指定的順序更新行。

        您也可以執(zhí)行包括多個表的UPDATE操作。table_references子句列出了在聯(lián)合中包含的表。以下是一個例子:

        SQL>UPDATE items,month SET items.price=month.price

        WHERE items.id=month.id;

        以上的例子顯示出了使用逗號操作符的內(nèi)部聯(lián)合,但是multiple-table UPDATE語句可以使用在SELECT語句中允許的任何類型的聯(lián)合,比如LEFT JOIN。

        注釋:您不能把ORDER BY或LIMIT與multiple-table UPDATE同時使用。

        在一個被更改的multiple-table UPDATE中,有些列被引用。您只需要這些列的MySQL UPDATE權(quán)限。有些列被讀取了,但是沒被修改。您只需要這些列的SELECT權(quán)限。

        如果您使用的multiple-table UPDATE語句中包含帶有外鍵限制的InnoDB表,則MySQL優(yōu)化符處理表的順序可能與上下層級關(guān)系的順序不同。在此情況下,語句無效并被 回滾。同時,更新一個單一表,并且依靠ON UPDATE功能。該功能由InnoDB提供,用于對其它表進行相應(yīng)的修改。

        目前,您不能在一個子查詢中更新一個表,同時從同一個表中選擇。

      經(jīng)典SQL語句大全5

        1、查詢語句:主要是由select關(guān)鍵字完成

        2、事務(wù)控制語句:主要由commit、rollback和savepoint三個關(guān)鍵字完成

        3、DML(數(shù)據(jù)操作語言)語句:主要由、update和三個關(guān)鍵字完成

        4、DDL(數(shù)據(jù)定義語言)語句:主要由create、alter、drop和truncate四個關(guān)鍵字完成

        5、DCL(數(shù)據(jù)控制語言)語句:主要由grant、revoke兩個關(guān)鍵字完成

      經(jīng)典SQL語句大全6

        SQL的意思是結(jié)構(gòu)化查詢語言,其主要功能是同各種數(shù)據(jù)庫建立聯(lián)系,進行溝通.查詢指的是對存儲于SQL的數(shù)據(jù)的請求。查詢要完成的任務(wù)是:將Select語句的結(jié)果集提供給用戶。Select語句從SQL中檢索出數(shù)據(jù),然后以一個或多個結(jié)果集的形式將其返回給用戶。

        ==========================================================

        Select基本語法結(jié)構(gòu)

        ==========================================================

        Select[predicate]{*|table.*|[table.]]field[,[table.]field2[,...]}

        [ASalias1[,alias2[,...]]]

        [INTOnew_table_name]

        FROMtableexpression[,...]

        [Where...]

        [GROUPBY...]

        [ORDERBY...][ASC|DESC]]

        predicate-->指定返回記錄(行)的數(shù)量,可選:ALL,TOP

        *--------->指定表中所有字段(列).

        table----->指定表的名稱.

        field----->指定表中字段(列)的名稱

        [ASalias]-替代表中實際字段(列)名稱的化名.

        [INTOnew_table_name]-->創(chuàng)建新表及名稱.

        tableexpression---->表的名稱.

        [GROUPBY...]表示以該字段的值分組

        [ORDERBY...]表示按升序排列,降序選DESC;

        ------------------------------------------------------------

        1選擇列

        ------------------------------------------------------------

        sql語句在access中的輸入方法

        (1)選擇"查詢"-->新建-->默認設(shè)計視圖-->點擊確定

        (2)關(guān)閉"顯示表對話框"

        (3)在菜單攔選擇"視圖"--->SQL視圖,就可以輸入SQL語句了

        示例1_1_選擇所有字段

        Select*

        FROMuseres;

        示例1_2_選擇部分字段

        Selectuser_name,real_name,submit_date

        FROMuseres;

        示例1_3查詢兩個表中的字段

        Select圖書信息表.圖書條碼,借書信息表.圖書條碼

        FROM圖書信息表,借書信息表;

        示例解讀:

        通過上面簡單示例我們體會到

        (1)Select子句選擇列表,它指出查詢結(jié)果集所包含的字段(列)及其屬性,選擇所有列時用通配府*,選擇部分列時要用逗號隔開

        (2)FROM子句指出查詢的表名,要指定多個表時中間用逗號隔開

        ------------------------------------------------------------

        2TOP指定返回記錄數(shù)量

        ------------------------------------------------------------

        示例1_4_返回記錄數(shù)量

        SelectTOP3*

        FROMuseres;

        -------------------------------------------------------------

        3AS派生新字段

        -------------------------------------------------------------

        示例1_5_派生新字段

        Selectuser_name,(submit_date+30)ASnew_date

        FROMuseres;

        ------------------------------------------------------------

        4Where指定條件進行篩選

        ------------------------------------------------------------

        示例1_6等號查找指定記錄

        Select*

        FROMuseres

        Whereuseres.real_name="紅紅";

        示例1_7年齡大于30的人

        Select*

        FROMuseres

        Whereage>30

        從上面可以看出,在根據(jù)條件進行篩選時,要用到運算符,常見的'運算符如下所示:

        1比較運算符

        =等于

        <>不等于

        >大于

        <小于

        <=小于等于

        >=大于等于

        2邏輯運算符

        ALL所有條件都為true則返回true

        AND兩個條件都為true則返回true

        OR有一個條件為true則返回true

        NOT對值取反

        ANY所有條件中只要有一個為true則返回true

        BETWEEN只要操作數(shù)在指定的范圍內(nèi),則返回true

        IN只要操作數(shù)等于表達式中的一個,則返回true

        LIKE如果操作數(shù)與模式相匹配,則返回true

        SOME在一系列的比較中,有些為true則返回true

        示例1_8_某日以前注冊用戶

        Select*

        FROMuseres

        Wheresubmit_date<#20xx-12-30#

        示例1_9_某時間段注冊用戶

        Select*

        FROMuseres

        Wheresubmit_dateBETWEEN#20xx-1-1#AND#20xx-5-1#

        示例1_10_按關(guān)鍵字查找

        Select*

        FROMuseres

        Whereuseres.real_nameLIKE"*李*"

        ------------------

        IN與OR的區(qū)別

        -----------------

        示例_IN篩選字段中的記錄

        Selectreal_name,submit_date

        FROMuseres

        Wherereal_nameIn("小李","小張")

        示例_OR篩選字段中的記錄

        Selectreal_name,submit_date

        FROMuseres

        Wherereal_name="小李"orreal_name="小張"

        ------------------------------------------------------------

        5GROUPBY分組結(jié)果集

        ------------------------------------------------------------

        示例1_12_GROUPBY分組結(jié)果集

        Selectsex,SUM(age)ASage之SUM

        FROMuseres

        GROUPBYuseres.sex

        ORDERBYSUM(age)DESC;

        示例解讀:

        按字段"sex"下的記錄對新"字段"age之SUM"進行分組.

        ORDERBY...DESC用來指定按降序排列

        本例中的sum為SQL中的聚合函數(shù)(對一組值進行操作,返回單一的匯總值),下面是常用的幾個聚合函數(shù):

        1SUM求總和函數(shù)

        格式:

        SUM([ALL|DISTINCT]expression)

        參數(shù):

        ALL對所有值求總和,默認為ALL

        DISTINCT求總和時排除重復(fù)項

        expression值或表達式,可以是變量,字段,函數(shù)等

        2AVG求平均值函數(shù)

        格式:

        AVG([ALL|DISTINCT]expression)

        參數(shù):

        ALL對所有值求平均,默認為ALL

        DISTINCT求平均時排除重復(fù)項

        expression值或表達式,可以是變量,字段,函數(shù)等

        3MIN和MAX函數(shù)分別為求最小值和最大值,格式和上面類似.

        4COUNT行計數(shù)函數(shù)

        格式:

        COUNT({[ALL|DISTINCT]expression|*})

        ALL表示計算除了NULL以外的其他項,為默認選項

        DISTINCT表示COUNT返回唯一非空值的數(shù)量

        expression為表達式,不能是txte,image,ntxt和uniqueidentifier類型的數(shù)據(jù).

        示例1_13_AVG求平均值函數(shù)

        Selectsex,AVG(age)ASage之AVG

        FROMuseres

        GROUPBYuseres.sex

        ORDERBYAVG(age)DESC;

        示例1_14_COUNT返回記錄數(shù)量

        SelectCOUNT(*)

        FROMuseres

        示例1_15_按性別分組記錄數(shù)量

        Selectsex,COUNT(*)

        FROMuseres

        GROUPBYsex;

        ------------------------------------------------------------

        6DISTINCT從尾部除去重復(fù)記錄

        ------------------------------------------------------------

        SelectDISTINCTreal_name

        FROMuseres

        ------------------------------------------------------------

        7組合查詢

        ------------------------------------------------------------

        當需要從多個表中查詢時,可以使用組合查詢

        Selectuseres.real_name,logtime.log_time

        FROMuseres,logtime

        Where(((useres.real_name)=[logtime].[real_name]));

      經(jīng)典SQL語句大全7

        復(fù)制代碼 代碼如下:

        ///

        /// 批量執(zhí)行SQL語句

        ///

        ///SQL語句數(shù)組

        ///SQL參數(shù)對象數(shù)組

        ///

        public static Int32 ExecuteSqls(String[] Sqlstr, Listparam)

        {

        String ConnStr = GetSqlConnection();

        using (SqlConnection conn = new SqlConnection(ConnStr))

        {

        SqlCommand cmd = new SqlCommand();

        SqlTransaction tran = null;

        cmd.Transaction = tran;

        try

        {

        conn.Open();

        tran = conn.BeginTransaction();

        cmd.Connection = conn;

        cmd.Transaction = tran;

        Int32 count = Sqlstr.Length;

        for (Int32 i = 0; i < count; i++)

        {

        cmd.CommandText = Sqlstr[i];

        cmd.Parameters.AddRange(param[i]);

        cmd.ExecuteNonQuery();

        }

        tran.Commit();

        return 1;

        }

        catch

        {

        tran.Rollback();

        return 0;

        }

        finally

        {

        cmd.Dispose();

        conn.Close();

        }

        }

        }

      經(jīng)典SQL語句大全8

        內(nèi)連接(inner join)。

        外連接:

        全連接(full join)、左連接(left join)、右連接(right join)。

        交叉聯(lián)接(cross join)。

        外連接與內(nèi)連接不一樣,外連接返回的查詢結(jié)果中不僅包含符合條件的行,還包括左表(左外連接),右表(右外連接)或者兩個連接表(全外連接)中的所有不符合條件的數(shù)據(jù)行。

        1.左連接 (left [outer] join)

        左外連接就是將左表的所有數(shù)據(jù)分別于右表的每條數(shù)據(jù)進行連接組合,返回的結(jié)果除內(nèi)連接的數(shù)據(jù)外,還有左表中不符合條件的數(shù)據(jù),并在右表的相應(yīng)列中填上null值。

        SQL語句如下:

        select * from mt_pb_org o left join mt_pb_orgframe f on o.PB_ORGFRAMEID = f.PB_ORGFRAMEID;

        等價語句:

        select * from mt_pb_org o,mt_pb_orgframe f where o.pb_orgframeid = f.pb_orgframeid(+);

        2.右連接 (right [outer] join)

        右外連接就是將右表中的所有數(shù)據(jù)分別與左表的每條數(shù)據(jù)進行連接組合,返回的結(jié)果除了內(nèi)連接的數(shù)據(jù)外,還有右表中不符合條件的數(shù)據(jù),并在左表相應(yīng)的列中填上null值。

        SQL語句如下:

        select * from mt_pb_org o right join mt_pb_orgframe on o.pb_orgframeid = f.pb_orgframeid;

        等價語句:

        select * from mt_pb_org o,mt_pb_orgframe f where o.pb_orgframeid(+) = f.pb_orgframeid;

        3.全外連接 (full [outer] join)

        全外連接就是將左表的所有數(shù)據(jù)分別與右表的每條數(shù)據(jù)進行連接組合,返回的結(jié)果除了內(nèi)連接的數(shù)據(jù)外,還有兩個表中不符合條件的數(shù)據(jù),并在左表或者右表的相應(yīng)列中填上null值。

        SQL語句如下:

        select * from mt_pb_org o full join mt_pb_orgframe o.pb_orgframeid = f.pb_orgframeid;

        4.交叉連接(cross join)

        交叉連接不帶WHERE 子句,它返回被連接的兩個表所有數(shù)據(jù)行的笛卡爾積,返回到結(jié)果集合中的數(shù)據(jù)行數(shù)等于第一個表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個表中符合查詢條件的數(shù)據(jù)行數(shù)。

        SQL語句如下:

        select * from mt_pb_org o cross join mt_pb_orgframe f;

      【經(jīng)典SQL語句】相關(guān)文章:

      sql面試筆試題01-08

      SQL數(shù)據(jù)庫工作簡歷模板03-01

      SQL程序員英文求職信02-14

      軟件測試(SQL方向)個人求職簡歷模板01-24

      SQL程序員英文求職信范文02-20

      精選經(jīng)典語句01-16

      經(jīng)典語句精選01-14

      經(jīng)典的語句精選12-07

      語句會慢慢懂得的經(jīng)典語句01-16

      關(guān)于愛情語句傷感經(jīng)典語句大全01-16