2017-9-7:学习笔记

mysql

  • 建立表与表之间的关系

多对一

左边表的多条记录对应右面表的唯一一条记录

 1 #两张表:书,出版社,出版社可以出版多本书,但是一本书只能被一个出版社出版
 2
 3
 4 #出版社************************************
 5 create table press(
 6     id int primary key auto_increment,
 7     name varchar(20)
 8 );
 9 insert into press(name) values
10 (‘北京工业地雷出版社‘),
11 (‘人民音乐不好听出版社‘),
12 (‘知识产权没有用出版社‘)
13 ;
14 mysql> select * from press;
15 +----+----------------------+
16 | id | name                 |
17 +----+----------------------+
18 |  1 | 北京工业地雷出版社   |
19 |  2 | 人民音乐不好听出版社 |
20 |  3 | 知识产权没有用出版社 |
21 +----+----------------------+
22
23
24
25 #书**************************************
26 create table book(
27     id int primary key auto_increment,
28     name varchar(20),
29     press_id int,
30     foreign key(press_id) references press(id)
31     on delete cascade
32     on update cascade
33 );
34
35
36 insert into book(name,press_id) values
37 (‘九阳神功‘,1),
38 (‘九阴真经‘,2),
39 (‘九阴白骨爪‘,2),
40 (‘独孤九剑‘,3),
41 (‘降龙十巴掌‘,2),
42 (‘葵花宝典‘,3)
43 ;
44 mysql> select * from book;
45 +----+------------+----------+
46 | id | name       | press_id |
47 +----+------------+----------+
48 |  1 | 九阳神功   |        1 |
49 |  2 | 九阴真经   |        2 |
50 |  3 | 九阴白骨爪 |        2 |
51 |  4 | 独孤九剑   |        3 |
52 |  5 | 降龙十巴掌 |        2 |
53 |  6 | 葵花宝典   |        3 |
54 +----+------------+----------+

示例

多对多

多对多: 使用中间表,分别引用两方的ID

  1 #示例:
  2 #这种关系在实际中也很常见,比如:一个老师教很多学生的课,一个学生选了很多老师的课。那么,老师和学生之间就是多对多的关系。
  3 #老师表*******************************
  4 #创建
  5 create table teacher(
  6     id int primary key auto_increment,
  7     name varchar(10),
  8     age int,
  9     phone int
 10 );
 11
 12 #加入数据
 13 insert into teacher(name,age,phone) values(‘刘武‘,99,1332222),
 14 (‘刘武1‘,97,1332222),
 15 (‘刘武2‘,88,1332228),
 16 (‘刘武3‘,9,1332229),
 17 (‘刘武4‘,45,133222221),
 18 (‘刘武5‘,12,13322223),
 19 (‘刘武6‘,13,13322224),
 20 (‘刘武7‘,14,1332225),
 21 (‘刘武8‘,15,13322226),
 22 (‘刘武9‘,16,1332255);
 23 #查看
 24 mysql> select * from teacher;
 25 +----+-------+------+-----------+
 26 | id | name  | age  | phone     |
 27 +----+-------+------+-----------+
 28 |  1 | 刘武  |   99 |   1332222 |
 29 |  2 | 刘武1 |   97 |   1332222 |
 30 |  3 | 刘武2 |   88 |   1332228 |
 31 |  4 | 刘武3 |    9 |   1332229 |
 32 |  5 | 刘武4 |   45 | 133222221 |
 33 |  6 | 刘武5 |   12 |  13322223 |
 34 |  7 | 刘武6 |   13 |  13322224 |
 35 |  8 | 刘武7 |   14 |   1332225 |
 36 |  9 | 刘武8 |   15 |  13322226 |
 37 | 10 | 刘武9 |   16 |   1332255 |
 38 +----+-------+------+-----------+
 39
 40 #学生表*******************************
 41
 42 #创建
 43 create table student(
 44     id int primary key auto_increment,
 45     name varchar(10),
 46     class_number varchar(10)
 47 );
 48 #插入数据
 49 insert into student(name,class_number)values
 50 (‘大锤1‘,‘幼儿小班‘),
 51 (‘大锤2‘,‘幼儿大班‘),
 52 (‘大锤3‘,‘幼儿小班‘),
 53 (‘大锤4‘,‘幼儿大班‘),
 54 (‘大锤5‘,‘幼儿中班‘),
 55 (‘大锤6‘,‘幼儿学前班‘)
 56 ;
 57 #查看
 58 select * from student;
 59 mysql> select * from student;
 60 +----+-------+--------------+
 61 | id | name  | class_number |
 62 +----+-------+--------------+
 63 |  1 | 大锤1 | 幼儿小班     |
 64 |  2 | 大锤2 | 幼儿大班     |
 65 |  3 | 大锤3 | 幼儿小班     |
 66 |  4 | 大锤4 | 幼儿大班     |
 67 |  5 | 大锤5 | 幼儿中班     |
 68 |  6 | 大锤6 | 幼儿学前班   |
 69 +----+-------+--------------+
 70
 71
 72 #中间表*******************************
 73
 74 #创建表
 75 create table stu_tea(
 76     id int primary key auto_increment,
 77     stu_id int,
 78     tea_id int,
 79     foreign key(stu_id) references student(id)
 80     on update cascade
 81     on delete cascade,
 82     foreign key(tea_id) references teacher(id)
 83     on update cascade
 84     on delete cascade
 85 );
 86
 87 #插入数据
 88 insert into stu_tea(stu_id,tea_id) values
 89 (1,1),
 90 (1,2),
 91 (1,10),
 92 (2,9),
 93 (3,9),
 94 (4,7),
 95 (5,8),
 96 (6,6),
 97 (3,2),
 98 (4,10),
 99 (5,1),
