MySQL 基础常用命令

MySQL操作指南
一、启动与关闭

1.1 Linux下启动mysql 的命令:

  • a. rpm包安装:service mysqld start
  • b. 源码包安装:/usr/local/mysql/bin/mysqld_safe --user=mysql &

1.2 Linux下重启mysql 的命令:

  • a. rpm包安装:service mysqld restart
  • b. 源码包安装:
    • 先关闭mysql

      /usr/local/mysql/bin/mysqladmin -uroot -p shutdown

    • 再启动mysql
      /usr/local/mysql/bin/mysqld_safe --user=mysql &

1.3 Linux下关闭mysql 的命令:

  • a. rpm包安装:service mysqld stop
  • b. 源码包安装:
    • 方法1、/usr/local/mysql/bin/mysqladmin -uroot -p shutdown
    • 方法2、killall mysqld           //强行终止MySQL数据库服务,有可能导致表损坏,不建议使用

二、数据库连接

2.1 连接MySQL

格式:$mysql_dir/bin/mysql [-h主机地址] -u用户名 -p用户密码,回车后提示输入密码。

2.2 退出MySQL

格式:exit/quit

 

三、修改密码

3.1 mysqladmin 命令

格式:mysqladmin -u用户名 -p旧密码 password 新密码

例1:给root加个密码123456。首先在终端下进入目录$mysql_dir/bin,然后键入以下命令

./mysqladmin -uroot password ’123456′

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

例2:再将root的密码改为abc123。

./mysqladmin -uroot -p123456 password abc123

3.2 UPDATE user 语句

首先使用root 帐户登入mysql,然后执行:

UPDATE mysql.user SET password=PASSWORD('123456') WHERE user='root';
FLUSH PRIVILEGES;

3.3 SET PASSWORD 语句

同样,首先使用root 帐户登入mysql,然后执行:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('abc123');

四、创建用户与授权

4.1 CREATE USER

CREATE USER user [IDENTIFIED BY [PASSWORD] 'password']
    [, user [IDENTIFIED BY [PASSWORD] 'password']] ...

CREATE USER用于创建新的MySQL账户。要使用CREATE USER,您必须拥有mysql 数据库的全局CREATE USER权限,或拥有INSERT权限。对于每个账户,CREATE USER会在没有权限的mysql.user表中创建一个新记录。如果账户已经存在,则出现错误。

使用自选的IDENTIFIED BY子句,可以为账户指定一个密码。user值和密码的给定方法和GRANT语句一样。特别要注意的是,要在纯文本中指定密码,需忽略PASSWORD关键词。要把密码指定为由PASSWORD()函数返回的混编值,需包含关键字PASSWORD。

例1:创建新用户david & sandy

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

mysql>
mysql> create user 'sandy'@'localhost' identified by PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19';
Query OK, 0 rows affected (0.00 sec)

mysql>

4.2 使用GRANT语句

最好的方法是使用GRANT语句,因为这样更精确,错误少。从MySQL 3.22.11起提供了GRANT;它的主要用途是来给帐户授权的,但也可用来建立新帐户并同时授权。

注意:当mysql 运行于no_auto_create_user 时要提供新建用户的密码,否则不能创建新用户。

格式:

GRANT privileges ON databasename.tablename TO 'username'@'host' identified by 'password'; 

例1、增加一个用户test1,密码为abc,让他可以在任何主机上登录,并对所有数据库拥有所有权限。

首先用以root用户连入MySQL,然后键入以下命令:

grant all privileges on *.* to 'test1'@'%' identified  by 'abc';
flush privileges;

例2、增加一个用户test2,密码为abc,让他只可以在localhost上登录,并可以对数据库david进行查询、插入、修改、删除的操作。

grant select,insert,update,delete on david.* to 'test2'@'localhost' identified by 'abc';
flush privileges;

如果不想test2有密码,可以再打一个命令将密码消掉。

grant select,insert,update,delete on david.* to 'test2'@'localhost' identified by '';

grant 更多用法,请自行Google+Baidu。

4.3 直接操作MySQL授权表

除了GRANT,你可以直接用INSERT语句创建相同的账户,然后使用FLUSH PRIVILEGES告诉服务器重载授权表。

例1:创建用户test3,让其具有同4.2 例2中test2用户同样的权限。

