検索

基本的な mysql 構文を学習する

Jun 23, 2017 am 11:10 AM
mysqlベース勉強文法

はじめに

mysql

mysql 構文--この記事は、Navicat Premium (データベース管理ツール) を使用して学習します。 、mysql データを接続します。

この調査は主に 2 つの部分で構成されます:

1. ユーザーを作成し、データベースを作成し、ユーザーに権限を割り当て、ユーザー権限を削除します。

2. MYSQL の一般的なデータ型

3. テーブル - テーブル、主キー、外部キーの作成

4. データベース設計の 3 つの主要なパラダイム

以下のコードはすべてall in mysql 構文を使用して、新しいクエリ テーブルを編集します。

1. ユーザーを作成し、データベースを作成し、ユーザーに権限を割り当て、ユーザー権限を削除します。
/* SQL 複数行コメント*/
-- SQL 単一行コメント

Create user: CREATE USER 'username'@'hostname' IDENTIFIED BY 'password'; 空の場合。これは空で、デフォルトは % パーミッションです。これは、すべてのホストが接続できることを意味します。 : 配布権限: 分 データベース名に対する権限を付与します
データベース名に対する権限を削除します
データベースを作成します: CREATE DATABASE [IF NOT EXISTS] データベース名[CHARACTER SET[=] 'UTF8'];
このマシン内のすべてのデータベースをクエリします
: SHOW DATABASESmydb データベースを使用します↓
、これは、次のクエリがデフォルトで mydb データベースをターゲットにすることを意味します
USE mydb;Queryデータベース 内のすべてのデータ テーブル:
SHOW TABLES [FROM データベース]


2 MYSQL の一般的なデータ型


1. 文字型:

① CHAR(N) : N 文字の固定長の文字列 長さが足りない場合は自動的に空白が埋められます
② VARCHAR(N) : 文字バイトを格納します。可変長の。一般的に使用される 0~255
③ TEXT: 可変長の文字列を格納します。 (記事やその他の大きなコンテンツを公開するときによく使用されるフレーズ) 0~((2^16-1)*10^2);
④ TINYTEXT:0~((2^8-1)*10);
⑤ MEDIUMTEXT: 0~((2^24-1)*10^3)​​; ⑥ LINGTEXT:0~((2^32-1)*10^4)
⑦ enum("男", "女"); 、フィールドには列挙型データのみを収容できます。


2. 整形:
① TINYINT: 符号なし 0~2^8-1 符号あり -2^7~2^7-1;
② SMALLINT: 符号なし 0~2^16-1 符号あり -2^15 ~2^15-1;
③ MEDIUMINT: 符号なし 0~2^24-1 符号あり-2^23~2^23-1;
④ INT: 符号なし 0~2^32-1 符号あり -2^31~2 ^31-1 が最もよく使用されます。
⑤ BIGINT: 符号なし 0~2^64-1 符号あり -2^63~2^63-1;


3. 浮動小数点型:
① FLOAT: 小数点以下有効数字 7 桁まで精度が可能;
② DOUBLE: 小数点以下の有効数字 15 ~ 16 桁まで正確です。


