mysql命令行安装教程

1. MySQL简介

在之前的教程中 ,我讨论了有关MySQL服务器的安装以及MySQL数据库使用入门的问题。 在本文中,我们将详细讨论如何使用MySQL命令行执行各种操作,例如选择,插入,更新,删除,数据库管理,授权管理以及使用MySQL数据库时所需的其他一些操作。

本教程的前提条件是必须预先安装MySQL服务器。 本文很好地指导您进行相同的安装。

目录

1. MySQL简介 2.连接到MySQL命令行 3.创建数据库和表 4.在表中插入记录 5.查看记录并格式化输出
5.1查看所有记录 5.2查看格式化的输出 5.3查看有限的记录 5.4抵消结果
6.更新和删除记录 7.切换安全更新和自动提交
7.1启用/禁用安全更新 7.2禁用自动提交
8. MySQL管理 9.结论

2.连接到MySQL命令行

数据库服务器启动并运行后,您可以使用以下命令登录到MySQL命令行。

$ mysql -u root -p

连接后,命令提示符或终端将显示mysql> ,表示您现在正在使用MySQL命令行。 如果您看到mysql command not found类似mysql command not found的错误,那可能是由于缺少MySQL路径变量。 您可以按照以下过程解决此问题:
视窗
如果是Windows,请右键单击“ 我的电脑” /“此PC”图标,然后选择“系统属性”。 在系统属性中,选择高级选项卡,然后单击环境变量 。 在环境变量中,查找PATH变量,然后双击以进行编辑。 最后,在分号后将MySQL安装路径附加到变量中。 应用更改,然后尝试再次在命令提示符下执行上述命令。 Linux / MacOS 在Linux和MacOS变体中,过程仍然相似。 为了启用对mysql命令的直接检测,请在替换命令中MySQL安装路径后执行以下命令。

export PATH=$PATH:

连接后,MySQL命令行可用于执行任何SQL查询,无论它是CRUD操作还是数据定义或管理查询。 首先,让我们使用以下命令检查可用数据库的列表:

mysql> show databases;

如果是全新安装,它将仅显示用于管理目的MySQL默认数据库列表。

3.创建数据库和表

让我们继续创建数据库。 MySQL中的数据库称为架构。 为了创建模式,请执行以下命令:

mysql> create schema tutorial;

确保最后使用分号。 如果您错过了分号,则该语句将不被认为是完整的,并且将提示您提供进一步的说明,如下所示。

mysql> create schema tutorial-> ;
Query OK, 1 row affected (0.09 sec)

输入分号后,它将立即执行之前编写的查询。 现在,您可以在末端检查数据库列表,以验证是否已创建数据库。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| tutorial           |
+--------------------+
5 rows in set (0.01 sec)

现在让我们使用数据库并在其中创建表。 让我们创建一个简单的学生详细信息表。

mysql> use tutorial
Database changed
mysql> create table student_details (id int, name varchar(50), class varchar(3));
Query OK, 0 rows affected (0.07 sec)

上面的命令首先选择教程数据库,然后创建具有三列的表。 让我们再创建两个表以处理进一步的查询。

mysql> create table subjects (id int, name varchar(50));
Query OK, 0 rows affected (0.11 sec)mysql> create table marks (id int, subject_id int, student_id int, marks int);
Query OK, 0 rows affected (0.05 sec)

现在,让我们检查在数据库中创建的表。

mysql> show tables;
+--------------------+
| Tables_in_tutorial |
+--------------------+
| marks              |
| student_details    |
| subjects           |
+--------------------+
3 rows in set (0.00 sec)

4.在表中插入记录

MySQL命令行支持用于插入记录的标准SQL命令。 要将记录插入创建的表中,请执行以下命令。

插入到student_details

mysql> mysql> insert into student_details values (1,'Abhishek','XII');
Query OK, 1 row affected (0.10 sec)

上面的语句将一条记录插入到student_details表中。 为了插入多个记录,您可以将值集合并在一行中,也可以将这些值添加到没有分号的单独行中。 这两种方法如下所示。

每行添加一条记录

mysql> insert into student_details values (2,'John','XII')-> ,(3,'Ted','XI')-> ,(4,'Tim','XII');
Query OK, 3 rows affected (0.08 sec)
Records: 3  Duplicates: 0  Warnings: 0

在一行中添加记录