100 (6,1),
101 (6,5),
102 (3,1),
103 (4,4),
104 (5,10),
105 (6,3);
106
107 #查看表
108 select * from stu_tea;
109 mysql> select * from stu_tea;
110 +----+--------+--------+
111 | id | stu_id | tea_id |
112 +----+--------+--------+
113 |  1 |      1 |      1 |
114 |  2 |      1 |      2 |
115 |  3 |      1 |     10 |
116 |  4 |      2 |      9 |
117 |  5 |      3 |      9 |
118 |  6 |      4 |      7 |
119 |  7 |      5 |      8 |
120 |  8 |      6 |      6 |
121 |  9 |      3 |      2 |
122 | 10 |      4 |     10 |
123 | 11 |      5 |      1 |
124 | 12 |      6 |      1 |
125 | 13 |      6 |      5 |
126 | 14 |      3 |      1 |
127 | 15 |      4 |      4 |
128 | 16 |      5 |     10 |
129 | 17 |      6 |      3 |
130 +----+--------+--------+

示例

一对一

主键同步 两个表中有关系的记录id一致
在一方加入另一方的外键
在另一方加入外键

 1 #实例
 2 #一夫一妻制度,就是一对一
 3 ***********************************
 4 #夫
 5 #创建表
 6 create table husband(
 7     id int primary key auto_increment,
 8     name varchar(10),
 9     age int
10 );
11
12
13 #插入数据
14 insert into husband(name,age) values
15 (‘大锤1‘,28),
16 (‘大锤2‘,26),
17 (‘大锤3‘,26),
18 (‘大锤4‘,25),
19 (‘大锤5‘,24);
20
21
22 #查看
23 select * from husband;
24 mysql> select * from husband;
25 +----+-------+------+
26 | id | name  | age  |
27 +----+-------+------+
28 |  1 | 大锤1 |   28 |
29 |  2 | 大锤2 |   26 |
30 |  3 | 大锤3 |   26 |
31 |  4 | 大锤4 |   25 |
32 |  5 | 大锤5 |   24 |
33 +----+-------+------+
34 ***********************************
35 #妻
36 #创建表
37 create table wife(
38     id int primary key auto_increment,
39     name varchar(10),
40     age int,
41     hus_id int unique,
42     foreign key(hus_id) references husband(id)
43     on delete cascade
44     on update cascade
45 );
46
47
48 #插入数据
49 insert into wife(name,age,hus_id) values
50 (‘阿波1‘,18,1),
51 (‘阿波2‘,17,2),
52 (‘阿波3‘,16,3),
53 (‘阿波4‘,15,4),
54 (‘阿波5‘,14,5);
55
56 #查看
57 select * from wife;
58 mysql> select * from wife;
59 +----+-------+------+--------+
60 | id | name  | age  | hus_id |
61 +----+-------+------+--------+
62 |  1 | 阿波1 |   18 |      1 |
63 |  2 | 阿波2 |   17 |      2 |
64 |  3 | 阿波3 |   16 |      3 |
65 |  4 | 阿波4 |   15 |      4 |
66 |  5 | 阿波5 |   14 |      5 |
67 +----+-------+------+--------+

