MySQL -- データ開発の古典とソリューション

php是最好的语言
リリース: 2018-08-08 12:02:49
オリジナル
1352 人が閲覧しました

データ開発 - クラシック

  • 1. 姓のストロークで並べ替えます:

Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多
ログイン後にコピー
  • 2. データベースの暗号化:

select encrypt('原始密码')select pwdencrypt('原始密码')select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt('原始密码')select pwdencrypt('原始密码')select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同
ログイン後にコピー
  • 3. テーブル内のフィールドを取得します。

    りー

4. ハードディスクのパーティションを確認します:
  • declare @list varchar(1000),@sql nvarchar(1000) 
    select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='表A'set @sql='select '+right(@list,len(@list)-1)+' from 表A' exec (@sql)
    ログイン後にコピー

5. テーブル A と B が等しいかどうかを比較します:
  • EXEC master..xp_fixeddrives
    ログイン後にコピー

6. すべてのプロファイラー プロセスを強制終了します:
  • if (select checksum_agg(binary_checksum(*)) from A)
         =
        (select checksum_agg(binary_checksum(*)) from B)
    print '相等'elseprint '不相等'
    ログイン後にコピー

7 .レコード検索:
  • DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocessesWHERE program_name IN('SQL profiler',N'SQL 事件探查器')
    EXEC sp_msforeach_worker '?'
    ログイン後にコピー

  • ケース例 1: テーブルの最初のフィールドである RecID は、31 番目から 40 番目までを検索するための自己増加フィールドです。テーブル。

A) 分析より: このように書くと、テーブル内に recid の論理インデックスがある場合、いくつかの問題が発生します。
select top 10 recid from A where recid not in(select top 30 recid はインデックスから検索され、その後に A からの上位 30 件の選択がデータ テーブル内で検索されます。この方法では、インデックス内の順序がデータ テーブル内の順序と一致しない可能性があり、その結果、クエリが次のようになります。当初の意図したデータと異なります。

select top 10 recid from A where……解決策

开头到N条记录Select Top N * From 表
-------------------------------N到M条记录(要有主索引ID)Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID   Desc
----------------------------------N到结尾记录
Select Top N * From 表 Order by ID Desc
ログイン後にコピー

9: 現在のデータベース内のすべてのユーザーテーブルを取得します
  • 1,用order by select top 30 recid from A order by ricid 如果该字段不是自增长,就会出现问题2,在那个子查询中也加条件:select top 30 recid from A where recid>-1例2:查询表中的最后以条记录,并不知道这个表共有多少数据,以及表结构。set @s = 'select top 1 * from T   where pid not in (select top ' + str(@count-1) + ' pid  from  T)'print @s      exec  sp_executesql  @s
    ログイン後にコピー

10: 特定のテーブルのすべてのフィールドを取得します
  • select Name from sysobjects where xtype='u' and status>=0
    ログイン後にコピー

11: ビューと特定のテーブル関連ビュー、ストアド プロシージャ、関数
  • select name from syscolumns where id=object_id('表名')select name from syscolumns where id in (select id from sysobjects where type = 'u' and name = '表名')
    两种方式的效果相同
    ログイン後にコピー

12: 現在のデータベース内のすべてのストアド プロシージャを表示します
  • select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'
    ログイン後にコピー

13: ユーザーが作成したすべてのデータベースをクエリします
  • select name as 存储过程名称 from sysobjects where xtype='P'
    ログイン後にコピー

14: クエリを実行しますテーブルの特定のフィールドとデータ型
  • select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa')
    或者select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01
    ログイン後にコピー

15: 異なるサーバーデータベース間のデータ操作
  • select column_name,data_type from information_schema.columnswhere table_name = &#39;表名&#39;
    ログイン後にコピー
    --创建链接服务器exec sp_addlinkedserver   &#39;ITSV &#39;, &#39; &#39;, &#39;SQLOLEDB &#39;, &#39;远程服务器名或ip地址 &#39;exec sp_addlinkedsrvlogin  &#39;ITSV &#39;, &#39;false &#39;,null, &#39;用户名 &#39;, &#39;密码 &#39;
    ログイン後にコピー
    --查询示例select * from ITSV.数据库名.dbo.表名
    ログイン後にコピー

– リモート/LAN データの接続 (openrowset/openquery/opendatasource)
  • --导入示例select * into 表 from ITSV.数据库名.dbo.表名
    --以后不再使用时删除链接服务器exec sp_dropserver  &#39;ITSV &#39;, &#39;droplogins &#39;
    ログイン後にコピー

– ローカルテーブルをリモートテーブルにインポートします
  • --1、openrowset--查询示例select * from openrowset( &#39;SQLOLEDB &#39;, &#39;sql服务器名 &#39;; &#39;用户名 &#39;; &#39;密码 &#39;,数据库名.dbo.表名)--生成本地表select * into 表 from openrowset( &#39;SQLOLEDB &#39;, &#39;sql服务器名 &#39;; &#39;用户名 &#39;; &#39;密码 &#39;,数据库名.dbo.表名)
    ログイン後にコピー

– ローカルテーブルを更新します
  • insert openrowset( &#39;SQLOLEDB &#39;, &#39;sql服务器名 &#39;; &#39;用户名 &#39;; &#39;密码 &#39;,数据库名.dbo.表名)select *from 本地表
    ログイン後にコピー

– openqueryを使用するには接続を作成する必要があります
  • update bset b.列A=a.列A from openrowset( &#39;SQLOLEDB &#39;, &#39;sql服务器名 &#39;; &#39;用户名 &#39;; &#39;密码 &#39;,数据库名.dbo.表名)as a inner join 本地表 bon a.column1=b.column1
    ログイン後にコピー
    --首先创建一个连接创建链接服务器exec sp_addlinkedserver   &#39;ITSV &#39;, &#39; &#39;, &#39;SQLOLEDB &#39;, &#39;远程服务器名或ip地址 &#39;
    ログイン後にコピー
    rree
    --查询select *FROM openquery(ITSV,  &#39;SELECT *  FROM 数据库.dbo.表名 &#39;)
    ログイン後にコピー
    – 3. /openrowset
    • RREEERRREERREEEE

      関連する推奨事項:

    MYSQL の古典的なステートメントのコレクション - 開発

    MySQL データベースの手動インストール方法と中国語の解決策

    以上がMySQL -- データ開発の古典とソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!