数据库------mysql

安装:

linux----centos7:

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

安装mysql

1.下载并安装mysql官方的yum Repository

[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用yum进行安装:

[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

2.开始安装myql服务器:

[root@localhost ~]# yum -y install mysql-community-server

这一步会花费不少的时间,请耐心等待,安装完之后就会覆盖掉之前的mariadb

mysql数据库的设置:

3.启动mysql:

[root@localhost ~]# systemctl start  mysqld.service

查看mysql运行状态:

[root@localhost ~]# systemctl status mysqld.service

4.找出mysql的root用户密码,通过在日志文件中查找:

[root@localhost ~]# grep "password" /var/log/mysqld.log

5.进入数据库:

[root@localhost ~]# mysql -uroot -p

输入上面查询到的初始密码,之后不能做任何事情,只有在修改了默认密码之后才能够操作数据库:

6.修改密码:

常见的修改密码的方法有:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
mysql> set password for 'root@localhost'=password('Newpassword4!')

但是都会遇到一个问题:

这时候我们必须要用其他的方法:

mysql> set password=password('123456')

此时还是会遇到一个新的问题:

新密码设置过于简单,这个原因是mysql有密码设置的规范,具体是与validate_password_policy的值有关

所以我们先设置一个符合规则的密码,包含大小写数字和符号的密码:

这样我们才能够进行查看密码规则和其他的操作:

或者使用如下的命令修改密码:

[root@localhost ~]#mysqladmin -u root password "new_password";

MySQL完整的初始密码规则可以通过如下命令查看:

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.01 sec)

validate_password_policy:密码策略,默认为MEDIUM策略

validate_password_dictionary_file:密码策略文件,策略为STRONG才需要

validate_password_length:密码最少长度

validate_password_mixed_case_count:大小写字符长度,

至少1个  validate_password_number_count :数字至少1个

validate_password_special_char_count:特殊字符至少1个  上述参数是默认策略MEDIUM的密码检查规则。

我们修改一下里面的参数:

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=4;

这样我们就能够设置简单的密码:1234,或者root

7.配置默认编码:uft8

首先我们看一下mysql默认的编码:

mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

[mysqld]
character_set_server=utf8
init_connect='SET NAMES uft8'

重新启动mysql服务,查看看数据库编码,如下所示:

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

8.设置mysql开机启动:

[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# systemctl daemon-reload

默认配置文件路径:

配置文件:/etc/my.cnf

日志文件:/var/log//var/log/mysqld.log

服务启动脚本:/usr/lib/systemd/system/mysqld.service

socket文件:/var/run/mysqld/mysqld.pid

windows下安装mysql:

windows上安装mysql相对来说要简单的多,只要下载mysql对应的安装包,

MySQL Installer 下载 
mysql-installer-community-5.7.19.0.msi:https://dev.mysql.com/downloads/file/?id=471661

然后运行exe文件进行安装,需要注意的如下:

一般我们选择Custom;

next之后我们会看到下面这个界面:

有的时候他会下载失败,install fail,:The action ‘Install’ for product ‘MySQL Server 5.7.19’ failed.

这是因为我们电脑里面没有安装Visual Studio2013运行库,

32位的Visual C++ Redistributable Packages for Visual Studio 2013!!!注意是32位的。即使你的电脑是64位的

安装网址: https://www.microsoft.com/zh-cn/download/details.aspx?id=40784

之后就设置登录密码,顺利安装成功。

安装成功,进行验证,开始菜单中打开MySQL命令行工具

mysql数据类型

分为:数值,时间和字符(串)类型

数值类型:

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 字节 (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度
浮点数值
DOUBLE 8 字节 (1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度
浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

时间类型:

类型 大小
(字节)
范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

字符类型:

类型 大小 用途
CHAR 0-255字节 定长字符串
VARCHAR 0-65535 字节 变长字符串
TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串
TINYTEXT 0-255字节 短文本字符串
BLOB 0-65 535字节 二进制形式的长文本数据
TEXT 0-65 535字节 长文本数据
MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
LONGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据

常用操作:(命令结束之后一定要加分号)

查看数据库:show databases;

进入mysql数据库:use mysql;

查看这个库中有什么表:show tables;

查看表的结构:desc 表名;or show columns from 数据表

查看表中数据:select * from 表名 (\G);加上\G,就变成了竖着的显示

创建一个新用户:

  use mysql;    mysql库里面有mysql自带的用户表,它存了账户的所有信息

    我们查询mysql中的user表的User字段,就可以看到你现在的数据库中有多少个用户

    

  grant all on test.* to 'xiaoming'@'localhost' identified by 'xiaoming123'

    all:分配给用户的权限,有Select,Insert,Update,Delete,Create,Drop,Re load,Shutdown,Process,File,Grant,References,Index,Alter

    test.*:为数据库test的所有表分配的用户。所有就是*.*

    ‘xiaoming’@'localhost' indentified by 'xiaoming123':用户名为xiaoming,密码xiaoming123

查看创建用户的权限:show grants for 用户名

创建数据库:create database 数据库名 charset utf8

查看创建的数据库的编码:show create database 数据库名

删除数据库:drop database 数据库名

创建数据表:

create table student(
id int auto_increment,
name char(32) not null,
age int not null,
register_date date not null,
primary key(id)
);

如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。

AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。

PRIMARY KEY关键字用于定义列为主键。 同时如果使用多列来定义主键,列间以逗号分隔。

插入数据:

insert into student(name,age,register_date) values ("xiaoming",22,"1996-09-20");

查询数据:

SELECT column_name,column_name FROM table_name [WHERE Clause][LIMIT N] [OFFSET M ]

查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件

使用星号(*)代替其他字段,SELECT语句会返回表的所有字段数据

使用 WHERE 语句来包含任何条件

LIMIT 属性设定返回的记录数

OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0,

OFFSET不能单独使用

offset必须在limit后面添加

where子句:

模糊查询:like: binary '%Li'  只匹配大写

更新数据(Update):

UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]

删除数据(delete):

DELETE FROM table_name [WHERE Clause]

mysql排序:

SELECT field1, field2,...fieldN table_name1, table_name2...  ORDER BY field1, [field2...] [ASC [DESC]]
使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。

mysql的group by:

SELECT column_name, function(column_name)  FROM table_name
WHERE column_name operator value
GROUP BY column_name;

统计总数:在最后加一个with rollup

mysql alter命令:我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。

删除,添加或修改表字段

alter table student drop register_date; #从student表删除register_date字段
alter table student add telephere int(11) not null; #添加phone字段
alter table student modify sex enum("M","F") not null; #修改sex

修改字段类型和名称:(modify和change)

modify修改字段的类型,如把char(1)变成char(10):

alter table student modify sex int(10)  

change语句:在使用change之后紧跟着的是要修改的字段名,然后制定新字段名及类型:

alter table student change sex gender char(32) default 'M';

修改表名:

alter table student rename to student1;

关于外键“:用于关联两个表:  

我们创建第二个表:

create table study_record(
id int not null auto_increment,
day int not null,
status char(32) not null default 'YES',
stu_id int(11) not null,
primary key(`id`),
key `fk_student_key` (`stu_id`),
constraint `fk_student_key` foreign key (`stu_id`) references `student` (`id`));

首先我们看一下student表中的数据:

现在我们为study_record插入数据

但是当我们输入的stu_id不在student表中的id范围时:

Mysql 连接(left join, right join, inner join ,full join)

JOIN 按照功能大致分为如下三类:

  • inner join(内连接,或等值连接):获取两个表中字段匹配关系的记录。
  • left join(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • right join(右连接): 与 right join 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

首先我们创建两个数据表:

mysql> select * from A;
+---+
| a |
+---+
| 1 |
| 2 |
| 3 |
| 4 |
+---+
mysql> select * from B;
+---+
| b |
+---+
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
+---+

inner join:内连接,就是查询出两个表的共同元素(交集)  

select * from A inner join B on A.a = B.b;
select A.*,B.* from A,B where A.a = B.b; +---+---+
| a | b |
+---+---+
| 3 | 3 |
| 4 | 4 |
+---+---+

left join:就是查询出两个表的不同元素(差集)  

mysql> select * from A left join B on A.a = B.b;
+---+------+
| a | b |
+---+------+
| 3 | 3 |
| 4 | 4 |
| 1 | NULL |
| 2 | NULL |
+---+------+

先把A中的数据取出来,然后看B中有没有相同的数据,如果有就对应取出,没有的数据就用NULL

right join:

mysql> select * from A right join B on A.a = B.b;
+------+---+
| a | b |
+------+---+
| 3 | 3 |
| 4 | 4 |
| NULL | 5 |
| NULL | 6 |
| NULL | 7 |
| NULL | 8 |
+------+---+

效果和select * from B left join A on A.a=B.b一样的效果

full join:

(mysql不直接支持),即select * from A full join B on A.a = B.b会报错

但是:

mysql> select * from A left join B on A.a = B.b union select * from A right join B on A.a = B.b;
+------+------+
| a | b |
+------+------+
| 3 | 3 |
| 4 | 4 |
| 1 | NULL |
| 2 | NULL |
| NULL | 5 |
| NULL | 6 |
| NULL | 7 |
| NULL | 8 |
+------+------+
8 rows in set (0.00 sec)

通过这种方法间接的实现了full join

事务

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样就需要用到多条sql语句,但是如果在执行sql语句中突然死机断电,还没有把所有语句执行完,那就会有问题。这样,这些数据库操作语句就构成一个事务!

在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务,事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行。同时事务用来管理insert,update,delete语句

事务的4个条件(ACID):

  Atomicity(原子性):一组事务,要么成功;要么撤回。

  Consistency(稳定性):有非法数据(外键约束之类),事务撤回。

  Isolation(隔离性):事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。

  Durability(可靠性):软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit选项 决定什么时候把事务保存到日志里。

mysql> select * from student;
+----+-----------+-----+---------------+--------+
| id | name | age | register_date | gender |
+----+-----------+-----+---------------+--------+
| 1 | xiaoming | 22 | 1996-09-20 | NULL |
| 3 | xiaoliang | 21 | 1995-09-25 | NULL |
| 5 | linhuahua | 27 | 1993-06-07 | NULL |
| 9 | xiaoming | 26 | 1993-06-02 | NULL |
| 11 | haha | 26 | 2011-01-01 | M |
+----+-----------+-----+---------------+--------+
5 rows in set (0.00 sec) mysql> begin; #开始一个事务 mysql> insert into student (name,age,register_date,gender) values("wangsen",25,"2016-09-22","M"); mysql> insert into student (name,age,register_date,gender) values("wangqing",26,"2016-09-12","F"); mysql> select * from student;
+----+-----------+-----+---------------+--------+
| id | name | age | register_date | gender |
+----+-----------+-----+---------------+--------+
| 1 | xiaoming | 22 | 1996-09-20 | NULL |
| 3 | xiaoliang | 21 | 1995-09-25 | NULL |
| 5 | linhuahua | 27 | 1993-06-07 | NULL |
| 9 | xiaoming | 26 | 1993-06-02 | NULL |
| 11 | haha | 26 | 2011-01-01 | M |
| 12 | wangsen | 25 | 2016-09-22 | M |
| 13 | wangqing | 26 | 2016-09-12 | F |
+----+-----------+-----+---------------+--------+
7 rows in set (0.00 sec) mysql>rollback; 回滚 , 这样数据是不会写入的 mysql> select * from student;
+----+-----------+-----+---------------+--------+
| id | name | age | register_date | gender |
+----+-----------+-----+---------------+--------+
| 1 | xiaoming | 22 | 1996-09-20 | NULL |
| 3 | xiaoliang | 21 | 1995-09-25 | NULL |
| 5 | linhuahua | 27 | 1993-06-07 | NULL |
| 9 | xiaoming | 26 | 1993-06-02 | NULL |
| 11 | haha | 26 | 2011-01-01 | M |
+----+-----------+-----+---------------+--------+
5 rows in set (0.00 sec)

如果一切操作正常的话,用mysql> commit;进行提交就可以了,这个时候你所插入的数据就能够正常的插入到数据库中了

索引

MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

数据表可以有很多的字段,但是主键只有一个,索引可以有多个,比如:个人信息表,每个人可以包含多个字段:姓名,年龄,性别,生日等等,一个个人信息有50列,我们最关注的也就是姓名和身份证号,我们可以对这两个字段做两个索引。索引就是通过哈希的形式把一列的数据转成数字,然后再排序,通过二分查找查找数据。这样检索速度就提高了。

索引分单列索引和组合索引。

  单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。

  组合索引,即一个索引包含多个列。

创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。

实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

索引的缺点:

  虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件

查看一个表的索引:

show index from student;

+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| student | 0 | PRIMARY | 1 | id | A | 7 | NULL | NULL | | BTREE | | |
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

一个表中的主键自动就是索引,主键就是一种索引,默认的

创建索引:

CREATE INDEX indexName ON table(username(length));  
mysql> create index index_name on student(name(32));

mysql> show index from student;
+---------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+---------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| student | 0 | PRIMARY | 1 | id | A | 6 | NULL | NULL | | BTREE | | |
| student | 1 | index_name | 1 | name | A | 4 | NULL | NULL | | BTREE | | |
+---------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
2 rows in set (0.00 sec)

在创建表的时候就添加索引:

create table tablename(
id int not null,
username varchar(16) not null,
index [indexName] (username(length))
);

删除索引:

drop index [indexName] on tablename

唯一索引:

索引列的值必须唯一,但是允许有空值。如果是组合索引,则列值的组合必须唯一。

创建,删除索引等操作就是在前面的普通索引之前加一个unique:如创建唯一索引|:create unique index indexName on tablename(username(length))

以上就是mysql的一些基本操作,谢谢

python---mysql 学习笔记的更多相关文章

  1. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  2. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

  3. MySQL学习笔记一

    MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...

  4. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  5. Mysql学习笔记(一)数据类型

    原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型     Mysql数据类型             含义(有符号)     tinyint(m ...

  6. Python Click 学习笔记(转)

    原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...

  7. 初识mysql学习笔记

    使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...

  8. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  9. Python Flask学习笔记之模板

    Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...

  10. Python Flask学习笔记之Hello World

    Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...

随机推荐

  1. MS SQL GUID

    (转自:http://blog.csdn.net/maonongwu/article/details/6327093) GUID介绍 GUID(Global unique identifier)全局唯 ...

  2. Selenium-xapth定位

    xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. 什么是xpath xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们可 ...

  3. LeetCode OJ:Search a 2D Matrix(二维数组查找)

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  4. L133

    The U.S. Food and Drug Administration is considering a ban on flavorede-cigarettes in response to an ...

  5. C++友元类实现

    C++中的友元既可以实现友元函数,也可以实现友元类,也就是说一个类也可以作为另外一个类的友元.当作为一个类的友元时,它的所有成员函数都是另一个类的友元函数,都可以访问另一个类的私有或者公有成员. 请看 ...

  6. [置顶] Android开发百科全书

    友情提示根据目录 快速查找问题 %1$s %1$d Android string 1.整型,比如"我今年23岁了",这个23是整型的.在string.xml中可以这样写,<s ...

  7. 前端之HTML补充

    一.列表 (1).无序列表<ul> <body> <ul type="disc"> <li>属性一</li> <l ...

  8. (效果三)js实现选项卡切换

    开发了很久的小程序,在接到一个h5移动端页面的时候,很多原生的东西都忘了,虽然说我们随着工作经验的增加,处理业务逻辑的能力在提高,但是基础的东西如果长时间不用,也会逐渐忘记.所以以后会经常总结原生的一 ...

  9. linux 查看某文件是否正在使用(被读写)

    fuser功能 fuser 可以显示出当前哪个程序在使用磁盘上的某个文件.挂载点.甚至网络端口,并给出程序进程的详细信息.  fuser显示使用指定文件或者文件系统的进程ID.默认情况下每个文件名后面 ...

  10. C++中cin的使用总结

    在学习C++时大家肯定迷惑过关于输入输出各种输出函数的功能,现在来总结一下各种函数的简单用法. cin建有一个缓冲区,即输入缓冲区.一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲 ...