MySql データベースで一般的に使用される詳細な操作ステートメント (追加、削除、変更などを含む)

目次

関連する MySQL ステートメントを作成する

関連する MySQL ステートメントを削除する

関連する MySQL ステートメントを変更する

クエリ関連の MySQL ステートメント

バックアップと復元:

データベース権限設定

 他の文


関連する MySQL ステートメントを作成する

データベースを作成し、エンコード形式を指定します。

create DATABASE  IF NOT EXISTS mydb CHARSET=utf8

テーブルを作成します (テーブルの主キーとエンコード形式を指定します):

CREATE TABLE
IF NOT EXISTS `student` (
		`id` INT UNSIGNED AUTO_INCREMENT,
		`name` VARCHAR ( 50 ) NOT NULL,
		`age` INT NOT NULL,
		`sex` bit ( 2 ),
		`create_time` datetime,
		PRIMARY KEY ( `id` ) 
	) ENGINE = INNODB DEFAULT CHARSET = utf8;

テーブルのすべての列にデータを挿入します。

INSERT INTO students VALUES (3,'xiaofang',20,1,'2022-11-29 09:46:46','1999-03-16')

テーブルの一部の列にデータを挿入します。挿入されない列のデフォルト値は null です。

INSERT INTO students (`id`,`name`,`age`,`sex`) VALUES (1,'panshunjun',18,0)

テーブルを作成するときは、列が空ではなく、一意であることを指定します。

create TABLE t_stu(

sid int PRIMARY KEY auto_increment,

`name` VARCHAR(50) not null UNIQUE);

テーブルを作成し、テーブルに外部キーを指定します。

create table emp(
id int PRIMARY KEY auto_increment,
emp varchar(20),
deptId int,
CONSTRAINT fk_emp_dept FOREIGN KEY(deptId) REFERENCES dept(id))

関連する MySQL ステートメントを削除する

データベースをドロップします。

DROP DATABASE IF EXISTS mydb

テーブルを削除します (student はテーブル名です):

DROP table student

テーブルの列を削除する

alter table student drop `telphone`

条件に基づいてテーブルの内容を削除します。

delete from students where id=1

注: delete はテーブルの内容を削除することです。テーブルの構造はそのままです。drop はテーブル全体を削除することです。

最初にテーブルを削除してから、テーブルを再作成します。

TRUNCATE table t_project

テーブルの主キーを削除する

ALTER table students drop PRIMARY key

関連する MySQL ステートメントを変更する

データのエンコード形式を変更します (mydb はデータベース名、utf8 はエンコード形式です)。

ALTER DATABASE mydb CHARACTER set utf8

テーブルにいくつかの列を追加します (student はテーブル名です)。

alter table student add(`birthday` date,`phone` VARCHAR(20))

テーブルの列のタイプを変更します (student はテーブル名です)。

ALTER table student MODIFY `birthday` datetime

テーブル内の列の名前を変更します。

alter TABLE student change `phone` `telphone` varchar(22)

テーブルのテーブル名を変更します。

alter table student RENAME to students

条件に従ってテーブルのデータを変更します。

update students set age=28 where id BETWEEN 1 AND 3
update students set age=NULL where name in('panshunjun')

データベースのエンコード形式を変更します。

set CHARACTER_set_client =utf8

注: (CHARACTER_set_client は MySQL にデータを送信するための形式、character_set_results は MySQL から送信するための形式です。この変更方法は 1 回だけです。変更せずに 1 回変更する場合は、 my.ini 構成ファイル)

作成したテーブルに主キーを追加します。

ALTER table students ADD PRIMARY key(id)

作成済みのテーブルに外部キー制約を追加する

ALTER table emp

add CONSTRAINT fk_emp_dept FOREIGN KEY(deptId) REFERENCES dept(id)

クエリ関連の MySQL ステートメント

現在のデータベースをすべて表示します。

show databases

現在のデータベースの下にあるすべてのテーブルを表示します。

show tables

指定されたテーブルの作成ステートメントを照会します (student はテーブル名です)。

SHOW CREATE TABLE student

クエリ テーブルの構造 (student はテーブル名):

desc student

テーブルのすべての列データをクエリする

select * from students

指定された列を照会する

select name,age,sex,birthday from students

DISTINCT:重複データは 1 回だけ表示されます (すべてが同じ場合のみ、1 つの行にマージされます)。

SELECT DISTINCT `name`,age,id from students

列操作(計算、文字列連結)

select age+1 ,CONCAT('姓名:',name) from students

IFN ULL (age,0) -- age=null の場合、0 に変換

select name,IFNULL(age,0)+1 from students

カラムの別名省略可

select name,IFNULL(age,0)+1 as newAge from students

条件付きクエリ

select * from students where age>10 and `name` is not null

in メソッド:名前が xiaofang と zhangsan であるすべての情報を照会します

select * from students where `name` in ('xiaofang','zhangsan')