mysql> insert into student_details values (2,'John','XII'),(3,'Ted','XI'),(4,'Tim','XII');
Query OK, 3 rows affected (0.08 sec)
Records: 3  Duplicates: 0  Warnings: 0

5.查看记录并格式化输出

现在, student_details表中的记录很少。 现在让我们查看记录。

5.1查看所有记录

为了查看所有记录,您需要做的就是对student_details表执行select查询。

mysql> select * from student_details;
+------+----------+-------+
| id   | name     | class |
+------+----------+-------+
|    1 | Abhishek | XII   |
|    2 | John     | XII   |
|    3 | Ted      | XI    |
|    4 | Tim      | XII   |
+------+----------+-------+
4 rows in set (0.00 sec)

5.2查看格式化的输出

默认情况下,记录显示在表格控制台输出中,如上所示。 MySQL还提供了使用格式化命令来格式化控制台输出的工具。 例如,为了获得逐行输出,可以使用\G ,如下所示:

mysql> select * from student_details \G;
*************************** 1. row ***************************id: 1name: Abhishek
class: XII
*************************** 2. row ***************************id: 2name: John
class: XII
*************************** 3. row ***************************id: 3name: Ted
class: XI
*************************** 4. row ***************************id: 4name: Tim
class: XII
4 rows in set (0.00 sec)

5.3查看有限的记录

有时,可能需要在少数情况下希望看到有限数量的记录,例如表中的记录数量很大或尝试实现分页时。 在这种情况下,您需要限制返回的记录数。 在MySQL中,这可以通过关键字limit 。 它基本上限制了从表中获取的记录数。 例如,

mysql> select * from student_details limit 2;
+------+----------+-------+
| id   | name     | class |
+------+----------+-------+
|    1 | Abhishek | XII   |
|    2 | John     | XII   |
+------+----------+-------+
2 rows in set (0.04 sec)

以这种方式,可以限制结果集中返回的记录数。

5.4抵消结果

在分页的情况下,需要抵消。 抵销基本上是一种跳过一定数量的记录并获取下一个记录的机制。 例如,如果一个表包含40条记录,而我们创建一个表,则每页显示10条记录。 在这种情况下,在第二页中,我们需要在跳过前10条后获取10条记录。这可以使用关键字offset 。 下面显示了相同的示例。

mysql> select * from student_details limit 2 offset 2;
+------+------+-------+
| id   | name | class |
+------+------+-------+
|    3 | Ted  | XI    |
|    4 | Tim  | XII   |
+------+------+-------+
2 rows in set (0.00 sec)

6.更新和删除记录

插入记录后,我们通常需要做的下一个任务是更正或删除它们。 如上所述,MySQL命令像普通的数据库客户端一样处理所有SQL查询。 让我们尝试更新id-3的学生记录。 该类设置为XI而不是XII。 让我们使用更新查询对它们进行纠正。

mysql> update student_details set class='XII' where id= 3;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0

可以看到,命令行显示了已匹配和已更改的记录的摘要。 它还计算由于多种可能的原因在更新过程中可能引发的警告数量。 现在,让我们尝试检查无效数据的更新。 例如,

mysql> update student_details set class='XIIII' where id= 3;
ERROR 1406 (22001): Data too long for column 'class' at row 3

可以看出,每当您提供无效值时,就会发生错误。 每个错误都分配有一个相关的错误代码,而不仅仅是显示消息。 数据库客户端使用此错误代码来显示具有更好详细信息的明智错误。
现在,考虑蒂姆离开学校的情况。 Tim的记录不再需要,因此需要删除。 为了删除记录,让我们执行删除脚本,如下所示:

mysql> delete from student_details where id = 4;
Query OK, 1 row affected (0.03 sec)

删除的行数按受影响的行数显示。 因此,可以理解,一条记录已被成功删除。

7.切换安全更新和自动提交

考虑一种错误地执行删除查询而没有where子句的情况。 如果对此类查询的执行没有任何限制,则将导致记录丢失。 有两种方法可以阻止这种情况。

  1. 在没有关键字段条件的情况下停止查询执行
  2. 禁用自动提交以允许用户回滚

7.1启用/禁用安全更新

默认情况下,安全更新在MySQL命令行中处于关闭状态。 这使用户可以执行如下所示的查询。

mysql> delete from student_details;

这样的查询将从表中删除所有现有记录,从而导致数据丢失。 为了禁用此类查询的执行,您可以强制执行包含关键字段条件的where子句。 例如,您可以在条件中使用ID字段来强制执行where子句。 可以使用以下查询来完成。

