ホームページ  >  記事  >  データベース  >  MySQL データベースの制約とページング

MySQL データベースの制約とページング

黄舟
黄舟オリジナル
2017-02-11 11:12:501361ブラウズ

この記事では、MySQL の学習ノートのデータ定義テーブルの制約とページング方法を主に紹介し、データ定義、主キー、外部キー、自動インクリメント、制約などの概念と使用法を例の形式で要約および分析します。関連する操作スキルについては、必要な友人が参考にすることができます

この記事では、MySQL 学習ノートのデータ定義テーブルの制約とページング方法を例を通して説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

1. 主キー 主キー

特徴: 主キーは、レコードを一意に識別するために使用される制約です。

create table user1(id int primary key,name varchar(32));
mysql> insert into user1 values(1,'hb');
Query OK, 1 row affected (0.10 sec)
mysql> insert into user1 values(1,'hb');
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> insert into user1 (name) values('hb');
ERROR 1364 (HY000): Field 'id' doesn't have a default value

2. auto_increament self-increase

3. テーブルの特定の列の値。繰り返しはできず、繰り返し NULL を追加できます

mysql> create table user2(id int primary key auto_increment,name varchar(34));
mysql> insert into user2 (name ) values ("name1");
Query OK, 1 row affected (0.09 sec)
mysql> insert into user2 (name ) values ("name2");
Query OK, 1 row affected (0.05 sec)
mysql> insert into user2 (name ) values ("name3");
Query OK, 1 row affected (0.13 sec)
mysql> select * from user2;
+----+-------+
| id | name |
+----+-------+
| 1 | name1 |
| 2 | name2 |
| 3 | name3 |
+----+-------+

null の挿入を許可し、複数存在することもできます

create table user3(id int primary key auto_increment,name varchar(34) unique);
mysql> create table user3(id int primary key auto_increment,name varchar(34) unique);
Query OK, 0 rows affected (0.39 sec)
mysql> insert into user3 (name ) values ("name3");
Query OK, 1 row affected (0.11 sec)
mysql> insert into user3 (name ) values ("name3");
ERROR 1062 (23000): Duplicate entry 'name3' for key 'name'

4. mysql テーブルの列は次のとおりですデフォルトで null 列を空にすることができない場合は、not null の説明

mysql> insert into user3 (name ) values (null);
Query OK, 1 row affected (0.12 sec)
mysql> insert into user3 (name ) values (null);
Query OK, 1 row affected (0.12 sec)
mysql> select * from user3;
+----+-------+
| id | name |
+----+-------+
| 3 | NULL |
| 4 | NULL |
| 1 | name3 |
+----+-------+
E f5 を使用できます。理論的には、最初にメインの監視を確立します。次に、スケジュールを確立します

従業員テーブル:

create table user4 (id int primary key auto_increment,name varchar(32) not null);
mysql> insert into user4 (name) values(null);
ERROR 1048 (23000): Column 'name' cannot be null

部門テーブル:

create table dept(id int primary key , name varchar(32));
e

概要:

① 外部キーはメインテーブルのメインカラムまたは一意のカラムのみを指すことができます

② 外部キーのデータ型は、それが指す列の型と一致している必要があります

③ 外部キーの値: NULL または列に存在する値を指します

④ 外部キーは主キー列を指すことができますこのテーブルまたは一意の

mysql は check

create table emp(
id int primary key ,
name varchar(32),
deptid int,
constraint myforeignkey foreign key(deptid) references dept(id)
);
mysql> select * from dept;
+----+-------+
| id | name |
+----+-------+
| 1 | name1 |
+----+-------+
1 row in set (0.00 sec)
mysql> insert into emp values(1,'aaa',1);
Query OK, 1 row affected (0.22 sec)
mysql> insert into emp values(1,'aaa',2);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> insert into emp values(1,'aaa',null);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> insert into emp values(2,'aaa',null);
Query OK, 1 row affected (0.13 sec)
mysql> select * from emp;
+----+------+--------+
| id | name | deptid |
+----+------+--------+
| 1 | aaa |   1 |
| 2 | aaa |  NULL |
+----+------+--------+
2 rows in set (0.00 sec)

mysql ページングをサポートしていません



基本構文:

select * from はどの項目から条件を制限するかを示します Get、いくつかの項目を取り出します mysqlは項目0からデータの取得を開始します

create table user99(age int check(age>13));
mysql> create table user99(age int check(age>13));
Query OK, 0 rows affected (0.19 sec)
mysql> insert into user99 values(99);
Query OK, 1 row affected (0.04 sec)
mysql> select * from user99;
+------+
| age |
+------+
|  99 |
+------+

中国語のスコアに従って並べ替え、項目3から5にチェックを入れます

mysql> select * from student;
+------+--------+---------+---------+------+
| id  | name  | chinese | english | math |
+------+--------+---------+---------+------+
|  1 | 张小明   |   89 |   78 |  90 |
|  2 | 李进    |   67 |   98 |  56 |
|  3 | 王五    |   87 |   78 |  77 |
|  4 | 李一   |   88 |   98 |  90 |
|  5 | 李来财    |   82 |   84 |  67 |
|  6 | 张进宝   |   55 |   85 |  45 |
|  7 | 张小明   |   75 |   65 |  30 |
+------+--------+---------+---------+------+
7 rows in set (0.05 sec)
mysql> select * from student limit 2,2;
+------+------+---------+---------+------+
| id  | name | chinese | english | math |
+------+------+---------+---------+------+
|  3 | 王五   |   87 |   78 |  77 |
|  4 | 李一  |   88 |   98 |  90 |
+------+------+---------+---------+------+
2 rows in set (0.00 sec)

Extended、ページング:pageNow、pageSize

select * fromは場所を示します条件 [グループ化…を持っている…を並べる…]limit どの項目から取り出すか、取り出す項目の数

select * from はどこを示しますか 条件[グループ化…を有する…を並べる…]limit (pageNow- 1)*pageSize,ページサイズ

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。