MySQL(基础篇)之单表查询
一:表的结构和数据 CREATE TABLE `t_student` ( `id` INT PRIMARY KEY , `stuName` VARCHAR (10) NOT NULL, `age` INT NOT NULL , `sex` VARCHAR (4) , `gradeName` VARCHAR (10) NOT NULL ); INSERT INTO `t_student` (`id`, `stuName`, `age`, `sex`, `gra
一:表的结构和数据
CREATE TABLE `t_student` (
`id` INT PRIMARY KEY ,
`stuName` VARCHAR (10) NOT NULL,
`age` INT NOT NULL ,
`sex` VARCHAR (4) ,
`gradeName` VARCHAR (10) NOT NULL
);
INSERT INTO `t_student` (`id`, `stuName`, `age`, `sex`, `gradeName`) VALUES('1','张三',23,'男','一年级'),('2','张三丰',25,'男','二年级'),('3','李四',23,'男','一年级'),
('4','王五',22,'男','三年级'),('5','珍妮',21,'女','一年级'),('6','李娜',26,'女','二年级'),('7','王峰',20,'男','三年级'),('8','黄志浩',21,'男','二年级'),
('9','杨磊',22,'男','一年级'),('10','邹涛',25,'男','二年级'),('11','鲍文杰',21,NULL,'二年级'),('12','朱云芬',23,'男','二年级'),('13','朱云峰','24',NULL,'二年级');
这是我为大家练习准备的数据,下面正式开始单表查询.
二:单表查询
2.1 查询所有字段
1. Select 字段1,字段2,字段3……From 表名;
例:SELECT id,stuName,age,sex,gradeName FROM t_student;
2. Select * from 表名;
例:SELECT * FROM t_student;
两者区别: 前者可以通过改变查询字段的顺序来调整查询结果显示的顺序.
2.2 查询指定字段
Select 字段1,字段2,字段3……From 表名;
例:/*查询t_student表的所有age,sex,gradeName字段*/
SELECT age,sex,gradeName FROM t_student;
2.3 Where条件查询
1. Select 字段1,字段2,字段3……From 表名 Where 条件表达式;
例: 查询编号为1的学生
SELECT * FROM t_student WHERE id =1;
例: 查询年龄大于22的学生
SELECT * FROM t_student WHERE age>22;
例: 查询性别为男的学生
SELECT * FROM t_student WHERE sex='男';
2.4 带IN关键字查询
1. Select 字段1,字段2,字段3……From 表名 Where 条件表达式 [NOT] IN(元素1,元素2,元素3);
例: 查询年龄为22或者23的学生记录
SELECT * FROM t_student WHERE age IN (22,23);
例: 查询编号不为1和9的学生记录
SELECT * FROM t_student WHERE id NOT IN(1,9);
2.5 带BETWEEN的范围查询
1. Select 字段1,字段2,字段3……From 表名 Where 条件表达式 [NOT] BETWEEN 数值1 AND 数值2;
例: 查询编号为1-9的学生记录
SELECT * FROM t_student WHERE id BETWEEN 1 AND 9;
例: 查询年龄小于22大于25的学生记录
SELECT * FROM t_student WHERE age NOT BETWEEN 22 AND 25;
2.6 带Like的模糊查询
Select 字段1,字段2,字段3……From 表名 Where 条件表达式 [NOT] Like ‘字符串’;
‘%’: 代表任意字符,可以有或者没有
‘_’: 代表单个字符,必须要有
例: 查询姓名中包含张的学生记录
SELECT * FROM t_student WHERE stuName LIKE '%张%';
例: 查询姓名中第一个字为张的学生记录
SELECT * FROM t_student WHERE stuName LIKE '张%';
例: 查询姓名中第一个字为张,并且姓名只有2个字的学生记录
SELECT * FROM t_student WHERE stuName LIKE '张_';
2.7 空值查询
Select 字段1,字段2,字段3……From 表名 Where 条件表达式 IS[NOT] NULL;
例: 查询性别为null的学生记录
SELECT * FROM t_student WHERE sex IS NULL;
例: 查询性别不为null的学生记录
SELECT * FROM t_student WHERE sex IS NOT NULL;
2.8 带AND的多条件查询
Select 字段1,字段2,字段3……From 表名 Where 条件表达式1 AND 条件表达式2[...AND 条件表达式N];
例: 查询一年级中性别为男的学生记录
SELECT * FROM t_student WHERE gradeName='一年级' AND sex='男';
例: 查询二年级中年龄为22-24的学生记录
SELECT * FROM t_student WHERE gradeName='二年级' AND age BETWEEN 22 AND 24;
2.9 带OR的多条件查询
Select 字段1,字段2,字段3……From 表名 Where 条件表达式1 OR 条件表达式2[...OR 条件表达式N];
例: 查询年级为一年级或者年龄为23的学生记录
SELECT * FROM t_student WHERE gradeName='一年级' OR age=23;
2.10 DISTINCT去重复查询
Select Distinct 字段名 From 表名;
例子: 查询学生表所有的年级
SELECT DISTINCT gradeName FROM t_student ;
不加DISTINCT会有很多重复记录
2.11对查询结果进行排序
Select 字段1,字段2,字段3……From 表名ORDER BY 属性名 [ASC|DESC]
例: 查询所有学生记录并按年龄降序排序
SELECT * FROM t_student ORDER BY age DESC;
2.12 GROUP BY 分组查询
Select 字段1,字段2,字段3……From 表名 GROUP BY属性名;[HAVING 条件表达式][WITH ROLLUP];
1. 单独使用(毫无意义);
2. 与GROUP_CONCAT()函数一起使用;
3. 与聚合函数一起使用;
4. 与HAVING一起使用(对查询结果的筛选);
5. 与WITH ROLLUP一起使用(最后加入一个总和行);
例: 查询每个年级的所有学生姓名
SELECT gradeName,GROUP_CONCAT(stuName) FROM t_student GROUP BY gradeName;
例: 查询每个年级的学生个数
SELECT COUNT(stuName) AS '学生数量',gradeName AS '年级' FROM t_student GROUP BY gradeName;
例: 查询每个年级的学生个数并且选出学生数量大于3的年级
SELECT COUNT(stuName) AS '学生数量',gradeName AS '年级' FROM t_student GROUP BY gradeName HAVING COUNT(stuName)>3;
例: 查询每个年级的学生个数并在末尾加入一个总和行
SELECT COUNT(stuName) AS '学生数量',gradeName AS '年级' FROM t_student GROUP BY gradeName WITH ROLLUP;
2.13 LIMIT 分页查询
Select 字段1,字段2,字段3……From 表名 LIMIT 初始位置,记录数;
例: 查询所有学生记录的前5条记录
SELECT * FROM t_student LIMIT 0,5;
三:总结
单表查询就到此结束,大家要多多练习,谢谢大家,下期为大家带来聚合函数的使用.

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

NAVICAT自体はデータベースパスワードを保存せず、暗号化されたパスワードのみを取得できます。解決策:1。パスワードマネージャーを確認します。 2。NAVICATの「パスワードを記憶する」機能を確認します。 3.データベースパスワードをリセットします。 4.データベース管理者に連絡してください。

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

MySQLでテーブルをコピーするには、新しいテーブルの作成、データの挿入、外部キーの設定、インデックスのコピー、トリガー、ストアドプロシージャ、および機能が必要です。特定の手順には、同じ構造を持つ新しいテーブルの作成が含まれます。元のテーブルからデータを新しいテーブルに挿入します。同じ外部キーの制約を設定します(元のテーブルに1つがある場合)。同じインデックスを作成します。同じトリガーを作成します(元のテーブルに1つがある場合)。同じストアドプロシージャまたは関数を作成します(元のテーブルが使用されている場合)。

次のコマンドでmysqlデータベースを表示します。サーバーに接続します:mysql -u username -pパスワードrun showデータベース。すべての既存のデータベースを取得するコマンド[データベース]を選択します。データベース名を使用します。テーブルを表示:表を表示します。テーブル構造を表示:テーブル名を説明してください。データを表示:[テーブル名]から[ *]を選択します。

Passwordが暗号化された形式で保存されているため、MariadbのNavicatはデータベースパスワードを直接表示できません。データベースのセキュリティを確保するには、パスワードをリセットするには3つの方法があります。NAVICATを介してパスワードをリセットし、複雑なパスワードを設定します。構成ファイルを表示します(推奨されていない、高リスク)。システムコマンドラインツールを使用します(推奨されません。コマンドラインツールに習熟する必要があります)。

MySQLのコピーと貼り付けには、次の手順が含まれています。データを選択し、Ctrl C(Windows)またはCMD C(MAC)でコピーします。ターゲットの場所を右クリックして、貼り付けまたはCTRL V(Windows)またはCMD V(MAC)を使用します。コピーされたデータは、ターゲットの場所に挿入されるか、既存のデータを置き換えます(データが既にターゲットの場所に存在するかどうかに応じて)。

NAVICATでSQLを実行する手順:データベースに接続します。 SQLエディターウィンドウを作成します。 SQLクエリまたはスクリプトを書きます。 [実行]ボタンをクリックして、クエリまたはスクリプトを実行します。結果を表示します(クエリが実行された場合)。
