[編集、テスト、編集] MySQLデータベースの基本的な知識

1つ:データベースの関連概念

1.データベースの利点

①ローカルにデータを永続化できる
②構造化クエリ

2.データベースの一般的な概念

①DB:データベース、データを格納するためのコンテナ
②DBMS:データベースソフトウェアまたはデータベース製品とも呼ばれる、DBの作成と管理に使用されるデータベース管理システム
③SQL:構造化クエリ言語、データベースとの通信に使用される言語、特定ではないデータベースソフトウェアに固有ですが、ほとんどすべての主流のデータベースソフトウェアに共通の言語です

3.データベースストレージデータの特性

①データはテーブルに保存され、テーブルはライブラリに配置されます
。②ライブラリは複数のテーブルで構成でき、各テーブルにはそれ自体を識別するための一意のテーブル名
があります。③テーブルにはフィールドとも呼ばれる1つ以上の列があります。 Javaの属性と同等です
④表のデータの各行はJavaのオブジェクトと同等です

4.一般的なデータベース管理システム
Mysqloracle db2 sqlserver

2:MySQL

1.利点

①オープンソース、無料、低コスト
②高性能、携帯性良好
③小型、設置が容易

2. MySQLのインストール
は、C \ Sアーキテクチャのソフトウェアに属します。一般的に、サーバーがインストールされます。

3.MySQLサービスの開始と停止

①コマンド
netstart service name
net
stopservicename②コンピュータ管理-------- service

4. MySQLサービスのログインとログアウト
:mysql -hホスト名-Pポート番号-uユーザー名-pパスワード(デフォルトポート3306、ユーザールート)
終了:終了またはCtrl + c

5.mysqlの文法仕様

①大文字と小文字は区別されませんが、キーワードは大文字にし、テーブル名と列名は小文字にすることをお勧めします
。②各コマンドはセミコロンで終了する
必要があります。③各コマンドは必要に応じてインデントまたはラップできます。クエリ用に1行入力)
④コメント
1行コメント:#note text、-note text
複数行コメント:/ note text /
show database(); //現在のすべてのデータベースを表示
use +ライブラリ名; //指定されたライブラリを開く
( useを使用した後、そのライブラリにいます)
showtables; //現在のライブラリの
すべてのテーブルを表示ライブラリ名からテーブルを表示; //他のライブラリのすべてのテーブルを表示
createtable table name(
列タイプ、
列名列タイプ、
...
)//テーブル
記述テーブル名を作成します; //テーブルの構造をチェックし
てサーバーバージョン表示します:
方法1:mysqlサーバーにログインします
select version();
方法2:mysqlサーバーにログインしません
mysql --versionまたはmysql--V

3.MySQLのいくつかの基本的なクエリ
1.
テーブル名からマスターする基本的な選択クエリリスト
USEmanba;

#1。テーブル内の単一のフィールドをクエリします
SELECT last_name FROM manba;

#2。テーブル内の複数のフィールドをクエリします
SELECT last_name、salary、email FROM manba;

#3のすべてのフィールドのルックアップテーブル(左をダブルクリックします)
#仕方
SELECT
department_id
department_name
manager_id
location_id
FROM
Manba;
第二の方法
manba SELECT * FROM。

#4。定数値を照会します
SELECT 100;
SELECT'john ';
#(文字と文字列を区別しません)

#5。クエリ式
SELECT 100%98;

#6。クエリ関数
SELECT VERSION();

#7。エイリアスを取得する
/
①わかりやすい
②クエリするフィールドの名前が同じ場合は、エイリアスを使用して区別する
/
#方法1:
SELECT 100%98AS結果として使用;
SELECT last_name AS last name、first_name AS name FROMマンバ;


#方法2:スペースSELECT last_name last_name、first_name name FROM manba; #Case
:クエリsalary、表示結果は出力
SELECT salary AS "out put" FROM manba;

#8。削除


#Case :従業員テーブルに含まれるすべての部門番号を照会しますSELECT DISTINCT department_id FROM manba;

#9。+記号の役割

/ *
javaの+記号:
①演算子:両方のオペランドは数値
②コネクタ:一方のオペランドが文字列である限り

mysqlの+記号:
機能は1つだけです:演算子

select 100 + 90;
select '123' + 90;そのうちの1つは文字タイプであり、文字値を数値に変換しようとします。
変換が成功した場合は、追加操作を続行します
。select'john '+ 90;変換が失敗した場合は、文字配列値は0に変換されます。

null +10を選択します。そのうちの1つがnullである限り、結果はnullになります
* /

#Case:フィールドに接続する従業員の名前と姓を照会し、名前として表示します

SELECT CONCAT(last_name、first_name)AS姓名FROM manba;

#10。空かどうかを判断します
#commission_pctは空ですか?それが空の場合は、0を返す
SELECT
IFNULLボーナス率、AS(COMMISSION_PCT、0)
COMMISSION_PCT
FROM
manbaを。

2.条件付きクエリ
2.1条件式によるクエリ
#ケース1:給与が12000を超える従業員情報をクエリする

SELECT * FROM manba WHERE salary> 12000;

#ケース2:部門番号が90と等しくない従業員名と部門番号を照会する

SELECT last_name、department_id FROM manba WHERE department_id!= 90;