实例

  • select查询语句

 1 select 单表查询
 2 实例:
 3 学生信息表
 4 学号,姓名,出生日期,性别,学院,专业,班级,政治面貌,民族,电话,家庭住址,邮箱,照片,家长信息,备注
 5 create table student_info(
 6
 7 #学号
 8 stuid varchar(20) not null ,
 9 #姓名
10 name varchar(20)not null,
11 #出生日期
12 rdate date,
13 #性别
14 gender varchar(2),
15 #学院
16 institute varchar(20),
17 #专业
18 major varchar(20),
19 #班级
20 clazz varchar(10),
21 #政治面貌
22 politics varchar(8),
23 #民族
24 nationality varchar(10),
25 #电话
26 phone varchar(20),
27 #家庭住址
28 homeaddress varchar(100),
29 #邮箱
30 mail varchar(50),
31 #家长信息
32 parent varchar(100),
33 #备注
34 primary key (stuid)
35 );
36
37 insert into student_info values(‘090210301‘,‘詹姆斯‘,‘1981-11-11‘,‘男‘,‘医学院‘,‘临床医学‘,‘2班‘,‘中共党员‘,‘侗族‘,‘1588888888‘,‘贵州贵阳‘,‘[email protected]‘,‘父亲:詹姆第,母亲:斯密斯‘,remark),
38 (‘090210302‘,‘石头‘,‘2007-06-30‘,‘男‘,‘土木学院‘,‘测绘学‘,‘4班‘,‘共青团员‘,‘鄂温克族‘,‘1232‘,‘河北邯郸‘,‘[email protected]‘,‘父亲:纷纷,母亲:落落‘,remark),
39 (‘090210303‘,‘Angela‘,‘2009-01-31‘,‘女‘,‘经管学院‘,‘经济学‘,‘1班‘,‘中共党员‘,‘汉族‘,‘1234456‘,‘湖南长沙‘,‘[email protected]‘,‘父亲:王岳伦,母亲:李湘‘,remark),
40 (‘090210304‘,‘鲁尼‘,‘1983-3-23‘,‘男‘,‘计算机学院‘,‘计算机‘,‘3班‘,‘群众‘,‘白族‘,‘5864‘,‘曼彻斯特‘,‘[email protected]‘,‘父亲:鲁鲁,母亲:妮妮‘,remark),
41 (‘090210305‘,‘莎拉波娃‘,‘1982-10-9‘,‘女‘,‘土木学院‘,‘测绘学‘,‘1班‘,‘国民党‘,‘女娲族‘,‘15821‘,‘莫斯科‘,‘[email protected]‘,‘父亲:老沙‘,remark),
42 (‘090210306‘,‘孙杨‘,‘1991-4-2‘,‘男‘,‘计算机学院‘,‘计算机‘,‘4班‘,‘中共党员‘,‘回族‘,‘3535‘,‘浙江杭州‘,‘[email protected]‘,‘父亲:老孙,母亲:孙母‘,remark),
43 (‘090210307‘,‘张默‘,‘1978-6-14‘,‘男‘,‘土木学院‘,‘测绘学‘,‘2班‘,‘群众‘,‘土家族‘,‘5223‘,‘重庆‘,‘[email protected]‘,‘父亲:张国立,母亲:邓婕‘,remark),
44 (‘090210308‘,‘岳灵珊‘,‘1232-5-3‘,‘女‘,‘医学院‘,‘临床医学‘,‘2班‘,‘中共党员‘,‘华山族‘,‘111‘,‘陕西华山‘,‘[email protected]‘,‘父亲:岳不群,母亲:宁中则‘,remark),
45 (‘090210309‘,‘杨延昭‘,‘1423-7-7‘,‘男‘,‘土木学院‘,‘测绘学‘,‘1班‘,‘群众‘,‘彝族‘,‘158246453342‘,‘河南开封‘,‘[email protected]‘,‘父亲:杨业,母亲:佘赛花‘,remark);
46
47 mysql> select * from student_info;
48 +-----------+----------+------------+--------+------------+----------+-------+----------+-------------+--------------+-------------+----------------+----------------------------+
49 | stuid     | name     | rdate      | gender | institute  | major    | clazz | politics | nationality | phone        | homeaddress | mail           | parent                     |
50 +-----------+----------+------------+--------+------------+----------+-------+----------+-------------+--------------+-------------+----------------+----------------------------+
51 | 090210301 | 詹姆斯   | 1981-11-11 | 男     | 医学院     | 临床医学 | 2班   | 中共党员 | 侗族        | 1588888888   | 贵州贵阳    | [email protected]126.com    | 父亲:詹姆第,母亲:斯密斯 |
52 | 090210302 | 石头     | 2007-06-30 | 男     | 土木学院   | 测绘学   | 4班   | 共青团员 | 鄂温克族    | 1232         | 河北邯郸    | [email protected]    | 父亲:纷纷,母亲:落落     |
53 | 090210303 | Angela   | 2009-01-31 | 女     | 经管学院   | 经济学   | 1班   | 中共党员 | 汉族        | 1234456      | 湖南长沙    | [email protected]      | 父亲:王岳伦,母亲:李湘   |
54 | 090210304 | 鲁尼     | 1983-03-23 | 男     | 计算机学院 | 计算机   | 3班   | 群众     | 白族        | 5864         | 曼彻斯特    | [email protected]   | 父亲:鲁鲁,母亲:妮妮     |
55 | 090210305 | 莎拉波娃 | 1982-10-09 | 女     | 土木学院   | 测绘学   | 1班   | 国民党   | 女娲族      | 15821        | 莫斯科      | [email protected] | 父亲:老沙                 |
56 | 090210306 | 孙杨     | 1991-04-02 | 男     | 计算机学院 | 计算机   | 4班   | 中共党员 | 回族        | 3535         | 浙江杭州    | [email protected]126.com    | 父亲:老孙,母亲:孙母     |
57 | 090210307 | 张默     | 1978-06-14 | 男     | 土木学院   | 测绘学   | 2班   | 群众     | 土家族      | 5223         | 重庆        | [email protected] | 父亲:张国立,母亲:邓婕   |
58 | 090210308 | 岳灵珊   | 1232-05-03 | 女     | 医学院     | 临床医学 | 2班   | 中共党员 | 华山族      | 111          | 陕西华山    | [email protected]   | 父亲:岳不群,母亲:宁中则 |
59 | 090210309 | 杨延昭   | 1423-07-07 | 男     | 土木学院   | 测绘学   | 1班   | 群众     | 彝族        | 158246453342 | 河南开封    | [email protected]163.com   | 父亲:杨业,母亲:佘赛花   |
60 +-----------+----------+------------+--------+------------+----------+-------+----------+-------------+--------------+-------------+----------------+----------------------------+

