、SQLの概要
SQLは、(構造化照会言語、SQL)データベースは、言語と通信するように設計されて、それはユーザーがリレーショナルデータベースを操作することができます構造化照会言語です。
SQLの機能:
SQLは、特定のデータベース・ベンダー独自の言語ではありません。SQLは、習得が容易であり、SQLは強力で柔軟な、非常に複雑で高度なデータベース操作することができ
SQLの構成は次のとおりです。
- データクエリ
- データ定義言語(データ定義言語、DDL)
- データ操作(DML)
- 制御データ(DCL)
*******************データ定義言語**********************
データベースまたはデータベース・オブジェクトを作成します
変更するデータベースまたはデータベースオブジェクトを変更
DROPは、データベースまたはデータベースオブジェクトを削除します
************データ操作言語(データ操作言語、DML)***********
SELECTは、テーブルまたはビューからデータを取得します
テーブルまたはビューにデータを挿入
UPDATEは、テーブルまたはビュー内のデータを変更します
テーブルまたはビューから削除データを削除
***************データ制御言語(データ制御言語、DCL)****************
権限を付与するために使用さGRANT
REVOKEを回復する許可を
二、MySQLの予備知識
埋め込みと動的SQLルール:高レベル言語プログラミングに使用される指定方法SQL文の規定、より複雑なアプリケーションに対応するために
(柔軟性と実効性を高めるだけでなく、SQL言語を共有するSQLのより高度な機能を持っているために)SQLの呼び出し: SQLルーチンの呼び出し規則
MySQLのベースを使用します:LAMPモード、WAMPモードL(Linux)のA(アパッチ) M(MySQLの)P(PHP、PerlやPython)
リレーショナルデータベース管理システム(RDBMS) :長所:小型、高速、オープンソース、GPL
MySQLの拡張言語要素
定数:また、リテラルまたはスカラー値として知られています
- 文字列定数:単一または二重引用符付きの文字列、ASCIIおよびUnicode文字列定数に文字列定数
- 数値定数:整数定数、浮動小数点定数
- 16進定数:進数字の各ペアは、文字に変換され、その前部文字「X」(または「X」)が存在します
- 日付と時刻の定数:「2018年6月5日」:日付と時刻を表す単一引用符文字列は、例えば、同封構成しました
- ビットフィールド値
- ブール:TRUE:1; FALSE:0
- NULL値
変数:
- ユーザー変数:変数は、多くの場合、列名域を区別するために使用される@記号、前にユーザーを追加します
- システム変数:他のSQL文で使用されるほとんどのシステム変数は、システム変数の前に2を追加する必要があります@
表現式は、定数、変数、カラム名、複素数演算、演算子および関数の組み合わせです。
- 文字式
- 数値式
- 日付型の式
第三に、データ定義(DDL)
(CREATE)のデータベースを作成します:CREATE DATABASEのか、CREATE SCHEMAステートメントを使用して
CREATE { DATABASE | SCHEMA } [ NOTが存在する場合] DB_NAME [ DEFAULT ] CHARACTERの SET [ = ] charset_nameに | [ DEFAULT ] COLLATE [ = ] COLLATION_NAME
例句:DATABASE test_syの文字セット= "UTF8" COLLATION = "utf8_general_ci" を作成、データベースmysql_testを作成します。
- 文字セット(文字セット):文字エンコーディングと文字を定義します。
- 文字列(照合):照合指定された文字セット。
データベース(SHOW)をチェックしてください:データベース内のすべての表を参照してください
SHOW {DATABASES | SCHEMAS} [ LIKE'pattern」| WHERE式expr ]
キーワードが指定されたデータベースの名前を一致させるために使用されると同じように、句は、データベースクエリの範囲の名前を指定するために使用される条件
例句:SHOWデータベース。"%テスト%" LIKE SHOWデータベース。
SHOWのTABLES:表ビュー以外のシステムデータベース
:データベース(USE)を選択し、データベースの「ジャンプ」から別のデータベースへのUSE DB_NAMEを。
データベースを変更します。警告
MySQLの> ALTERの データベースmysql_test - > DEFAULTの CHARACTERの SET GB2312 - > DEFAULT COLLATEのgb2312_chinese_ci。
データベースを削除します。
DROP { DATABASE | SCHEMA } [ 存在する場合] DB_NAME
例句:DROPデータベースハハハ。DROP DATABASE IFは、ハハハEXISTS。
*****************************テーブル定義******************* ***************
テーブルを作成します:リレーショナルデータベース内のデータテーブルは、データ・オブジェクトの最も重要で最も基本的な基本的な単位で、データが格納されています。
データテーブルは、各(行)のために、格納する(列)(行)によって設定されたフィールドとして定義され、フォーマットされたレコードを表し、(カラム)の各レコードのフィールドの値を表します。
CREATE [ TEMPORARY ] 表tbl_nameを ( フィールド名データ型1 [ カラムレベルの整合性制約] [ 初期値] [ 、2フィールド名データ型[カラムレベルの整合性制約] [ 初期値] ] [ 、... ] [ 、テーブル・レベルの整合性制約] )[ ENGINTエンジンタイプ= ]。
、「TEMPORARY」の付加は、一時テーブルでした
顧客の名前の顧客の基本情報内容を含むテーブルを作成し、性別、住所、既存のデータベースmysql_testに連絡先情報を、指定したテーブルの顧客ID番号を主キーの要件。
PRIMARY KEY(CUST_ID):主キーを指定
データの種類:
- int型のint
- ダブルフロート
- ブールブール
- Date型の日付
- タイムスタンプタイムスタンプ
- タイム・オブ・タイム固定長
- 文字型char
- 可変長文字varchar型
:表(ALTER)更新し、ALTER TABLE文を追加または削除列を、インデックスの作成や破壊、元の列のデータ型を変更、列またはテーブルの名前を変更し、テーブルのテーブルの解説やエンジンタイプを変更し、テーブルを再作成しますトリガ、ストアドプロシージャ、インデックスと外部キー。
1、列を追加
例如:向数据库mysql_test的表customers中添加一列,并命名为 cust_city,要求其不能为NULL,默认值为字符串“Wuhan”,且该列位 于原表cust_sex列之后。
ALTER TABLE mysql_test.customers ->ADD COLUMN cust_city char(10)NOT NULL DEFAULT ‘Wuhan’ AFTER cust_sex;
2、CHANGE[COLUMN]子句 修改表中列的名称或数据类型
3、ALTER[COLUMN]子句 修改或删除表中指定列的默认值
ALTER TABLE mysql_test.customers ->ALTER COLUMN cust_city SET DEFAULT ‘Beijing’;
4、MODIFY[COLUMN]子句 只修改指定列的数据类型,不会干涉它的列名
ALTER TABLE mysql_test.customers ->MODIFY COLUMN cust_name char(20) FIRST;
5、DROP[COLUMN]子句 删除表中多余的列
ALTER TABLE mysql_test.customers ->DROP COLUMN cust_contact;
6、RENAME[TO]子句 为表重新赋予一个表名
ALTER TABLE mysql_test.customers ->RENAME TO mysql_test.backup_customers;
给表重命名表的第二种写法:RENAME TABLE db_a.old_table TO db_b.new_table;
7、DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [ ,tbl_name ] … [RESTRICT | CASCADE]
查看表结构:
SHOW [FULL] COLUMNS {FROM | IN} tbl_name[{FROM | IN} db_name] [LIKE’pattern’ | WHERE expr]
例如:SHOW COLUMNS FROM t_role;
{DESCRIBE | DESC} tbl_name [col_name | wild]
例如:DESC t_role;
数据更新
数据查询
视图