2.2論理式によるクエリ
ケース1:給与が10,000〜20,000の従業員の名前、給与、ボーナスをクエリする

SELECT last_name、salary、commission_pct FROM manba WHERE salary> = 10000 and salary <= 20000;

ケース2:部門番号が90〜110でないか、給与が15000を超える従業員の情報を照会します
。SELECT* FROM manba WHERE department_id <90 OR department_id> 110 OR salary> 15000;

2.3ファジークエリ
2.3.1ワイルドカードを使用した一般的な使用ワイルド
カード:%0を含む任意の数の文字
_任意の単一文字
ケース1:従業員名に文字aを含む従業員情報をクエリします
SELECT * from manba where last_name like '%a% ';
%はワイルドカードを表し、任意の数の文字を表します

ケース2:3番目の文字がnで5番目の文字がlである従業員の名前と給与を照会
します。SELECTlast_name、manbaからの給与。last_nameは '__n_l%'のようになります。


#ケース3:従業員名の2番目の文字が_である従業員名を照会します(エスケープ文字)SELECT last_name FROM manba WHERE last name LIKE ' _%';

2.3.2との
間①との間を使用して文の簡潔さを向上させる
重要な値を含める③2
つの重要な値の順序を逆にすることはできません

#ケース1:従業員数が100〜120の従業員の情報を照会する

SELECT * from manba where manba_id between 100 and 200;

2.3.3。
意味:フィールドの値がリスト内の
機能に属するかどうかを判断するために使用されます
①文の簡潔さを向上させるために使用されます
②リスト内の値のタイプは統一または互換性が必要です③
ワイルドカードをサポートしていません

#ケース:従業員のジョブタイプ番号のクエリは、IT_PROT、AD_VP、AD_PRESの従業員名とジョブタイプ番号のいずれか
です。SELECTlast_name、job_id FROMmanba WHERE
job_id = 'IT_PROT' OR job_id = 'AD_VP' OR job_id = 'AD_VP';

SELECT last_name、job_id FROMmanba WHERE job_id IN( 'IT_PROT'、 'AD_VP'、 'AD_VP');

2.3.4。isnull(is not null)
=または<>を使用してnull値を決定することはできません


#ケース1:ボーナスのない従業員の名前とボーナス率を照会するSELECT last_name、commission_pct FROM manba WHERE Commission_pct IS NULL;

#Safety equals <=> is null is replace to <=> null


#ケース1:ボーナスのない従業員の名前とボーナス率を照会するSELECT last_name、commission_pct FROM manba WHERE Commission_pct <=> NULL;


#ケース12:給与が12000の従業員に関する情報を照会するSELECT last_name、salary FROM manba WHERE salary <=> 12000;

3.ソートクエリの
導入:
select * from manba;
構文:
SELECTクエリリスト
テーブルから
[ここでフィルタ条件]
ソートリストによる順序[asc | desc]
機能:
ascは昇順を表し、descは降順を表し、デフォルトでは
サブによる昇順を記述しません。文は、単一のフィールド、複数のフィールド、式、関数、エイリアスをサポートできます。orderby
句は、limit句を除いて、通常、クエリステートメントの最後に配置されます。

#ケース1:従業員情報を照会し、高から低への給与の並べ替えを要求する
SELECT FROM manba ORDER BY salary DESC;
SELECT
FROM manba ORDER BY salary ASC;

#ケース2:部門番号が90以上の従業員の情報を入力時間でソートして照会する

SELECT *
FROM manba
WHERE department_id> = 90
ORDER BY Hiredate ASC;

#ケース3:年俸に応じて従業員情報と年俸を表示[式で並べ替え]
SELECT 、salary 12 (1 + IFNULL(commission_pct、0))AS
Annual Salary FROM manba
ORDER BY salary
12 *(1 + IFNULL(commission_pct、0) ))DESC;

#ケース4:年俸に従って従業員情報と年俸を表示する[エイリアスで並べ替え]
SELECT 、salary 12 *(1 + IFNULL(commission_pct、0))AS年次給与
FROM従業員ORDERBY
年次給与DESC;

#ケース5:従業員の名前と給与を名前の長さで表示する[関数で並べ替え]
SELECT LENGTH(last_name)ASバイト長、
last_name 、salary FROM manba
ORDER BY LENGTH(last_name )DESC;


#ケース6:従業員情報を、最初に給与の昇順で、次に従業員番号で降順でクエリします[複数のフィールドで並べ替え] SELECT * FROM manba
ORDER BY salary ASC、employee_id DESC;
全体的な順序は、給与が同じ場合、従業員ごとです。降順の番号

4.共通関数のアプリケーション
コンセプト:javaメソッドと同様に、論理ステートメントのグループがメソッド本体にカプセル化され、メソッド名が外部に公開されます。
利点:実装の詳細が非表示になり、コードの再利用性が向上します。
呼び出し:関数名の選択(実際のパラメーターのリスト) [表から(必要に応じて)];
機能:
①いわゆる(機能名)②何
(機能)
分類:
文字機能:長さconcat substr instr trim upper lower lpad rpad replace

数学函数: round ceil floor truncate mod

日期函数:now curdate curtime year month monthname 
day hour minute second str_to_date  date_format

其他函数:version database user

控制函数: if case

次号では、関数の適用やその他のクエリについてまとめます。

おすすめ

転載: blog.51cto.com/14972695/2575884