IV. 日付と時刻のデータ型
注: 時刻ストレージは文字列またはタイムスタンプを使用するため、データベースでは日付型が使用されることはほとんどありません。
① DATE: 日時データを保存します



   
 【创建表

  CREATE TABLE [IF NOT EXISTS] 表单名(
  IF NOT EXISTS 可以省略,省略后重复创建报错.如果不省略,则创建时会检测表是否已存在,如果表存在则不再执行创建语句
  定义列:列名 数据类型 列表关键字
  )
  常用的列定义关键字:
          ① UNSIGNED: 设置列表为无符号列。只能设置类型为数字类型的列
          ② AUTO_INCREMENT PRIMARY KEY 设置列为自动增长列。自动增长列必须是主键。
          ③ NOT null:设置列为非空约束
          ④ UNIQUE:设置唯一性约束。该字段不能出现重复值。
          ⑤ DEFAULT: 设置默认值约束。


 【主键

      1、主键的注意事项?  主键默认为空!主键默认唯一性约束!
                                             只有主键才能设置自动增长(主键不一定自动增长,自动增长必须是主键)
                                            
      2、设置主键的方式?  
              ① 在列定义是设置: age SMALLINT(3) PRIMARY KEY,
              ② 在列定义完成后设置:  PRIMARY KEY(age),
    
 【外键】    
      1、设置外键有哪些注意事项
          ① 只有innodb的数据库引擎支持外键,修改mysql.ini文件:default-storage-engine=INNODB
          ② 外键与参照列的数据类型必须相同。(数值型要求长度和无符号都相同,字符串要求类型相同,长度可以不同。)
          ③ 设置外键的字段必须要有索引。如果没有索引,设置外键时会自动生成一个索引。

      2、设置外键的语法?
          [CONSTRAINT 外键名] FOREIGN KEY (外键字段) REFERENCES 参照表(参照字段) [ON DELETE SET NULL on update CASCADE]-- 设置参照完整性
          

      3、外键约束的参照完整性操作?
          参照操作:当对参照表的参照字段进行删除或者更新是,外键表中的外键如何应对。
          参照操作可选值:restrict 拒绝参照表删除或更新参照字段;(默认)
                                          NO ACTION 与 restrict一样,但这个指令只在mysql生效;
                                          cascade 删除或更新参照表的参照字段时,外键表的记录同步删除或更新;(外键表和参照表同步)
                                          set null 删除或更新参照表的参照字段时,外键表的外键设为null;
  
         

 

CREATE TABLE IF NOT EXISTS tb1( 
-- IF NOT EXISTS 可以省略,省略后重复创建报错.如果不省略,则创建时会检测表是否已存在,如果表存在则不再执行创建语句id INT(3),
    `name` VARCHAR(255) NOT null, -- name是系统关键字,所以使用反引号``包裹age SMALLINT(3) AUTO_INCREMENT PRIMARY KEY,
    lalala INT UNIQUE,
 height DOUBLE(3,2) DEFAULT 1.2 -- 设置默认值约束:默认值为1.2-- PRIMARY KEY(age));create table if not exists classes(
 id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  classname VARCHAR(255) NOT NULL );CREATE table if not EXISTS `user`(
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    clsId INT UNSIGNED,
    `name` VARCHAR(255) NOT NULL, CONSTRAINT user_fk_classes FOREIGN KEY (clsid) REFERENCES classes(id) ON DELETE SET NULL on update CASCADE)-- auto_increment-- 显示表结构SHOW TABLES;-- 显示表内容结构SHOW COLUMNS FROM TB1;-- 现实表的建表语句show create TABLE tb1;-- 删除表DROP TABLE IF EXISTS TB1;DROP TABLE IF EXISTS classes;DROP TABLE IF EXISTS `user`;-- 修改表名 ALTER table tb1 rename tb2;-- 修改字段 列-- alter table 表名 change 旧列名 新列名 列定义 [first|after某一列]-- first 将这个字段调整为表格第一列; after某一列: 将这个字段放到某一列后面alter table tb1 change height width VARCHAR(200) not NULL FIRST; 