mysql> set sql_safe_updates=1;
Query OK, 0 rows affected (0.01 sec)

现在,如果我们尝试执行上述删除查询,将显示如下所示的输出。

mysql> delete from student_details;
ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

启用安全更新模式后,如果where子句中没有id字段,则无法执行删除或更新查询。 请注意,由于当前student_details表中没有键字段,因此我们将无法删除或更新任何记录。 为此,您需要更改表并添加主键。 本文将进一步介绍此过程。 现在,您可以使用以下语句禁用安全更新模式。

mysql> set sql_safe_update = 0;

7.2禁用自动提交

当前,如果删除查询被错误地执行,则无法取回数据。 这是因为默认情况下,MySQL在命令行中启用了自动提交功能。 自动提交基本上意味着它将自动将所有更改应用到实际数据库。
禁用自动提交后,将缓存使用命令行完成的更改,直到我们要求数据库显式提交它为止。 禁用自动提交后,如果执行了查询,则可以通过执行简单的命令rollback来回滚更改。 为了禁用自动提交,请使用以下语句。

mysql> set autocommit=0;
Query OK, 0 rows affected (0.01 sec)

自动提交功能关闭后,请在安全更新模式关闭的情况下执行以下删除查询。

mysql> delete from student_details;
Query OK, 4 rows affected (0.00 sec)mysql> select count(*) from student_details;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.01 sec)mysql> rollback;
Query OK, 0 rows affected (0.06 sec)mysql> select count(*) from student_details;
+----------+
| count(*) |
+----------+
|        4 |
+----------+
1 row in set (0.00 sec)

从上述执行删除查询的过程中可以看出,执行删除查询后,如果从表中选择数据,则没有可用的记录。 但是,回滚后,您可以看到这4条记录是完整的,并且删除操作已还原。 因此,关闭自动提交可能会对MySQL命令行的常规使用产生重大影响。

8. MySQL管理

一旦我们了解了MySQL数据库的创建和更新,就该开始研究管理数据库了。 对于大型项目,数据库管理是一项重要任务。 每个数据库都有其自己的存储管理数据的方式。 MySQL将管理数据存储在两个不同的数据库中。 用于管理目的的第一个数据库是名为mysql的数据库。 本节仅涵盖对初学者最重要的表格。
让我们选择数据库并检查可用表的列表。

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| component                 |
| db                        |
| default_roles             |
| engine_cost               |
| func                      |
| general_log               |
| global_grants             |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| password_history          |
| plugin                    |
| procs_priv                |
| proxies_priv              |
| role_edges                |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
33 rows in set (0.01 sec)

可以看出,仅此数据库就包含一堆33个表。 其中,最重要的表是user&global_grants 。 用户表包含到目前为止已创建的用户列表。 在查看记录时,除了默认的root用户之外,您还会发现另外三个用户。 这些用户默认在安装过程中创建,除非有必要,否则不应更新。

mysql> select * from user \G;;
*************************** 1. row ***************************Host: localhostUser: mysql.infoschemaSelect_priv: YInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: NProcess_priv: NFile_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NShow_db_priv: NSuper_priv: NCreate_tmp_table_priv: NLock_tables_priv: NExecute_priv: NRepl_slave_priv: NRepl_client_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NCreate_user_priv: NEvent_priv: NTrigger_priv: N
Create_tablespace_priv: Nssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHEREpassword_expired: Npassword_last_changed: 2018-05-13 14:47:36password_lifetime: NULLaccount_locked: YCreate_role_priv: NDrop_role_priv: N
Password_reuse_history: NULLPassword_reuse_time: NULL
*************************** 2. row ***************************Host: localhostUser: mysql.sessionSelect_priv: NInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: NProcess_priv: NFile_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NShow_db_priv: NSuper_priv: YCreate_tmp_table_priv: NLock_tables_priv: NExecute_priv: NRepl_slave_priv: NRepl_client_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NCreate_user_priv: NEvent_priv: NTrigger_priv: N
Create_tablespace_priv: Nssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHEREpassword_expired: Npassword_last_changed: 2018-05-13 14:47:36password_lifetime: NULLaccount_locked: YCreate_role_priv: NDrop_role_priv: N
Password_reuse_history: NULLPassword_reuse_time: NULL
*************************** 3. row ***************************Host: localhostUser: mysql.sysSelect_priv: NInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: NProcess_priv: NFile_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NShow_db_priv: NSuper_priv: NCreate_tmp_table_priv: NLock_tables_priv: NExecute_priv: NRepl_slave_priv: NRepl_client_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NCreate_user_priv: NEvent_priv: NTrigger_priv: N
Create_tablespace_priv: Nssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHEREpassword_expired: Npassword_last_changed: 2018-05-13 14:47:36password_lifetime: NULLaccount_locked: YCreate_role_priv: NDrop_role_priv: N
Password_reuse_history: NULLPassword_reuse_time: NULL
*************************** 4. row ***************************Host: localhostUser: rootSelect_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YReload_priv: YShutdown_priv: YProcess_priv: YFile_priv: YGrant_priv: YReferences_priv: YIndex_priv: YAlter_priv: YShow_db_priv: YSuper_priv: YCreate_tmp_table_priv: YLock_tables_priv: YExecute_priv: YRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YCreate_user_priv: YEvent_priv: YTrigger_priv: Y
Create_tablespace_priv: Yssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19password_expired: Npassword_last_changed: 2018-05-13 14:47:39password_lifetime: NULLaccount_locked: NCreate_role_priv: YDrop_role_priv: Y
Password_reuse_history: NULLPassword_reuse_time: NULL
4 rows in set (0.00 sec)