复制代码
mysql> insert into mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv) values('localhost', 'test3', PASSWORD('password'),'Y','Y','Y','Y');
Query OK, 1 row affected, 3 warnings (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> 
复制代码
复制代码
mysql> select Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv from mysql.user where User='test3';
+-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+
| Host      | User  | Password                                  | Select_priv | Insert_priv | Update_priv | Delete_priv |
+-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+
| localhost | test3 | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 | Y           | Y           | Y           | Y           | 
+-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+
1 row in set (0.00 sec)

mysql> 
复制代码

当用INSERT创建账户时,使用FLUSH PRIVILEGES 的原因是告诉服务器重读授权表。否则,只有重启服务器后更改才会生效。使用 GRANT,则不需要使用FLUSH PRIVILEGES。

用INSERT语句时,使用PASSWORD()函数是为了加密密码。GRANT语句自动加密密码,因此不需要PASSWORD()。

'Y' 值启用账户权限。

五、库操作

必须首先登录到mysql 中,有关操作都是在mysql 的提示符下进行,而且每个命令以分号结束。

5.1 创建数据库

命令:create database <数据库名>;

例1:创建一个名为test 的数据库

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql>

5.2 显示所有的数据库

命令:show databases;(注意:最后有个s)

复制代码
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| david              | 
| mysql              | 
| test               | 
+--------------------+
4 rows in set (0.00 sec)

mysql> 
复制代码

5.3 删除数据库

命令:drop database <数据库名>;

例2:删除名为test 的数据库

mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)

mysql> 

5.4 连接数据库

命令: use <数据库名>;

例3:连接david 数据库

mysql> use david;
Database changed
mysql> 

5.5 查看当前使用的数据库

命令:select database();

复制代码
mysql> select database();
+------------+
| database() |
+------------+
| david      | 
+------------+
1 row in set (0.00 sec)

mysql> 
复制代码

5.6 当前数据库包含的表信息

命令:show tables;(注意:最后有个s)

复制代码
mysql> show tables;
+-----------------+
| Tables_in_david |
+-----------------+
| emp             | 
+-----------------+
1 row in set (0.00 sec)

mysql> 
复制代码

六、表操作

操作之前应连接某个数据库。

6.1 建立表

create table <表名> (<字段名1> <类型1> [,..<字段名n> <类型n>]);

create table tablename (col1 type1 [not null] [primary key],col2 type2 [not null],..);
复制代码
mysql> create table myclass (
    -> id int(4) not null primary key auto_increment,
    -> name char(20) not null,
    -> sex int(4) not null default '0',
    -> degree double(16,2));
Query OK, 0 rows affected (0.04 sec)

mysql> 
复制代码

补充:根据已有的表创建新表。

create table tab_new like tab_old; (只有表结构)

create table tab_new as select * from tab_old; (既包含表结构,又包含表数据)

只包含表结构:

mysql> create table myclass2 like myclass;
Query OK, 0 rows affected (0.00 sec)

mysql> 

既包含表结构,又包含表数据:

复制代码
mysql> insert into myclass values(1, 'david', 1, 20130417.16);
Query OK, 1 row affected (0.02 sec)