-- 删除表中某一列alter table tb1 drop name;-- 新增一列:必选部分:alter table tb1 add haha DOUBLE(8,2)alter table tb1 add haha DOUBLE(8,2) DEFAULT 1.2 after age;-- 新增多列:不能调整列的位置,只能插在最后。alter table tb1 add (
    ha1 DOUBLE(3,2) UNSIGNED,
    ha2 VARCHAR(255)
);-- 同时修改多表明  rename table tb3 to tb1[,`USER`to user1];rename table tb2 to tb1,`USER`to user1;-- 增加主键约束alter table tb1 add PRIMARY KEY(id);-- 删除主键约束alter table tb1 drop PRIMARY KEY;-- 新增唯一性约束ALTER table tb1 add unique key(ha1);-- 删除唯一性约束:由于创建唯一性约束会默认创建索引,所以删除时,需删除索引ALTER table tb1 drop index ha1;    
-- 设置默认值约束:前提必须设置default 属性ALTER table tb1 alter ha1 set default 20;-- 删除默认值约束ALTER table tb1 alter haha drop default;-- 设置外键约束 必选部分  alter table tb1 add  foreign key (clsid)REFERENCES classes(id)alter table tb1 add constraint waijianming foreign key (clsid)REFERENCES classes(id) ON DELETE SET NULL on update CASCADE;-- 删除外键约束,由于常见外键时会生成索引,所以删除外键后,需要删索引。alter table tb1 drop foreign key waijianming;alter table tb1 drop INDEX waijianming;

SHOW COLUMNS FROM TB1;

3. テーブル - テーブル、主キー、外部キーを作成します
4 データベースの 3 つの主要なパラダイム

1: データ テーブルの各列 (フィールド) は非-取り外し可能 ポイントの最小単位。これは、各列の原子性を確保するためです。
使用する 使用する 使用する 使用する 使用する アウト アウト アウト アウト アウト アウト スルー スルー スルースルー スルー スルー スルー ライト スルー オフ ' 's' ' スルー アウト' ' スルー スルー アウト' スルー‐‐‐‐‐ ‐‐‐‐‐‐ 合わせて 13181621008'
列になります。すべて主キーに依存する必要があり、主キーに関連しない列は存在できません。言い換えれば、表は 1 つのことだけを説明します。

アウト スルー オフ オフ オフ ' through through through through through out through through through ‐ ‐ ‐‐ ‐ down through‐,
したがって: 注文情報と製品情報を同じテーブルに含めることはできません。

3. 第 3 正規形 (3NF): テーブル内の各列は、間接的ではなく主キーに直接関連付けられている必要があります。 (テーブル内の各列は主キーにのみ依存できます)。
例: 注文テーブルでは、支店顧客テーブルの後に顧客関連情報が必要です。注文テーブルでは、ユーザー ID のみが必要です。他の顧客情報は存在できません。他のユーザー情報は注文 ID ではなくユーザー ID に直接関連しているためです。


[第 2 正規形と第 3 正規形の本質的な違い]
は、2 つのテーブルが存在しないことです。第 2 正規形は、1 つのテーブルに複数の異なるエンティティの属性が含まれるため、複数のテーブルに分割する必要があることを意味します。 。
第 3 正規形では、複数のテーブルが複数のテーブルに分割されている必要があります。その場合、1 つのテーブルは別のテーブルの ID (主キー) のみを持つことができ、他の情報は持つことができません (他の情報は常に主キーを使用します)。另一表查询)



学习時刻的笔记、いくつかの危険な場所がある可能性があり、各位の批判を受け入れます。

反省、見直し、毎日少しずつ得る--------------------- より良い自分を目指して

以上が基本的な mysql 構文を学習するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQL Index Cardinalityはクエリパフォーマンスにどのように影響しますか?MySQL Index Cardinalityはクエリパフォーマンスにどのように影響しますか?Apr 14, 2025 am 12:18 AM

MySQLインデックスのカーディナリティは、クエリパフォーマンスに大きな影響を及ぼします。1。高いカーディナリティインデックスは、データ範囲をより効果的に狭め、クエリ効率を向上させることができます。 2。低カーディナリティインデックスは、完全なテーブルスキャンにつながり、クエリのパフォーマンスを削減する可能性があります。 3。ジョイントインデックスでは、クエリを最適化するために、高いカーディナリティシーケンスを前に配置する必要があります。

MySQL:新規ユーザー向けのリソースとチュートリアルMySQL:新規ユーザー向けのリソースとチュートリアルApr 14, 2025 am 12:16 AM

