この記事を読むことにより、次のデータベース知識を得ることができます
2、MySQLのインストール、サービスの起動、データベースのリンク、データベース内のコメント
3、データベースの確立、データベースの一般的なクエリ、条件付きクエリ、10のテストの質問
1.MySQLの概要
MySQLは、スウェーデンの会社MySQL ABによって開発されたリレーショナルデータベース管理システムであり、現在はOracleの会社に属しています。MySQLはリレーショナルデータベース管理システムです。リレーショナルデータベースは、すべてのデータを大規模なウェアハウスに配置するのではなく、さまざまなテーブルにデータを格納するため、速度と柔軟性が向上します。
MySQLで使用されるSQL言語は、データベースにアクセスするために最も一般的に使用される標準化された言語です。MySQLソフトウェアは、コミュニティバージョンと商用バージョンに分けられる二重認証ポリシーを採用しています。サイズが小さく、速度が速く、総所有コストが低いため、特にオープンソースの特性により、中小規模のWebサイトの開発では一般にMySQLが選択されます。ウェブサイトデータベースとして。
データベース(DB)は、大量のデータを保存し、コンピューターで処理することで効率的にアクセスできるデータの集まりです。
データベース管理システム(データベース管理シスター、DBMS)、データベースを管理するために使用されるコンピューターシステム。
DBA:データベースの計画、設計、調整、保守、および管理を担当します
データベースは、データを格納するためのウェアハウスです。このウェアハウスは、特定のデータ構造(データ構造とは、データの編成またはデータ間の接続を指します)に従って編成および格納されます。データベース内のデータは、さまざまな方法で管理できます。 database.dataによって提供されます。プログラムはすべてメモリ内で実行されています。プログラムが終了するか、コンピュータの電源がオフになると、プログラム内のデータが失われるため、データの安全性を確保するために、一部のプログラムのデータをハードディスクに保持する必要があります。 。セックス。率直に言って、データベースはデータを保存するための倉庫です
2、MySQLのインストール、サービスの起動、データベースのリンク、データベース内のコメント
①mysqlのインストール
ここでは、MySQL8.0のバージョンを提供します。百度雲を抽出できます。Baiduで直接インストール検索:mysqlインストールチュートリアル。
注:ユーザー名とパスワードは、忘れないようにrootに設定するのが最適です。
リンク:https
://pan.baidu.com/s/1gu967eDmMhugDk5MhQVCfQ抽出コード:k1wm
このコンテンツをコピーしてBaidu Netdisk 携帯電話アプリを開くと、操作がより便利になります
②mysql設定ファイルの紹介
ここでは、my.ini構成ファイルに焦点を当てます。
[mysqld]:サーバー構成。ここでポート番号を変更できます。デフォルトのポート番号は3306です。
③mysqlサービスの開始
方法1:このコンピューターを右クリックし、[管理]をクリックします。サービスを手動で開始または閉じる
方法2:管理者としてサービスを開始するためのコマンドプロンプト
启动和停止服务:
net stop/start 服务名(不区分大小写)
脱落:
③MySQLサービスのログインとログアウト
上記のサービスを開始しましたが、サービスにログインするのはデータベースユーザーです。
④一般的なデータベースコマンド
-- 显示所有的数据库,分号结尾
show databases;
-- 使用当前数据库
use database;
--显示表
show tables;
show table from 库名
--查看表的结构
desc table;
--查看数据库版本
select version();
④データベース内の共通の注意事項
注:コメントとして-を使用する場合は、その前にスペースを残す必要があります。
三、データベースの確立、データベース一般クエリ、条件付きクエリ
1. myemployeesデータベースを使用しています:Baiduと抽出
リンク:https
://pan.baidu.com/s/15w-MtQDfui6BYNHfq2pwXw抽出コード:dmr2
このコンテンツをコピーした後、Baidu Netdisk 携帯電話アプリを開くと、操作がより便利になります
各テーブルフィールドの説明:
①従業員テーブル従業員
②部門テーブル部門
③ロケーションテーブルの場所
④ワークタイプテーブルジョブ
2.通常のクエリステートメント
①クエリテーブルの単一フィールド
構文:テーブル構造からテーブルフィールドを選択します
select last_name from employees;
②テーブル内の複数のフィールドをコンマで区切ってクエリします。このコンマは英語のコンマです。
select last_name,department_id from employees;
③フィールドにエイリアスを割り当てます。
利点:理解しやすいです。クエリフィールドの名前が同じである場合は、エイリアスを使用して区別します。キーワードとの競合を防ぐために、エイリアスに二重引用符を追加することをお勧めします。
// 方式一:使用as
select 100 as "结果";
// 方式二:使用空格
select 100 "结果";
④重複排除するには、重複排除するフィールドの前に配置されているdistinctキーワードを使用します
select distinct id from emp;
⑤文字列接続、連結(str1、str2、..。)
といった:
-- mysql 里面做字符的拼接使用的是concat(str1,str2)
select concat(name,xing) as 姓名 from table;
-- 查询字段使用逗号隔开
SELECT
CONCAT("employee_id",",","email") "result"
FROM
employees;
// IFNULL(判断的字段,如果为空被赋值的字段)
SELECT IFNULL(commission_pct,0) "奖金率" FROM employees;
3.条件付きクエリステートメント
ifnull关键字:
ifnull(1,2):如果1的位置为空,那么1位置上的值用2代替
4.テストの質問
-- 1. 查询工资大于 12000 的员工姓名和工资
SELECT
last_name,salary
FROM
employees
WHERE
salary > 12000;
-- 2. 查询员工号为 176 的员工的姓名和部门号和年薪
SELECT
last_name,
department_id,
salary*12*(1 + IFNULL(commission_pct,0)) AS '年薪'
FROM
employees
WHERE
employee_id = '176';
-- 3. 选择工资不在 5000 到 12000 的员工的姓名和工资
SELECT
last_name,
salary
FROM
employees
WHERE
salary NOT BETWEEN 5000 AND 12000;
-- 4. 选择在 20 或 50 号部门工作的员工姓名和部门号
SELECT
last_name,
department_id
FROM
employees
WHERE
department_id IN ('20','50');
-- 5. 选择公司中没有管理者的员工姓名及 job_id
SELECT
last_name,
job_id
FROM
employees
WHERE
manager_id IS NULL;
-- 6. 选择公司中有奖金的员工姓名,工资和奖金级别
SELECT
last_name,
salary,
commission_pct
FROM
employees
WHERE
commission_pct IS NOT NULL;
-- 7. 选择员工姓名的第三个字母是 a 的员工姓名
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '__a%';
-- 8. 选择姓名中有字母 a 和 e 的员工姓名
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '%a%e%' OR '%e%a%';
-- 9. 显示出表 employees 表中 first_name 以 'e'结尾的员工信息
SELECT
*
FROM
employees
WHERE
first_name LIKE '%e'
-- 10. 显示出表 employees 部门编号在 80-100 之间 的姓名、职位
SELECT
last_name,
job_id
FROM
employees
WHERE
department_id BETWEEN 80 AND 100;
-- 11. 显示出表 employees 的 manager_id 是 100,101,110 的员工姓名、职位
SELECT
last_name '员工姓名',
job_id '职位id'
FROM
employees
WHERE
manager_id IN ('101','100','110');
5.並べ替え
-- 按照表达式排序,支持别名
SELECT *,salary*12*(1 + IFNULL(commission_pct,0)) 年薪
FROM employees
ORDER BY 年薪 DESC
#按照姓名的字节数显示员工的姓名和工资
SELECT LENGTH(last_name) '名字长度',last_name,salary
FROM employees
ORDER BY LENGTH(last_name) DESC;
6.テスト
#1. 查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序
SELECT
last_name,
department_id,
salary*12*(1 + IFNULL(commission_pct,0))
FROM
employees
ORDER BY
salary*12*(1 + IFNULL(commission_pct,0)) DESC,
last_name ASC;
#2. 选择工资不在 8000 到 17000 的员工的姓名和工资,按工资降序
SELECT
last_name,
salary
FROM
employees
WHERE
salary NOT BETWEEN 8000 AND 17000
ORDER BY
salary DESC ;
#3. 查询邮箱中包含 e 的员工信息,并先按邮箱的字节数降序,再按部门号升序
SELECT
*
FROM
employees
WHERE
email LIKE '%e%'
ORDER BY
LENGTH(email) DESC,
department_id ASC;