示例:

1 简单查询

 1 select name,clazz from student_info;
 2 +----------+-------+
 3 | name     | clazz |
 4 +----------+-------+
 5 | 詹姆斯   | 2班   |
 6 | 石头     | 4班   |
 7 | Angela   | 1班   |
 8 | 鲁尼     | 3班   |
 9 | 莎拉波娃 | 1班   |
10 | 孙杨     | 4班   |
11 | 张默     | 2班   |
12 | 岳灵珊   | 2班   |
13 | 杨延昭   | 1班   |
14 +----------+-------+

查询name,clazz字段

2 where条件

 1 查询班级为2班的学生姓名以及学号
 2 select name,stuid from student_info where clazz=‘2班‘;
 3 mysql> select name,stuid from student_info where clazz=‘2班‘;
 4 +--------+-----------+
 5 | name   | stuid     |
 6 +--------+-----------+
 7 | 詹姆斯 | 090210301 |
 8 | 张默   | 090210307 |
 9 | 岳灵珊 | 090210308 |
10 +--------+-----------+
11
12
13 查询学号在090210301-090210305之间的学生的姓名以及家长信息
14 select name,parent from student_info where stuid>=090210301 and stuid <090210306;
15 mysql> select name,parent from student_info where stuid>=090210301 and stuid <090210306;
16 +----------+----------------------------+
17 | name     | parent                     |
18 +----------+----------------------------+
19 | 詹姆斯   | 父亲:詹姆第,母亲:斯密斯 |
20 | 石头     | 父亲:纷纷,母亲:落落     |
21 | Angela   | 父亲:王岳伦,母亲:李湘   |
22 | 鲁尼     | 父亲:鲁鲁,母亲:妮妮     |
23 | 莎拉波娃 | 父亲:老沙                 |
24 +----------+----------------------------+
25
26 查询学号在090210301-090210305之间的学生的家庭住址以及学院,专业信息
27 select name,institute,major,homeaddress from student_info where stuid between 090210301 and 090210305;
28 mysql> select name,institute,major,homeaddress from student_info where stuid between 090210301 and 090210305;
29 +----------+------------+----------+-------------+
30 | name     | institute  | major    | homeaddress |
31 +----------+------------+----------+-------------+
32 | 詹姆斯   | 医学院     | 临床医学 | 贵州贵阳    |
33 | 石头     | 土木学院   | 测绘学   | 河北邯郸    |
34 | Angela   | 经管学院   | 经济学   | 湖南长沙    |
35 | 鲁尼     | 计算机学院 | 计算机   | 曼彻斯特    |
36 | 莎拉波娃 | 土木学院   | 测绘学   | 莫斯科      |
37 +----------+------------+----------+-------------+
38 5 rows in set (0.00 sec)
39
40
41 查询手机号中有8的学生的手机号,出生地,电子邮箱以及出生日期
42 select phone,rdate,homeaddress,mail from student_info
43 where phone like ‘%8%‘;
44
45 mysql> select phone,rdate,homeaddress,mail from student_info
46     -> where phone like ‘%8%‘;
47 +--------------+------------+-------------+----------------+
48 | phone        | rdate      | homeaddress | mail           |
49 +--------------+------------+-------------+----------------+
50 | 1588888888   | 1981-11-11 | 贵州贵阳    | [email protected]126.com    |
51 | 5864         | 1983-03-23 | 曼彻斯特    | [email protected]   |
52 | 15821        | 1982-10-09 | 莫斯科      | [email protected] |
53 | 158246453342 | 1423-07-07 | 河南开封    | [email protected]163.com   |
54 +--------------+------------+-------------+----------------+
55 4 rows in set (0.00 sec)