MySQL学習パスには、基本的な知識、コアの概念、使用例、最適化手法が含まれます。 1)テーブル、行、列、SQLクエリなどの基本概念を理解します。 2)MySQLの定義、作業原則、および利点を学びます。 3)インデックスやストアドプロシージャなどの基本的なCRUD操作と高度な使用法をマスターします。 4)インデックスの合理的な使用や最適化クエリなど、一般的なエラーのデバッグとパフォーマンス最適化の提案に精通しています。これらの手順を通じて、MySQLの使用と最適化を完全に把握できます。

実際のmysql:例とユースケース実際のmysql:例とユースケースApr 14, 2025 am 12:15 AM

MySQLの実際のアプリケーションには、基本的なデータベース設計と複雑なクエリの最適化が含まれます。 1)基本的な使用法:ユーザー情報の挿入、クエリ、更新、削除など、ユーザーデータの保存と管理に使用されます。 2)高度な使用法:eコマースプラットフォームの注文や在庫管理など、複雑なビジネスロジックを処理します。 3)パフォーマンスの最適化:インデックス、パーティションテーブル、クエリキャッシュを使用して合理的にパフォーマンスを向上させます。

MySQLのSQLコマンド:実用的な例MySQLのSQLコマンド:実用的な例Apr 14, 2025 am 12:09 AM

MySQLのSQLコマンドは、DDL、DML、DQL、DCLなどのカテゴリに分割でき、データベースとテーブルの作成、変更、削除、データの挿入、更新、削除、複雑なクエリ操作の実行に使用できます。 1.基本的な使用には、作成可能な作成テーブル、INSERTINTO INSERTデータ、クエリデータの選択が含まれます。 2。高度な使用法には、テーブル結合、サブQueries、およびデータ集約のためのグループに参加します。 3.構文エラー、データ型の不一致、許可の問題などの一般的なエラーは、構文チェック、データ型変換、許可管理を介してデバッグできます。 4.パフォーマンス最適化の提案には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、およびデータの一貫性を確保するためのトランザクションの使用が含まれます。

InnoDBは酸コンプライアンスをどのように処理しますか?InnoDBは酸コンプライアンスをどのように処理しますか?Apr 14, 2025 am 12:03 AM

INNODBは、ロックメカニズムとMVCCを通じて、非論的、一貫性、および分離を通じて原子性を達成し、レッドログを介した持続性を達成します。 1)原子性:Undologを使用して元のデータを記録して、トランザクションをロールバックできることを確認します。 2)一貫性:行レベルのロックとMVCCを介してデータの一貫性を確保します。 3)分離:複数の分離レベルをサポートし、デフォルトでrepeatable -readが使用されます。 4)持続性:Redologを使用して修正を記録し、データが長時間保存されるようにします。

MySQLの場所:データベースとプログラミングMySQLの場所:データベースとプログラミングApr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

MySQL:中小企業から大企業までMySQL:中小企業から大企業までApr 13, 2025 am 12:17 AM

MySQLは、中小企業に適しています。 1)中小企業は、顧客情報の保存など、基本的なデータ管理にMySQLを使用できます。 2)大企業はMySQLを使用して、大規模なデータと複雑なビジネスロジックを処理して、クエリのパフォーマンスとトランザクション処理を最適化できます。

Phantomの読み取りとは何ですか?Innodbはどのようにそれらを防ぐ(次のキーロック)?Phantomの読み取りとは何ですか?Innodbはどのようにそれらを防ぐ(次のキーロック)?Apr 13, 2025 am 12:16 AM

INNODBは、次のキーロックメカニズムを通じてファントムの読み取りを効果的に防止します。 1)Next-KeyLockingは、Row LockとGap Lockを組み合わせてレコードとギャップをロックして、新しいレコードが挿入されないようにします。 2)実際のアプリケーションでは、クエリを最適化して分離レベルを調整することにより、ロック競争を削減し、並行性パフォーマンスを改善できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境