あいまいクエリ: '_' は任意の 1 文字に一致することを意味し、'%' は任意の n 文字に一致することを意味します

select * from students where `name` like 'panshunju_'
select * from students where `name` like 'pan%'

並び替え:年齢昇順、同年齢の場合は名前降順(デフォルトは昇順)

select * from students ORDER BY age ASC,name desc

集計関数を使用したクエリ:

テーブル内の行数を照会します。

select count(1) as '行数' number from students

Sum: sumAge をエイリアスとして age 列の合計をクエリします。

select sum(age) sumAge from students

最大値問題: age の最大値を問い合わせる

select max(age) as maxAge from students

平均問題:平均年齢のクエリ

select avg(age) as avgAge from students

関数の包括的な適用:テーブルの包括的なデータを計算します

select count(1) as 人数总和,sum(age) as 年龄总和,max(age) as 最大年龄,min(age) as 最小年龄,avg(age) as 年龄平均值 from students

Grouping: grouping (性別ごとの男女の合計数のクエリ)

select sex,count(*) from students where id>2 GROUP BY sex

グループ化条件:ここで、条件はグループ化を導く前の状態であり、グループ化を導く HAVING 後の状態です。

select sex,count(*) from students where id>2 GROUP BY sex HAVING count(*)>1

Limit : LIMIT は、検索を開始する行数と、クエリするデータの合計数を指定するために使用されます (0 は、データ行から開始することを意味します)。

select * from students LIMIT 0,5

mysql データベースのエンコーディングを表示します。

SHOW VARIABLES LIKE 'char%'

2 つのテーブルの結果セット (ユニオン) をマージします。

//创建表ab
create table ab(a int,b varchar(10))
INSERT into ab VALUES(1,'1')
INSERT into ab VALUES(2,'2')
INSERT into ab VALUES(3,'3')
INSERT into ab VALUES(4,'4')

//创建表cd
create table cd(c int,d varchar(10))
INSERT into cd VALUES(3,'3')
INSERT into cd VALUES(4,'4')

//合并结果集查询
select * from ab UNION select * from cd

複数テーブル結合クエリ -- 内部結合:

//标准写法:
select * from emp e INNER JOIN dept d on e.deptId=d.id

注:内部結合は、2 つのテーブルのデカルト積からすべての適格なコンテンツを検出し、適格でないコンテンツはテーブルに表示されません。

左外部結合クエリ:

//标准写法:

select emp,deptId,IFNULL(dname,'无数据') as dname from emp as e

left join dept d

on e.deptId=d.id

 注:左のテーブルをメイン テーブルとして使用する場合、メイン テーブルの既存のデータが表示されます。メイン テーブルに、条件を満たさない対応するスレーブ テーブルがない場合は、null が使用されて置き換えられます。それ。

右外部結合クエリ: (左外部結合クエリと同様)

//标准写法
select emp,deptId,d.id ,d.dname from emp as e

right JOIN dept d

on d.id=e.deptId

複数テーブル結合クエリの理解:例えば、テーブルaに5個のデータ(プライマリ)、テーブルbに4個のデータがある場合、無条件内部結合と左右外部結合クエリを使用すると、20個のデータが条件付き内部結合クエリを使用すると、20 個の適格なデータが表示され、条件付き左右外部結合クエリを使用すると、20 個の適格なデータが表示され、メイン テーブルのすべての無条件データが表示されます。

バックアップと復元:

//バックアップデータスクリプト(データベースの内容のみバックアップ)

mysqldump -uroot -p123 mydb3>c:/a.sql

// データベース スクリプトの復元 (2 つの方法)

mysqldump -uroot -p123 mydb3<c:/a.sql

source c:/a.sql

注: root データベース アカウント 123 データベース パスワード mydb3 データベース名 c:/a.sql 保存アドレス

データベース権限設定

データベースのユーザー名と固定 IP を指定します。

create USER [email protected] IDENTIFIED by '123456'

データベースのユーザー名と IP を指定します。

create USER admin@'%' IDENTIFIED by '123456'

ry データベースのすべての権限を、任意の IP で管理者ユーザーに付与します。

GRANT ALL ON ry.* to admin@'%'

ry データベース管理者アカウントの CREATE、ALTER、および DROP 権限を取り戻す

REVOKE CREATE,ALTER,DROP ON ry.* FROM admin@'%'

特定の IP でアカウントが所有する権限を表示する

SHOW GRANTS for admin@'%'

特定の IP でユーザーを削除する (権限の問題)

drop user admin@'%'

注: where (GRANT ALL (すべての権限) , GRANT CREATE (作成権限) , ALTER (変更権限) , DROP (削除権限) , INSERT (テーブル挿入権限) , UPDATE (テーブル変更権限) , DELETE (テーブル削除権限) 、SELECT ON (テーブルクエリ権限)

 他の文

データベースの切り替え:

use mydb

おすすめ

転載: blog.csdn.net/psjasf1314/article/details/128131859