实例

3 group by分组

 1 分别查看男生和女生
 2
 3 mysql> select gender,group_concat(name) from student_info group by gender;
 4 +--------+-----------------------------------+
 5 | gender | group_concat(name)                |
 6 +--------+-----------------------------------+
 7 | 女     | Angela,莎拉波娃,岳灵珊            |
 8 | 男     | 詹姆斯,石头,鲁尼,孙杨,张默,杨延昭 |
 9 +--------+-----------------------------------+
10 2 rows in set (0.00 sec)
11
12
13
14 统计男生女生多少人
15 select gender,count(stuid) from employee group by gender;
16 mysql> select gender,count(stuid) from student_info group by ge
17 +--------+--------------+
18 | gender | count(stuid) |
19 +--------+--------------+
20 | 女     |            3 |
21 | 男     |            6 |
22 +--------+--------------+
23 2 rows in set (0.00 sec)
24
25
26
27 查看男生和女生当中手机号最大的那个值
28 mysql> select gender,max(phone) from student_info group by gender;
29 +--------+------------+
30 | gender | max(phone) |
31 +--------+------------+
32 | 女     | 15821      |
33 | 男     | 5864       |
34 +--------+------------+
35 2 rows in set (0.02 sec)
36 #求出最小的手机号,根据男女分组
37 mysql> select gender,min(phone) from student_info group by gender;
38 +--------+------------+
39 | gender | min(phone) |
40 +--------+------------+
41 | 女     | 111        |
42 | 男     | 1232       |
43 +--------+------------+
44 2 rows in set (0.00 sec)
45
46 #求出手机号的和,根据男女分组
47
48 mysql> select gender,sum(phone) from student_info group by gender;
49 +--------+--------------+
50 | gender | sum(phone)   |
51 +--------+--------------+
52 | 女     |      1250388 |
53 | 男     | 159835358084 |
54 +--------+--------------+
55 2 rows in set (0.00 sec)
56 #求出平均的手机号,根据男女分组
57
58 mysql> select gender,avg(phone) from student_info group by gender;
59 +--------+--------------------+
60 | gender | avg(phone)         |
61 +--------+--------------------+
62 | 女     |             416796 |
63 | 男     | 26639226347.333332 |
64 +--------+--------------------+
65 2 rows in set (0.00 sec)
66
67 (我把手机号的数字当成一个值进行计算的)