mysql> 
mysql> 
mysql> create table myclass3 as select * from myclass;
Query OK, 1 row affected (0.07 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> select * from myclass3;
+----+-------+-----+-------------+
| id | name  | sex | degree      |
+----+-------+-----+-------------+
|  1 | david |   1 | 20130417.16 | 
+----+-------+-----+-------------+
1 row in set (0.02 sec)

mysql> 
复制代码

6.2 获取表结构

命令:

desc 表名;
or
show columns from 表名;

获取myclass & myclass2 表结构

复制代码
mysql> desc myclass;
+--------+--------------+------+-----+---------+----------------+
| Field  | Type         | Null | Key | Default | Extra          |
+--------+--------------+------+-----+---------+----------------+
| id     | int(4)       | NO   | PRI | NULL    | auto_increment | 
| name   | char(20)     | NO   |     |         |                | 
| sex    | int(4)       | NO   |     | 0       |                | 
| degree | double(16,2) | YES  |     | NULL    |                | 
+--------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql> show columns from myclass2;
+--------+--------------+------+-----+---------+----------------+
| Field  | Type         | Null | Key | Default | Extra          |
+--------+--------------+------+-----+---------+----------------+
| id     | int(4)       | NO   | PRI | NULL    | auto_increment | 
| name   | char(20)     | NO   |     |         |                | 
| sex    | int(4)       | NO   |     | 0       |                | 
| degree | double(16,2) | YES  |     | NULL    |                | 
+--------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql> 
复制代码

6.3 删除表

命令:drop table <表名>;

例:删除表名为 myclass3 的表

复制代码
mysql> drop table myclass3;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+-----------------+
| Tables_in_david |
+-----------------+
| emp             | 
| myclass         | 
| myclass2        | 
+-----------------+
3 rows in set (0.00 sec)

mysql> 
复制代码

6.4 更改表名

命令:rename table 原表名 to 新表名;

例:将表 myclass2 名字更改为 myclass4

复制代码
mysql> rename table myclass2 to myclass4;
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+-----------------+
| Tables_in_david |
+-----------------+
| emp             | 
| myclass         | 
| myclass4        | 
+-----------------+
3 rows in set (0.00 sec)

mysql> 
复制代码

6.5 在表中增加字段

命令:alter table 表名 add 字段 类型 其他;

例:在表 myclass 中添加了一个字段passtest,类型为int(4),默认值为0。

复制代码
mysql> alter table myclass add passtest int(4) default '0';
Query OK, 1 row affected (0.04 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> desc myclass;
+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | int(4)       | NO   | PRI | NULL    | auto_increment | 
| name     | char(20)     | NO   |     |         |                | 
| sex      | int(4)       | NO   |     | 0       |                | 
| degree   | double(16,2) | YES  |     | NULL    |                | 
| passtest | int(4)       | YES  |     | 0       |                | 
+----------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

mysql> 
复制代码

七、数据操作

7.1 插入数据

命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )];

例:向 myclass 表中插入以下记录,留空的表示使用默认值。

复制代码
mysql> insert into myclass (id, name, sex, degree, passtest) values(1, 'david', 1, 80.56, 78);     
Query OK, 1 row affected (0.00 sec)

mysql> insert into myclass values(2, 'sandy', 0, 100, 90);
Query OK, 1 row affected (0.00 sec)

mysql> insert into myclass (id, name, sex, degree) values(3, 'renee', 0, 90.34);
Query OK, 1 row affected (0.00 sec)

mysql> insert into myclass (id, name) values(4, 'china');
Query OK, 1 row affected (0.00 sec)

mysql>
复制代码

7.2 查询表中的数据

a. 查询所有行

命令:select <字段1,字段2,...> from < 表名 > where < 表达式 >;

例1:查看表 myclass 中所有数据

复制代码
mysql> select * from myclass;
+----+-------+-----+--------+----------+
| id | name  | sex | degree | passtest |
+----+-------+-----+--------+----------+
|  1 | david |   1 |  80.56 |       78 | 
|  2 | sandy |   0 | 100.00 |       90 | 
|  3 | renee |   0 |  90.34 |        0 | 
|  4 | china |   0 |   NULL |        0 | 
+----+-------+-----+--------+----------+
4 rows in set (0.00 sec)

mysql> 
复制代码

例2:查询表 david 相关信息

复制代码
mysql> select * from myclass where name='david';
+----+-------+-----+--------+----------+
| id | name  | sex | degree | passtest |
+----+-------+-----+--------+----------+
|  1 | david |   1 |  80.56 |       78 | 
+----+-------+-----+--------+----------+
1 row in set (0.00 sec)

mysql> 
复制代码

b. 查询前几行数据

例如:查看表 myclass 中前2行数据

复制代码
mysql> select * from myclass limit 2;
+----+-------+-----+--------+----------+
| id | name  | sex | degree | passtest |
+----+-------+-----+--------+----------+
|  1 | david |   1 |  80.56 |       78 | 
|  2 | sandy |   0 | 100.00 |       90 | 
+----+-------+-----+--------+----------+
2 rows in set (0.00 sec)

mysql>
复制代码

或者:

复制代码
mysql> select * from myclass order by id limit 2;
+----+-------+-----+--------+----------+
| id | name  | sex | degree | passtest |
+----+-------+-----+--------+----------+
|  1 | david |   1 |  80.56 |       78 | 
|  2 | sandy |   0 | 100.00 |       90 | 
+----+-------+-----+--------+----------+
2 rows in set (0.01 sec)

mysql> 
复制代码

7.3 删除表中的数据

命令:delete from 表名 where 表达式;

例如:删除表 myclass 中编号为4的记录

复制代码
mysql> delete from myclass where id=4;
Query OK, 1 row affected (0.00 sec)

