【MySQL】完整性约束
"
目录
约束条件与数据类型的宽度一样,都是可选参数
作用:用于保证数据的完整性和一致性
主要分为:
- primary key (pk) # 标识该字段为该表的主键,能够唯一的标识记录
- foreign key (pk) # 标识该字段为该表的外键
- not null # 标识该字段不能为空
- unique key (uk) # 标识该字段的值是唯一的
- auto_increment # 标识该字段的值自动增长(整数类型,而且为主键)
- default # 为该字段设置默认值
- unsigned # 无符号
- zerofill # 使用0填充
说明:
- 是否允许为空,默认为null,设置not null,使字段不允许为空,必须赋值.
- 字段是否有默认值,缺省的默认值是null,如果插入记录时不给字段赋值,则此字段使用默认值null.
(设置枚举的默认值,且不为空:sex enum('boy', 'girl') not null default 'boy')
(设置年龄必须为正值(无符号)且不为空,默认为20:age int unsigned not null default 20)
not null
设置not null,插入值时不能为空.
-
# 创建测试表
-
mysql> create table test(id int not null);
-
Query OK, 0 rows affected (0.08 sec)
-
-
# 此时查看表结构,Null的标识为NO,即不允许为空
-
mysql> desc test;
-
+-------+---------+------+-----+---------+-------+
-
| Field | Type | Null | Key | Default | Extra |
-
+-------+---------+------+-----+---------+-------+
-
| id | int(11) | NO | | NULL | |
-
+-------+---------+------+-----+---------+-------+
-
1 row in set (0.00 sec)
-
-
# 插入一个空字符串是可以的(本人是在Mac系统上实测,这一步骤可能与Windows或Linux有差异)
-
mysql> insert into test values();
-
Query OK, 1 row affected, 1 warning (0.03 sec)
-
-
# 插入null时,直接报错
-
mysql> insert into test values(null);
-
ERROR 1048 (23000): Column 'id' cannot be null
-
-
# 此时查询记录
-
# 可见:int类型设置not null后,插入空字符串会替换成0
-
mysql> select * from test;
-
+----+
-
| id |
-
+----+
-
| 0 |
-
+----+
-
1 row in set (0.00 sec)
default
设置一个字段有默认值后,则无论这个字段是null还是not null,都可以插入空,插入空默认填入default指定的默认值.
-
# 第一种情况:default
-
mysql> create table test(id int default 1);
-
Query OK, 0 rows affected (0.07 sec)
-
-
mysql> desc test;
-
+-------+---------+------+-----+---------+-------+
-
| Field | Type | Null | Key | Default | Extra |
-
+-------+---------+------+-----+---------+-------+
-
| id | int(11) | YES | | 1 | |
-
+-------+---------+------+-----+---------+-------+
-
1 row in set (0.00 sec)
-
-
mysql> insert into test values();
-
Query OK, 1 row affected (0.04 sec)
-
-
mysql> select * from test;
-
+------+
-
| id |
-
+------+
-
| 1 |
-
+------+
-
1 row in set (0.00 sec)
-
-
-
# 第二种情况:not null + default
-
mysql> create table test(id int not null default 2);
-
Query OK, 0 rows affected (0.05 sec)
-
-
mysql> desc test;
-
+-------+---------+------+-----+---------+-------+
-
| Field | Type | Null | Key | Default | Extra |
-
+-------+---------+------+-----+---------+-------+
-
| id | int(11) | NO | | 2 | |
-
+-------+---------+------+-----+---------+-------+
-
1 row in set (0.00 sec)
-
-
mysql> insert into test values();
-
Query OK, 1 row affected (0.04 sec)
-
-
mysql> select * from test;
-
+----+
-
| id |
-
+----+
-
| 2 |
-
+----+
-
1 row in set (0.00 sec)
unique
中文翻译:不同的。在MySQL中称为单列唯一
单列唯一
-
# 创建unique方式1:
-
# 指定name唯一
-
mysql> create table test(
-
-> id int,
-
-> name char(3) unique
-
-> );
-
Query OK, 0 rows affected (0.17 sec)
-
-
# 插入相同的name,直接报错
-
mysql> insert into test values(1, 'zyk'), (2, 'zyk');
-
ERROR 1062 (23000): Duplicate entry 'zyk' for key 'name'
-
-
# 此时正常
-
mysql> insert into test values(1, 'zyk'), (2, 'xhh');
-
Query OK, 2 rows affected (0.01 sec)
-
Records: 2 Duplicates: 0 Warnings: 0
-
-
-
# 创建unique方式2:
-
mysql> create table test(
-
-> id int,
-
-> name char(3),
-
-> unique(id),
-
-> unique(name)
-
-> );
-
Query OK, 0 rows affected (0.09 sec)
-
-
# 可见:Key标识为UNI
-
mysql> desc test;
-
+-------+---------+------+-----+---------+-------+
-
| Field | Type | Null | Key | Default | Extra |
-
+-------+---------+------+-----+---------+-------+
-
| id | int(11) | YES | UNI | NULL | |
-
| name | char(3) | YES | UNI | NULL | |
-
+-------+---------+------+-----+---------+-------+
-
2 rows in set (0.00 sec)
联合唯一
即指定表中两条或以上的记录,只有当这些被指定的记录都相同时才符合联合唯一,否则不会被限制.
-
mysql> create table test(
-
-> ip char(15),
-
-> port int,
-
-> unique(ip, port) # 联合唯一
-
-> );
-
Query OK, 0 rows affected (0.08 sec)
-
-
# 此时查看表结构,Key的标识为MUL
-
mysql> desc test;
-
+-------+----------+------+-----+---------+-------+
-
| Field | Type | Null | Key | Default | Extra |
-
+-------+----------+------+-----+---------+-------+
-
| ip | char(15) | YES | MUL | NULL | |
-
| port | int(11) | YES | | NULL | |
-
+-------+----------+------+-----+---------+-------+
-
2 rows in set (0.00 sec)
-
-
# 插入两条不完全相同的数据
-
mysql> insert into test values
-
-> ('192.168.1.1', 3306),
-
-> ('192.168.1.2', 3306);
-
Query OK, 2 rows affected (0.03 sec) # 成功插入
-
Records: 2 Duplicates: 0 Warnings: 0
-
-
# 再插入一条存在的数据,被阻止
-
mysql> insert into test values('192.168.1.1', 3306);
-
ERROR 1062 (23000): Duplicate entry '192.168.1.1 -3306' for key 'ip'
primary key
一张表中可以:单列做主键,多列做主键(复合主键)
约束:字段的值不为空且值唯一,等价于not null unique
MySQL的存储引擎默认是InnoDB,对于InnoDB存储引擎来说,一张表必须有一个主键.
单列主键
-
mysql> create table test(
-
-> id int primary key, # 单列主键
-
-> name char(3)
-
-> );
-
Query OK, 0 rows affected (0.05 sec)
-
-
# 此时查看表结构,Key的标识为PRI
-
mysql> desc test;
-
+-------+---------+------+-----+---------+-------+
-
| Field | Type | Null | Key | Default | Extra |
-
+-------+---------+------+-----+---------+-------+
-
| id | int(11) | NO | PRI | NULL | |
-
| name | char(3) | YES | | NULL | |
-
+-------+---------+------+-----+---------+-------+
-
2 rows in set (0.00 sec)
-
-
# 插入两条id不同的数据
-
mysql> insert into test values
-
-> (1, 'zyk'),
-
-> (2, 'xhh');
-
Query OK, 2 rows affected (0.00 sec)
-
Records: 2 Duplicates: 0 Warnings: 0
-
-
# id已存在,阻止插入
-
mysql> insert into test value(2, 'jein');
-
ERROR 1062 (23000): Duplicate entry '2' for key 'PRIMARY'
复合主键
复合主键与联合唯一同理:
指定表中两条或以上的记录,只有当这些被指定的记录都相同时才符合复合主键的限制,否则不会被限制.
-
mysql> create table test(
-
-> ip char(15),
-
-> port int,
-
-> primary key(ip, port) # 复合主键
-
-> );
-
Query OK, 0 rows affected (0.06 sec)
-
-
mysql> insert into test values
-
-> ('192.168.1.1', 3306),
-
-> ('192.168.1.2', 3306);
-
Query OK, 2 rows affected (0.00 sec)
-
Records: 2 Duplicates: 0 Warnings: 0
-
-
mysql> insert into test values('192.168.1.1', 3306);
-
ERROR 1062 (23000): Duplicate entry '192.168.1.1 -3306' for key 'PRIMARY'
-
-
mysql> desc test;
-
+-------+----------+------+-----+---------+-------+
-
| Field | Type | Null | Key | Default | Extra |
-
+-------+----------+------+-----+---------+-------+
-
| ip | char(15) | NO | PRI | NULL | |
-
| port | int(11) | NO | PRI | NULL | |
-
+-------+----------+------+-----+---------+-------+
-
2 rows in set (0.01 sec)
auto_increment
被约束的字段自动增长,且必须同时被key约束.
不指定id,则自动增长:
-
mysql> create table test(
-
-> id int primary key auto_increment, # 约束字段自动增长
-
-> name varchar(20),
-
-> sex enum('boy', 'girl') default 'boy'
-
-> );
-
Query OK, 0 rows affected (0.05 sec)
-
-
# 表结构显示Extra的标识为auto_increment,即自动增长
-
mysql> desc test;
-
+-------+--------------------+------+-----+---------+----------------+
-
| Field | Type | Null | Key | Default | Extra |
-
+-------+--------------------+------+-----+---------+----------------+
-
| id | int(11) | NO | PRI | NULL | auto_increment |
-
| name | varchar(20) | YES | | NULL | |
-
| sex | enum('boy','girl') | YES | | boy | |
-
+-------+--------------------+------+-----+---------+----------------+
-
3 rows in set (0.00 sec)
-
-
# 插入两条记录
-
mysql> insert into test(name) values ('zyk'), ('xhh');
-
Query OK, 2 rows affected (0.00 sec)
-
Records: 2 Duplicates: 0 Warnings: 0
-
-
# 可见,id确为自动增长
-
mysql> select * from test;
-
+----+------+------+
-
| id | name | sex |
-
+----+------+------+
-
| 1 | zyk | boy |
-
| 2 | xhh | boy |
-
+----+------+------+
-
2 rows in set (0.00 sec)
指定id:
-
# 指定id插入两条数据
-
mysql> insert into test values
-
-> (4, 'join', 'girl'),
-
-> (7, 'lay', 'girl');
-
Query OK, 2 rows affected (0.01 sec)
-
Records: 2 Duplicates: 0 Warnings: 0
-
-
mysql> select * from test;
-
+----+------+------+
-
| id | name | sex |
-
+----+------+------+
-
| 1 | zyk | boy |
-
| 2 | xhh | boy |
-
| 4 | join | girl |
-
| 7 | lay | girl |
-
+----+------+------+
-
4 rows in set (0.00 sec)
-
-
# 再次插入一条不指定id的记录,会随着值最大的id+1
-
mysql> insert into test(name) values ('great white');
-
Query OK, 1 row affected (0.00 sec)
-
-
mysql> select * from test;
-
+----+-------------+------+
-
| id | name | sex |
-
+----+-------------+------+
-
| 1 | zyk | boy |
-
| 2 | xhh | boy |
-
| 4 | join | girl |
-
| 7 | lay | girl |
-
| 8 | great white | boy |
-
+----+-------------+------+
-
5 rows in set (0.00 sec)
-
-
#
-
mysql> insert into test(id, name) values (3, 'aaa');
-
Query OK, 1 row affected (0.04 sec)
-
-
mysql> select * from test;
-
+----+-------------+------+
-
| id | name | sex |
-
+----+-------------+------+
-
| 1 | zyk | boy |
-
| 2 | xhh | boy |
-
| 3 | aaa | boy |
-
| 4 | join | girl |
-
| 7 | lay | girl |
-
| 8 | great white | boy |
-
+----+-------------+------+
-
6 rows in set (0.00 sec)
对于自增的字段,在用delete删除后,再插入值,改字段仍按照删除前的位置继续增长.
应使用truncate清空表,trunacte是直接清空表,再删除数据量庞大的表时非常有用.
-
# delete删除表记录
-
mysql> delete from test;
-
Query OK, 8 rows affected (0.00 sec)
-
-
mysql> insert into test(name) values('zyk');
-
Query OK, 1 row affected (0.04 sec)
-
-
# 可见:delete删除表记录后,再插入值,仍然是按照删除前的位置继续增长
-
mysql> select * from test;
-
+----+------+------+
-
| id | name | sex |
-
+----+------+------+
-
| 9 | zyk | boy |
-
+----+------+------+
-
1 row in set (0.00 sec)
-
-
# truncate清空表
-
mysql> truncate test;
-
Query OK, 0 rows affected (0.00 sec)
-
-
mysql> insert into test(name) values('zyk');
-
Query OK, 1 row affected (0.00 sec)
-
-
# 此时id重新开始自增
-
mysql> select * from test;
-
+----+------+------+
-
| id | name | sex |
-
+----+------+------+
-
| 1 | zyk | boy |
-
+----+------+------+
-
1 row in set (0.00 sec)
清空表分区 delete 与 truncate 的区别:
- delete from tb # 有自增id时,删除后新增的数据的id仍然是按照未删除之前最大的id+1计算的
- truncate table tb # 直接清空表,数据量大时非常适用,删除速度比delete快,且id直接从0开始
步长与偏移量
auto_increment_increment:步长,默认为1
auto_increment_offset:起始的偏移量,默认为1
注意:如果偏移量大于步长,则偏移量的会被重设为1
-
# 查看步长与偏移量
-
mysql> show variables like 'auto_i%';
-
+--------------------------+-------+
-
| Variable_name | Value |
-
+--------------------------+-------+
-
| auto_increment_increment | 1 | # 步长
-
| auto_increment_offset | 1 | # 偏移量
-
+--------------------------+-------+
-
2 rows in set (0.00 sec)
-
-
# session为会话设置,只在本次链接中有效
-
mysql> set session auto_increment_increment = 5;
-
Query OK, 0 rows affected (0.00 sec)
-
-
# global全局(设置后需重新连接,才会生效)
-
mysql> set global auto_increment_increment = 5;
-
Query OK, 0 rows affected (0.00 sec)
-
-
mysql> set global auto_increment_offset = 3;
-
Query OK, 0 rows affected (0.00 sec)
-
-
# 重新连接后查看
-
mysql> show variables like 'auto_i%';
-
+--------------------------+-------+
-
| Variable_name | Value |
-
+--------------------------+-------+
-
| auto_increment_increment | 5 |
-
| auto_increment_offset | 3 |
-
+--------------------------+-------+
-
2 rows in set (0.00 sec)
-
-
# 先清空表
-
mysql> truncate table test;
-
Query OK, 0 rows affected (0.04 sec)
-
-
# 插入一条记录,可见:id是从3开始计算的
-
mysql> insert into test(name) values ('zyk');
-
Query OK, 1 row affected (0.04 sec)
-
-
mysql> select * from test;
-
+----+------+------+
-
| id | name | sex |
-
+----+------+------+
-
| 3 | zyk | boy |
-
+----+------+------+
-
1 row in set (0.01 sec)
-
-
# 再插入几条数据,可见:id每次自增5
-
mysql> insert into test(name) values ('zyk1'), ('zyk2'), ('zyk3');
-
Query OK, 3 rows affected (0.00 sec)
-
Records: 3 Duplicates: 0 Warnings: 0
-
-
mysql> select * from test;
-
+----+------+------+
-
| id | name | sex |
-
+----+------+------+
-
| 3 | zyk | boy |
-
| 8 | zyk1 | boy |
-
| 13 | zyk2 | boy |
-
| 18 | zyk3 | boy |
-
+----+------+------+
-
4 rows in set (0.00 sec)
foreign key
一 快速理解foreign key
之前创建表的时候都是在一张表中添加记录,比如如下表:
公司有3个部门,但是有1个亿的员工,那意味着部门这个字段需要重复存储,部门名字越长,越浪费。
这个时候,
解决方法:
我们完全可以定义一个部门表
然后让员工信息表关联该表,如何关联,即foreign key
我们可以将上表改为如下结构:
此时有两张表:
一张是employee表,简称emp表(关联表,也从从表)
一张是department表,简称dep表(被关联表,也叫主表)
注意:被关联表称为主表,关联表(也就是设置外键的表)称为从表.
-
# 先建立主表
-
mysql> create table dep(
-
-> id int primary key,
-
-> name varchar(20) not null,
-
-> descripe varchar(20) not null
-
-> );
-
Query OK, 0 rows affected (0.07 sec)
-
-
# 再建立从表
-
mysql> create table emp(
-
-> id int primary key,
-
-> name varchar(20) not null,
-
-> age int not null,
-
-> dep_id int,
-
# 与主表建立关联, fk_dep为自定义的外键名,不可重复:
-
-> constraint fk_dep foreign key(dep_id) references dep(id)
-
-> );
-
Query OK, 0 rows affected (0.05 sec)
-
-
mysql> insert into dep values
-
-> (1, "技术部", "各个大牛部们"),
-
-> (2, "销售部", "一本正经胡说八道部门"),
-
-> (3, "财务部", "花钱太多部门");
-
Query OK, 3 rows affected (0.00 sec)
-
Records: 3 Duplicates: 0 Warnings: 0
-
-
mysql> insert into emp values
-
-> (1, 'zyk', 19, 1),
-
-> (2, 'xhh', 18, 2),
-
-> (3, 'jein', 18, 3),
-
-> (4, 'egon', 18, 2),
-
-> (5, 'lisi', 18, 3);
-
Query OK, 5 rows affected (0.04 sec)
-
Records: 5 Duplicates: 0 Warnings: 0
-
-
# 如果从表中有与主表中关联的行,则不允许删除主表中的被关联的行
-
mysql> delete from dep where id=1;
-
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`db`.`emp`, CONSTRAINT `fk_dep` FOREIGN KEY (`dep_id`) REFERENCES `dep` (`id`))
-
-
# 删除从表中与主表中关联的的行(dep_id=1)
-
mysql> delete from emp where dep_id = 1;
-
Query OK, 1 row affected (0.03 sec)
-
-
# 此时可删除主表中的数据
-
mysql> delete from dep where id = 1;
-
Query OK, 1 row affected (0.01 sec)
-
-
mysql> select * from dep;
-
+----+-----------+--------------------------------+
-
| id | name | descripe |
-
+----+-----------+--------------------------------+
-
| 2 | 销售部 | 一本正经胡说八道部门 |
-
| 3 | 财务部 | 花钱太多部门 |
-
+----+-----------+--------------------------------+
-
2 rows in set (0.00 sec)
同步表:
on delete cascade # 同步删除
on update cascade # 同步更新
-
# 主表内容如下
-
mysql> select * from dep;
-
+----+-----------+--------------------------------+
-
| id | name | descripe |
-
+----+-----------+--------------------------------+
-
| 1 | 技术部 | 各个大牛部们 |
-
| 2 | 销售部 | 一本正经胡说八道部门 |
-
| 3 | 财务部 | 花钱太多部门 |
-
+----+-----------+--------------------------------+
-
3 rows in set (0.00 sec)
-
-
# 建立从表
-
mysql> create table emp(
-
-> id int primary key,
-
-> name varchar(20) not null,
-
-> age int not null,
-
-> dep_id int,
-
-> constraint fk_dep foreign key(dep_id) references dep(id)
-
-> on delete cascade # 同步删除
-
-> on update cascade # 同步更新
-
-> );
-
Query OK, 0 rows affected (0.08 sec)
-
-
# 从表插入以下数据
-
mysql> select * from emp;
-
+----+------+-----+--------+
-
| id | name | age | dep_id |
-
+----+------+-----+--------+
-
| 1 | zyk | 19 | 1 |
-
| 2 | xhh | 18 | 2 |
-
| 3 | jein | 18 | 3 |
-
| 4 | egon | 18 | 2 |
-
| 5 | lisi | 18 | 3 |
-
+----+------+-----+--------+
-
5 rows in set (0.00 sec)
-
-
-
# 同步更新
-
mysql> update dep set id=10 where id=1;
-
Query OK, 1 row affected (0.04 sec)
-
Rows matched: 1 Changed: 1 Warnings: 0
-
-
mysql> select * from dep;
-
+----+-----------+--------------------------------+
-
| id | name | descripe |
-
+----+-----------+--------------------------------+
-
| 2 | 销售部 | 一本正经胡说八道部门 |
-
| 3 | 财务部 | 花钱太多部门 |
-
| 10 | 技术部 | 各个大牛部们 |
-
+----+-----------+--------------------------------+
-
3 rows in set (0.00 sec)
-
-
# 此时可见:与主表关联的dep_id也跟着变化了
-
mysql> select * from emp;
-
+----+------+-----+--------+
-
| id | name | age | dep_id |
-
+----+------+-----+--------+
-
| 1 | zyk | 19 | 10 |
-
| 2 | xhh | 18 | 2 |
-
| 3 | jein | 18 | 3 |
-
| 4 | egon | 18 | 2 |
-
| 5 | lisi | 18 | 3 |
-
+----+------+-----+--------+
-
5 rows in set (0.00 sec)
-
-
-
# 同步删除
-
mysql> delete from dep where id=3;
-
Query OK, 1 row affected (0.00 sec)
-
-
mysql> select * from dep;
-
+----+-----------+--------------------------------+
-
| id | name | descripe |
-
+----+-----------+--------------------------------+
-
| 2 | 销售部 | 一本正经胡说八道部门 |
-
| 10 | 技术部 | 各个大牛部们 |
-
+----+-----------+--------------------------------+
-
2 rows in set (0.00 sec)
-
-
# 此时可见:与主表关联的dep_id也被删除了
-
mysql> select * from emp;
-
+----+------+-----+--------+
-
| id | name | age | dep_id |
-
+----+------+-----+--------+
-
| 1 | zyk | 19 | 10 |
-
| 2 | xhh | 18 | 2 |
-
| 4 | egon | 18 | 2 |
-
+----+------+-----+--------+
-
3 rows in set (0.00 sec)
"
【MySQL】完整性约束的更多相关文章
- mysql 完整性约束
mysql 完整性约束 数据的完整性概述根据完整性实施的方法将完整性约束分为四类:1.实体完整性 实体完整性的实现:通过在表中设置主键约束.唯一约束或标识列来实现 主键约束:应用于表列的一个约束 用法 ...
- {MySQL完整性约束}一 介绍 二 not null与default 三 unique 四 primary key 五 auto_increment 六 foreign key 七 作业
MySQL完整性约束 阅读目录 一 介绍 二 not null与default 三 unique 四 primary key 五 auto_increment 六 foreign key 七 作业 一 ...
- mysql完整性约束
第一:完整性约束介绍 为了防止不符合规范的数据进入数据库,在用户对数据进行插入.修改.删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能写入数据库,以确保数据库中存储的 ...
- MySQL完整性约束foreign key与表操作。
一 MySQL中表的完整性约束: 我们首先知道约束条件跟类型的宽度一样,都是可选的,也就是说,我们在创建表的时候可以不指定,但是为了创建的表更加的完整,我们一般会加一些约束条件,name下面我们讲一 ...
- SQL学习笔记三(补充-3)之MySQL完整性约束
阅读目录 一 介绍 二 not null与default 三 unique 四 primary key 五 auto_increment 六 foreign key 七 作业 一 介绍 约束条件与数据 ...
- mysql数据库从删库到跑路之mysql完整性约束
一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY ...
- 数据库——MySQL——完整性约束
约束,就是用来保证数据完整性和一致性的. 常见的约束分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NO ...
- 百万年薪python之路 -- MySQL数据库之 完整性约束
MySQL完整性约束 一. 介绍 为了防止不符合规范的数据进入数据库,在用户对数据进行插入.修改.删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数 ...
- python之路--MySQL 库,表的详细操作
一 库操作 数据库命名规则 可以由数字,字母,下划线,@, #, $ 区分大小写 唯一性 不能使用关键字如 create select 不能单独使用数字 最长128位 # 这些是对上次的补充. 二 ...
- python全栈开发day54-mysql库操作、表操作、数据类型、完整性约束
一.昨日内容回顾 1.mysql的安装 1).解压文件 添加环境变量bin 2).初始化mysql生成数据data文件夹: mysqld --initialize-insecure 3).mysqld ...
随机推荐
- POJ3258 River Hopscotch(二分最大化最小值)
题目链接:http://poj.org/problem?id=3258 题意:给n个石头,起点和终点也是两个石头,去掉这石头中的m个,使得石头间距的最小值最大. 思路:二分石头间的最短距离,每次贪心地 ...
- Css3 里的弹性盒的比例关系
前两天朋友出去面试遇到了尴尬的问题,原题是:"在一个盒子里包裹着三个子元素,让子元素的宽度以1:1.1:2.1:3的关系依次展示" 这就尴尬了啊.................. ...
- DBContext基础查询
https://www.cnblogs.com/gosky/p/5752001.html 遍历所有实体 //遍历所有学生 DBSet using (var db = new Entities()) { ...
- 题解【洛谷P1046】[NOIP2005普及组] 陶陶摘苹果
[NOIP2005] 陶陶摘苹果 首先,我们用一个数组s[11]存储每个苹果的高度. 然后,用a表示陶陶的身高. 接着,用a+30与s[i]比较,大于则计数器加一. 最后,输出计数器的值即可. #in ...
- [lua]紫猫lua教程-命令宝典-L1-01-10. 自定义函数
L1[function]01. 定义与调用函数 函数的定义 和概念 没什么可说的 lua的函数声明和调用是有先后顺序的 先声明后调用 函数就是变量的一种 所以可以自由的把函数在变量间相互赋值 不过注 ...
- LED Decorative Light Manufacturer - LED Neon Rope: 5 Advantages
In the past 100 years, lighting has come a long way. Nowadays, the decorative LED lighting design ca ...
- 【Python】摄氏度与华氏度互相转化
Python入门程序,大家可以举一反三,进行各种转换,比如单位转化,货币转化等等,自行发挥即可! 原理: 代码: Tempstr=input("请输入带有符号的温度值:\n")# ...
- Js选择器总结
一.原生JS选择器 JS选择器常用的有getElementById().getElementsByName().getElementsByTagName().getElementsByClassNam ...
- Eqaulize Prices
There are n products in the shop. The price of the ii-th product is aiai. The owner of the shop want ...
- 关于微信小程序的分包
最近开始一份新的工作,接手一个正在开发的小程序,第一步添加客服系统,我们用的网易七鱼,利用微信小程序SDK接入的方式,一顿操作之后,欧欧~~!!~~~,提示没法预览, 究其原因,资源包过大,微信小程序 ...