实例

Study Hard And Make Progress Every Day!

时间: 2025-01-09 07:42:49

2017-9-7:学习笔记的相关文章

2017/05/05学习笔记

系统中所以的信息包括磁盘文件.内存中的程序.内存中存放的用户数据及网络上传送的数据都是由一串bit表示的.区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文.为了在C程序中做出好的编码选择,我们确实需要了解一些机器代码以及编译器将不同的C语句转化为机器代码的方式.比如一个switch是否总是比一个if-else语句高效的多?一个函数调用的开销有多大?while循环比for循环更有效么?指针引用比数组索引更有效么为什么将循环求和的结果放到一个本地变量中,会比其放到一个通过引用传递过来的参数

Python学习笔记-2017.5.4thon学习笔记-2017.5.14

Python学习过程中的笔记,只做自己参考使用: lambda函数,匿名函数,当我们使用一个函数并且使用完成就删除时,可以使用匿名函数,比如f等于xyz三个之和: f = lambda x,y,z:x+y+z 生成器和迭代器: 生成器,我们常用的列表一般有两种方式生成,例如: 1.直接写出列表 a = [1,2,3,4,5,6,7,8,9] 2.通过列表生成式生成列表 a = [i*i for i in range(10)] 上述两种列表是我们常用的列表方式,调取方便,随便增删改查取值,但是有可

2017/03/31学习笔记

双向链表 单向链表的节点都只有一个指向下一个节点的指针单向链表的数据元素无法直接访问其前驱元素逆序访问单向链表中的元素时极其耗时的操作双向链表在单向链表的基础上增加了指向前驱的指针功能上双向链表可以完全取代单向链表的使用 栈是一种特殊的线性表 栈仅能在线性表的一端进行操作栈顶:允许操作的一端栈底:不允许操作的一端首先它是一个线性表,也就是说,栈元素具有线性关系,即前驱后继关系.只不过它是一种特殊的线性表.定义中说是在线性表的表尾进行插入和删除操作,这里表尾是指栈顶,而不是栈底.他的特殊之处就在于

2017/03/27学习笔记