mysql> select * from myclass;
+----+-------+-----+--------+----------+
| id | name  | sex | degree | passtest |
+----+-------+-----+--------+----------+
|  1 | david |   1 |  80.56 |       78 | 
|  2 | sandy |   0 | 100.00 |       90 | 
|  3 | renee |   0 |  90.34 |        0 | 
+----+-------+-----+--------+----------+
3 rows in set (0.00 sec)

mysql> 
复制代码

7.4 修改表中的数据

update 表名 set 字段 = 新值,… where 条件;

例:修改 myclass 表中编号为1的记录,将degree 值改成89.99

复制代码
mysql> update myclass set degree=89.99 where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from myclass;
+----+-------+-----+--------+----------+
| id | name  | sex | degree | passtest |
+----+-------+-----+--------+----------+
|  1 | david |   1 |  89.99 |       78 | 
|  2 | sandy |   0 | 100.00 |       90 | 
|  3 | renee |   0 |  90.34 |        0 | 
+----+-------+-----+--------+----------+
3 rows in set (0.00 sec)

mysql> 
复制代码

八、数据的导入导出

8.1 导出整个数据库

命令:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

复制代码
[root@TS-DEV bin]# ./mysqldump -uroot -p david > /tmp/david/david.sql
Enter password: 
[root@TS-DEV bin]# ll /tmp/david/
total 4
-rw-r--r-- 1 root root 2764 Apr 17 17:13 david.sql
[root@TS-DEV bin]# 
复制代码

8.2 导出一个表

命令:mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

复制代码
[root@TS-DEV bin]# ./mysqldump -uroot -p david myclass > /tmp/david/david_myclass.sql
Enter password: 
[root@TS-DEV bin]# ll /tmp/david/
total 8
-rw-r--r-- 1 root root 1854 Apr 17 17:16 david_myclass.sql
-rw-r--r-- 1 root root 2764 Apr 17 17:13 david.sql
[root@TS-DEV bin]# 
复制代码

8.3 导出一个数据库结构

命令:mysqldump -u root -p -d --add-drop-table test > test_db.sql

-d 没有数据 --add-drop-table 在每个create 语句之前增加一个drop table

[root@TS-DEV bin]# ./mysqldump -uroot -p -d --add-drop-table david > /tmp/david/david_db.sql
Enter password: 
[root@TS-DEV bin]# 

8.4 导入数据库

a. 常用source 命令

进入mysql 数据库控制台

# ./mysql -uroot -p

复制代码
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| mysql              | 
+--------------------+
2 rows in set (0.00 sec)

mysql> create database sandy;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| mysql              | 
| sandy              | 
+--------------------+
3 rows in set (0.00 sec)

mysql> use sandy
Database changed
mysql> source /tmp/david/david.sql
Query OK, 0 rows affected (0.00 sec)

...

Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0...

Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0...

Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+-----------------+
| Tables_in_sandy |
+-----------------+
| emp             | 
| myclass         | 
| myclass4        | 
+-----------------+
3 rows in set (0.00 sec)

mysql> select * from emp;
+------+-------+
| id   | name  |
+------+-------+
|    1 | david | 
|    2 | sandy | 
+------+-------+
2 rows in set (0.00 sec)

mysql> 
复制代码

b. 使用mysql 命令

先创建要导入的数据库 renee。

复制代码
mysql> create database renee;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| mysql              | 
| renee              | 
| sandy              | 
+--------------------+
4 rows in set (0.00 sec)

mysql> 
复制代码

导入数据

[root@TS-DEV bin]# ./mysql -uroot -p -D renee < /tmp/david/david_myclass.sql 
Enter password: 
[root@TS-DEV bin]#

查看数据

复制代码
mysql> use renee;
Database changed
mysql> show tables;
+-----------------+
| Tables_in_renee |
+-----------------+
| myclass         | 
+-----------------+
1 row in set (0.00 sec)

mysql> select * from myclass;
+----+-------+-----+--------+----------+
| id | name  | sex | degree | passtest |
+----+-------+-----+--------+----------+
|  1 | david |   1 |  89.99 |       78 | 
|  2 | sandy |   0 | 100.00 |       90 | 
|  3 | nancy |   0 |  90.34 |        0 | 
+----+-------+-----+--------+----------+
3 rows in set (0.00 sec)

 

转载于:https://www.cnblogs.com/lc1776/p/9156325.html