从这里可以看出, \G可以方便地以更好的格式查看记录。 现在让我们创建一个用户并检查记录。

mysql> create user 'abhishek'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.10 sec)

现在,您可以使用where子句指定用户属性来检查用户,如下所示。

mysql> select * from user where User='abhishek' \G;
*************************** 1. row ***************************Host: localhostUser: abhishekSelect_priv: NInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: NProcess_priv: NFile_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NShow_db_priv: NSuper_priv: NCreate_tmp_table_priv: NLock_tables_priv: NExecute_priv: NRepl_slave_priv: NRepl_client_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NCreate_user_priv: NEvent_priv: NTrigger_priv: N
Create_tablespace_priv: Nssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19password_expired: Npassword_last_changed: 2018-05-30 21:22:45password_lifetime: NULLaccount_locked: NCreate_role_priv: NDrop_role_priv: N
Password_reuse_history: NULLPassword_reuse_time: NULL
1 row in set (0.01 sec)

当前,该用户尚未获得任何授权。 因此,在以上输出中,所有用户授权都标记为N。 让我们向用户提供授权,以选择和查看教程模式的记录。

mysql> GRANT SELECT ON *.* TO 'abhishek'@'localhost';
Query OK, 0 rows affected (0.06 sec)mysql> select * from user where User='abhishek' \G;
*************************** 1. row ***************************Host: localhostUser: abhishekSelect_priv: YInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: NProcess_priv: NFile_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NShow_db_priv: NSuper_priv: NCreate_tmp_table_priv: NLock_tables_priv: NExecute_priv: NRepl_slave_priv: NRepl_client_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NCreate_user_priv: NEvent_priv: NTrigger_priv: N
Create_tablespace_priv: Nssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19password_expired: Npassword_last_changed: 2018-05-30 21:22:45password_lifetime: NULLaccount_locked: NCreate_role_priv: NDrop_role_priv: N
Password_reuse_history: NULLPassword_reuse_time: NULL
1 row in set (0.00 sec)

授予选择授权后,您可以看到第一个授权属性select_priv变为Y。
global_grants表包含分配给每个用户的全局授权的列表。 您可以通过直接查看表中的记录来进行检查。 当前,它将仅列出根用户的全局授权,因为它是此时唯一拥有全局授权的用户。

MySQL用来存储主要管理数据的下一个数据库是sys数据库。 该数据库包含数据库的实时数据,例如已连接用户的详细信息,活动会话的详细信息,运行线程的详细信息以及其他一些参数,例如延迟,服务器状态,服务器日志,服务器编码配置等。 最重要的表包括session,host_summary和user_summary
这些表中每个表的详细信息如下:

  1. session:包含有关当前活动会话的详细信息。 它显示有关当前活动线程,上次执行的查询以及延迟时间的详细信息。 在发生锁定或高延迟查询执行的情况下,此表可用于标识进程。
  2. host_summary:此表包含通过此服务器提供服务的主机的详细信息。 可以通过多个主机域连接到服务器。 该表有助于识别活动连接的主机详细信息
  3. user_summary:包含已连接用户的详细信息。 如果每个用户有多个会话,则此表显示具有活动连接数的单个记录,而会话表显示指示每个连接线程的多个记录。

