日付19データベース制約
6780 ワード
データベース制約ソートクエリ 集約関数:1列のデータを1つの全体として縦方向の計算を行います. グループクエリー: ページングクエリ 拘束 データベースの設計 データベースのバックアップとリストア クエリーのソート構文:order by句*order byソートフィールド1ソート方式1、ソートフィールド2ソート方式2... ソート方法:*ASC:昇順、デフォルト.*DESC:降順. 注意:*複数のソート条件がある場合、現在のエッジの条件値が同じである場合、第2の条件が判断されます.
≪集約関数|Aggregate Function|oraolap≫:列のデータを全体として縦方向の計算を行います. count:個数1を計算する.一般的に空でない列を選択:プライマリ・キー2.count(*) max:計算最大値 min:最小値 を計算 sum:計算および avg:計算平均値 注意:null値を除外する集約関数の計算.ソリューション:1.計算のために空でない列を選択します.IFNULL関数 グループクエリー:構文:groupbyパケットフィールド;*注意:1.グループ化後のクエリーのフィールド:グループ化フィールド、集約関数(グループ化後のselectの後のフィールド)2.whereとhavingの違いは?1.whereは、パケットの前に限定され、条件を満たさない場合、パケットには関与しない.havingはグループ化後に限定する、結果を満たさなければクエリされない.where後に集約関数を付けることはできません.havingは集約関数の判断を行うことができます.
ページングクエリ構文:limitから始まるインデックス、各ページのクエリーの数. 式:開始インデックス=(現在のページ番号-1)*各ページに表示されるエントリ数-各ページに3つのレコード が表示されます.
拘束概念:表中のデータを限定し、データの正確性、有効性、完全性を保証する. 分類:1.プライマリ・キー制約:primary key 2.空でない制約:not null 3.一意の制約:unique 4.外部キー制約:foreign key 非空の制約:not null、ある列の値はnull 1ではありません.テーブルの作成時に制約CREATE TABLE stu(id INT、NAME VARCHAR(20)NOT NULL–nameが空でない)を追加します.2.テーブル作成後、空でない制約ALTER TABLE stu MODIFY NAME VARCHAR(20)NOT NULLを追加する.3.nameの非空拘束ALTER TABLE stu MODIFY NAME VARCHAR(20)を削除する. 一意の制約:unique、カラムの値を繰り返すことはできません.注意:*一意の制約にはNULL値がありますが、nullとして記録するレコードは1つしかありません.テーブルの作成時に、一意制約CREATE TABLE stu(id INT、phone_number VARCHAR(20)UNIQUE–携帯電話番号)を追加します.3.一意制約ALTER TABLE stu DROP INDEX phone_を削除するnumber; 4.テーブル作成後、一意制約ALTER TABLE stu MODIFY phone_を追加number VARCHAR(20) UNIQUE; プライマリ・キー制約:primary key. 注意:1.意味:空でない唯一の2.1つのテーブルには、プライマリ・キーとして1つのフィールドしかありません.プライマリ・キーは、テーブルに記録する一意の識別子 である.テーブルの作成時に、プライマリ・キー制約create table stu(id int primary key、--idにプライマリ・キー制約name varchar(20))を追加します. 主キーALTER TABLE stu DROP PRIMARY KEYを削除する. テーブル作成後、マスタキーALTER TABLE stu MODIFY id INT PRIMARY KEYを追加する. 自動成長: コンセプト:カラムが数値タイプの場合auto_を使用incrementは自動成長 に値するテーブルの作成時にプライマリ・キー制約を追加し、プライマリ・キーの自己成長create table stu(id int primary key auto_increment、--idにプライマリ・キー制約name varchar(20))を完了する. 自動成長ALTER TABLE stu MODIFY id INTを削除する. 自動成長ALTER TABLE stu MODIFY id INT AUTO_を追加INCREMENT;
外部キー制約:foreign keyは、テーブルとテーブルを関係させ、データの正確性を保証します.1.テーブルの作成時に、外部キー*構文を追加できます:create tableテーブル名(...外部キー列constraint外部キー名foreign key(外部キー列名)referencesプライマリテーブル名(プライマリテーブル列名);2.外部キーALTER TABLE表名DROP FOREGN KEY外部キー名を削除する.3.テーブルを作成した後、外部キーALTER TABLEテーブル名ADD CONTRAINT外部キー名FOREGN KEY(外部キーフィールド名)REFERENCESメインテーブル名(メインテーブル列名)を追加する.4.カスケード操作:メインテーブルのメインキーの変更はサブテーブルのデータに影響し、連動操作である.カスケード操作構文の追加:ALTER TABLE表名ADD CONTRAINT外部キー名FOREGN KEY(外部キーフィールド名)REFERENCESメインテーブル名(メインテーブル列名)ON UPDATE CASCADE ON DELETE CASCADE;2.分類:1.カスケード更新:ON UPDATE CASCADE 2.カスケード削除:ON DELETE CASCADE データベースの設計
2. データベース設計の様式*概念:データベースを設計する際に従う必要があるいくつかの規範.後のパターンの要求に従うには,まず前のすべてのパターンの要求に従わなければならない.
データベースのバックアップとリストア
≪集約関数|Aggregate Function|oraolap≫:列のデータを全体として縦方向の計算を行います.
-- 。 、
SELECT sex , AVG(math) FROM student GROUP BY sex; ( , / )
-- 。 、 ,
SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex;
-- 。 、 , : 70 , ( where , )
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex;
-- 。 、 , : 70 , , 。 2
(where group by ,having group by )
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING > 2;
ページングクエリ
SELECT * FROM student LIMIT 0,3; -- 1
SELECT * FROM student LIMIT 3,3; -- 2
SELECT * FROM student LIMIT 6,3; -- 3
3. limit MySQL" "
拘束
1.
1. :
1. ( ):
* :
* : ,
2. ( ):
* :
* : ,
3. :
* :
* : ,
2. :
1. ( ):
* :
* : , 。
2. :
* :
* : 。 , ,
3. ( ):
* :
* : , 。
3.
-- tab_category
-- cid ,
-- cname , , 100
CREATE TABLE tab_category (
cid INT PRIMARY KEY AUTO_INCREMENT,
cname VARCHAR(100) NOT NULL UNIQUE
);
-- tab_route
/*
rid ,
rname , , 100
price
rdate ,
cid ,
*/
CREATE TABLE tab_route(
rid INT PRIMARY KEY AUTO_INCREMENT,
rname VARCHAR(100) NOT NULL UNIQUE,
price DOUBLE,
rdate DATE,
cid INT,
FOREIGN KEY (cid) REFERENCES tab_category(cid)
);
/* tab_user
uid ,
username 100, ,
password 30,
name 100
birthday
sex , 1
telephone , 11
email , 100
*/
CREATE TABLE tab_user (
uid INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) UNIQUE NOT NULL,
PASSWORD VARCHAR(30) NOT NULL,
NAME VARCHAR(100),
birthday DATE,
sex CHAR(1) DEFAULT ' ',
telephone VARCHAR(11),
email VARCHAR(100)
);
/*
tab_favorite
rid id,
date
uid id,
rid uid , ,
*/
CREATE TABLE tab_favorite (
rid INT, -- id
DATE DATETIME,
uid INT, -- id
--
PRIMARY KEY(rid,uid), --
FOREIGN KEY (rid) REFERENCES tab_route(rid),
FOREIGN KEY(uid) REFERENCES tab_user(uid)
);
2. データベース設計の様式*概念:データベースを設計する際に従う必要があるいくつかの規範.後のパターンの要求に従うには,まず前のすべてのパターンの要求に従わなければならない.
, , , , , 。
: (1NF)、 (2NF)、 (3NF)、 - (BCNF)、 (4NF) (5NF, )。
* :
1. (1NF):
2. (2NF): 1NF , ( 1NF )
* :
1. :A-->B, A ( ) , B 。 B A
: --> 。 ( , ) -->
2. :A-->B, A , B A 。
:( , ) -->
3. :A-->B, A , B A 。
:( , ) -- >
4. :A-->B, B -- >C . A ( ) , B , B ( ) C , C A
: --> , -->
5. : , , , ( )
: :( , )
* :
* :
3. (3NF): 2NF , ( 2NF )
データベースのバックアップとリストア
1. :
* :
* : mysqldump -u -p >
* :
1.
2.
3.
4. 。source
2. :