标题SpringBoot智能在线预约挂号系统研究AI更换标题第1章引言介绍智能在线预约挂号系统的研究背景、意义、国内外研究现状及论文创新点。1.1研究背景与意义阐述智能在线预约挂号系统对提升医疗服务效率的重要性。1.2国内外研究现状分析国内外智能在线预约挂号系统的研究与应用情况。1.3研究方法及创新点概述本文采用的技术路线、研究方法及主要创新点。第2章相关理论总结智能在线预约挂号系统相关理论,包括系统架构、开发技术等。2.1系统架构设计理论介绍系统架构设计的基本原则和常用方法。2.2SpringBoot开发框架理论阐述SpringBoot框架的特点、优势及其在系统开发中的应用。2.3数据库设计与管理理论介绍数据库设计原则、数据模型及数据库管理系统。2.4网络安全与数据保护理论讨论网络安全威胁、数据保护技术及其在系统中的应用。第3章SpringBoot智能在线预约挂号系统设计详细介绍系统的设计方案,包括功能模块划分、数据库设计等。3.1系统功能模块设计划分系统功能模块,如用户管理、挂号管理、医生排班等。3.2数据库设计与实现设计数据库表结构,确定字段类型、主键及外键关系。3.3用户界面设计设计用户友好的界面,提升用户体验。3.4系统安全设计阐述系统安全策略,包括用户认证、数据加密等。第4章系统实现与测试介绍系统的实现过程,包括编码、测试及优化等。4.1系统编码实现采用SpringBoot框架进行系统编码实现。4.2系统测试方法介绍系统测试的方法、步骤及测试用例设计。4.3系统性能测试与分析对系统进行性能测试,分析测试结果并提出优化建议。4.4系统优化与改进根据测试结果对系统进行优化和改进,提升系统性能。第5章研究结果呈现系统实现后的效果,包括功能实现、性能提升等。5.1系统功能实现效果展示系统各功能模块的实现效果,如挂号成功界面等。5.2系统性能提升效果对比优化前后的系统性能
在金融行业中,对信用风险的判断是核心环节之一,其结果对机构的信贷政策和风险控制策略有直接影响。本文将围绕如何借助机器学习方法,尤其是Sklearn工具包,建立用于判断信用状况的预测系统。文中将涵盖逻辑回归、支持向量机等常见方法,并通过实际操作流程进行说明。 一、机器学习基本概念 机器学习属于人工智能的子领域,其基本理念是通过数据自动学习规律,而非依赖人工设定规则。在信贷分析中,该技术可用于挖掘历史数据中的潜在规律,进而对未来的信用表现进行预测。 二、Sklearn工具包概述 Sklearn(Scikit-learn)是Python语言中广泛使用的机器学习模块,提供多种数据处理和建模功能。它简化了数据清洗、特征提取、模型构建、验证与优化等流程,是数据科学项目中的常用工具。 三、逻辑回归模型 逻辑回归是一种常用于分类任务的线性模型,特别适用于二类问题。在信用评估中,该模型可用于判断借款人是否可能违约。其通过逻辑函数将输出映射为0到1之间的概率值,从而表示违约的可能性。 四、支持向量机模型 支持向量机是一种用于监督学习的算法,适用于数据维度高、样本量小的情况。在信用分析中,该方法能够通过寻找最佳分割面,区分违约与非违约客户。通过选用不同核函数,可应对复杂的非线性关系,提升预测精度。 五、数据预处理步骤 在建模前,需对原始数据进行清理与转换,包括处理缺失值、识别异常点、标准化数值、筛选有效特征等。对于信用评分,常见的输入变量包括收入水平、负债比例、信用历史记录、职业稳定性等。预处理有助于减少噪声干扰,增强模型的适应性。 六、模型构建与验证 借助Sklearn,可以将数据集划分为训练集和测试集,并通过交叉验证调整参数以提升模型性能。常用评估指标包括准确率、召回率、F1值以及AUC-ROC曲线。在处理不平衡数据时,更应关注模型的召回率与特异性。 七、集成学习方法 为提升模型预测能力,可采用集成策略,如结合多个模型的预测结果。这有助于降低单一模型的偏差与方差,增强整体预测的稳定性与准确性。 综上,基于机器学习的信用评估系统可通过Sklearn中的多种算法,结合合理的数据处理与模型优化,实现对借款人信用状况的精准判断。在实际应用中,需持续调整模型以适应市场变化,保障预测结果的长期有效性。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值