9.结论

本文探讨了从连接到数据库的创建和更新以及数据库管理开始,将使用MySQL命令行完成的所有主要任务。 此外,您还可以探索有关更改表,可用数据类型和功能的详细信息。

翻译自: https://www.javacodegeeks.com/2018/06/mysql-command-line-tutorial.html

mysql命令行安装教程

mysql命令行安装教程_MySQL命令行教程相关推荐

  1. mysql命令行操作大全_mysql命令行操作大全 mysql命令行操作总结

    一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 或者: mysql -u 用户名 -p // 回车后要求输入密码,密码不可见 1.连接本机MYSQL. 打开DOS窗口, ...

  2. mysql用命令行创建表_mysql命令行创建表

    命令来查看表中的数据的变化: mysql>select*from students; 7.用文本方式将数据装入一个数据库表: 创建一个文本文件"student.sql",每行 ...

  3. linux mysql 命令行查询 乱码_mysql命令提示行连接乱码的解决

    解决MySQL命令行无法连接问题错误ERROR1045(28000) 问题现象: 用navicat可以连接数据库 通过命令行mysql -uroot -p 输入密码后提示"ERROR 104 ...

  4. mysql 命令行 格式化输出_MySQL命令行格式化输出

    使用G按行垂直显示结果 如果一行很长,需要这行显示的话,看起结果来就非常的难受.在SQL语句或者命令后使用G而不是分号结尾,可以将每一行的值垂直输出.这个可能也是大家对于MySQL最熟悉的区别于其他数 ...

  5. mysql 命令行 外键_MySQL基本命令行MySql外键设置详解

    MySQL 命令行 一.mysql服务的启动和停止 net stop mysql net start mysql 二.登录mysql 语法如下:mysql  -u  用户名  -p  用户密码 键入命 ...

  6. mysql 命令行 外键_MySQL命令行MySql外键设置详解

    第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uro ...

  7. mysql里两个闪电_mysql命令小结

    MySQL 数据库常用命令 1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删 ...

  8. mysql 8免安装图解_mysql 8.0.21免安装版配置方法图文教程

    六步安装Mysql(免安装包的才可以选安装位置),供大家参考,具体内容如下 第一步:下载MySQL压缩包 mysql下载路径 直接点击链接也可以下载:mysql 8.0.21 第二步:解压到自己想要安 ...

  9. mysql less6教程_MySQL 超级入门教程

    原标题:MySQL 超级入门教程 MySQL简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二 ...

最新文章

  1. 成功企业的核心思维逻辑
  2. Python面试准备
  3. [JavaScript]自定义MessageBox
  4. LC3无重复最长字串
  5. 一个Repeater的分页方法
  6. Android客户端获取服务器的json数据(二)
  7. 完整制作网吧系统全过程
  8. 计算机基础,Java介绍和环境搭建及Hello World
  9. 风寒感冒 风热感冒区别
  10. easyui treegrid php,jQuery EasyUI 数据网格与树插件 – Treegrid 树形网格 | 菜鸟教程
  11. [Python爬虫]爬取东方财富网公司公告需要注意的几个问题
  12. vim 基本够用的操作命令
  13. HTML5在线播放本地视频(IE9以上的浏览器)
  14. Vim 批量在行首/行尾插入相同字符
  15. OneNote-做笔记的软件-强烈推荐
  16. resent = msg.get_all('Resent-Date') AttributeError: 'str' object has no attribute 'get_all'
  17. 酷!60 s 速学HTTP 状态码 !
  18. 抖音视频怎样放到项目中使用php,快手、抖音、微视类短视频SDK接入教程,7步就能搞定...
  19. bat文件(cmd命令批处理)的编写使用
  20. 假期自学编程没有学习路线?

热门文章

  1. 程序员课外拓展007:强烈推荐一个自学网:可汗学院
  2. 社交系统ThinkSNS+ 性能简述
  3. hex文件格式学习记录
  4. 【MySQL】MySQL分库分表详解
  5. 九宫格解锁的完全实现
  6. 用python简单入门写糖葫芦!
  7. 计算机网络技术(二)——数据通信
  8. 游戏厂商必看:游戏音效验收标准
  9. Ubuntu20.04 OpenSlide 读图Bug 解决
  10. HAL 库中 GPIO 工作模式配置(H7)