程序的输入是指从输入文件讲数据传送给程序,程序的输出是指从程序将数据传送输出文件.C++输入输出包含以下三方面内容:对系统指定标准设备的输入和输出.即从键盘输入数据,输出到显示器.这种输入输出称为标准输入输出,简称标准IO.以外出磁盘文件为对象进行输入输出,即从磁盘文件输入数据,将数据输出到文件.以外存为对象的输入输出称为文件的输入输出,简称文件IO.度内存中指定的空间进行输入输出,通常指定一个字符串数组作为储存空间(实际上可以利用该空间储存任何信息).这种输入输出称为字符串输入输出,简称串IO

2017/04/27学习笔记

fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数执行另一个程序.当进程调用一个exec函数时,该进程的用户空间和数据完全被新程序替换,从新程序的启动例程开始执行.调用exec并不创建新进程,所以调用exec前后该进程ID不变.将当前进程的.text .data替换为所要加载程序的.text .data,然后让进程从新的.text第一条指令开始执行,但进程ID不变,换核不换壳. int execl();int execlp();int

2017/03/24学习笔记

类型转换 C语言中的强制类型转换很简单,不管什么类型的转换都是TYPE b=(TYPE)a; C++中类型转换提供了4种类型转换操作符来应对不同场合的应用.static_cast 静态转换.如int转换成charreinterpreter_cast 重新解释类型dynamic_cast 命名上理解是动态类型转换.如子类和父类之间的多态类型转换 (父类转子类,向下转型)const_cast 字面理解就是去const属性. 4种类型转换格式TYPE b=static_cast<TYPE>(a);

2017/03/17学习笔记

智能指针类 指针使用过程中,经常会出现内存泄漏和内存多次被释放.解决方案:boost库的智能指针项目开发中,要求开发者使用预先编写的智能指针类对象代替C语言中原生的指针.智能指针思想工程中的智能指针是一个类模板通过构造函数接管申请的内存通过析构函数确保堆内存被及时释放通过重载指针运算符*和->来模拟指针的行为通过重载比较运算符==和!=来模拟指针的比较 为什么不要重载&&和||操作符 &&和||是C++中非常特殊的操作符&&和||内置实现了短路规则操作

2017/03/11学习笔记

.lib资源模式文件 描述 .dll.dll 动态库(函数二进制码集合,里面有函数的函数体),动态库有规范(win/linux)下不一样. mtrace 是linux C编程内存泄漏检测工具,mtrace是三款工具中最简单易用的,mtrace是一个C函数,在<mckeck.h>里面声明及定义.其实mtrace是类似malloc_hook的malloc handler,只不过mtrace的hander function已由系统为你写好,既然如此,系统又怎么知道您想将malloc/free的记录写

2017/03/03学习笔记

链表 单向链表 非常常用的一种数据结构对于数组,逻辑关系上相邻的两个元素的物理位置也是相邻的,这种结构的优点是随机存储任意位置的元素,但缺点是如果从数组中间删除或插入元素的时候,需要大量的移动元素,效率不高.链表存储结构的特点,元素的存储单元可以是连续的,也可以是不连续的,因此为了表示每个元素a,与其后的元素a+a之间的关系,对于元素a,出了存储其本身的信息外,还需要存储一个指示其后元素的位置,使这两部分数据成为节点.一个节点中存储的数据元素被成为数据域.存储后存储位置的域叫指针域.n个节点(a

2017.3.2学习笔记----------nfs以及根文件系统

根文件系统的制作烧写,nfs,驱动程序的编译 <1> 根文件系统的制作烧写: 类似于前一节,步骤可以参考手册,将补丁文件打入虚拟机,再安装即可. 具体步骤参考开发板应用手册3.4节 <2> 使用flash上的根文件系统启动沪,手工MOUNT NFS: mount -t nfs -o nolock,vers=2 192.168.1.132:/work/nfs_root /mnt ls  /mnt <3>使用nfs作为根文件系统来启动 进入uboot: set bootar