MySql基础命令

PyMySQL简介:

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 PyMySQL遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

PyMySQL安装

    #方法一
pip install PyMySQL 

如果系统不支持 pip 命令,可以使用以下方式安装:

    #方法二
git clone https://github.com/PyMySQL/PyMySQL
cd PyMySQL/
python3 setup.py install

连接MySQL

 1. 打开DOS窗口 
 2. 进入目录mysql\bin
 3. 键入命令:mysql -u root -p
(mysql -h主机地址 -u用户名 -p用户密码)

MYSQL的提示符是: mysql>


连接到远程主机上的MySQL

例:远程主机的IP为:172.0.0.1,用户名为root,密码为123
则:输入一下代码:

 mysql -h172.0.0.1 -u root -p 123;

退出MySql命令:

exit 

修改密码

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

1、给root加个密码123456

mysqladmin -u root -password 123456

2、再将root的密码改为1234567

mysqladmin -u root -p ab12 password 1234567

增加新用户

小提示:
以下MySql环境中的命令结束都带一个“ ; ”作为命令结束符

格式:

create user '用户名'@'IP地址' identified by '密码';

指定ip:192.168.0.开头的kinney用户登录

create user 'kinney'@'192.168.0.%' identified by '123';

删除用户

drop user '用户名'@'IP地址';

修改用户

rename user '用户名'@'IP地址' to '新用户名'@'IP地址';

修改密码

set password for '用户名'@'IP地址'=Password('新密码');

查看权限

show grants for '用户'@'IP地址'

授权 kinney用户仅对db1.t1文件有查询、插入和更新的操作

grant select ,insert,update on db1.t1 to "kinney"@'%';

表示有所有的权限,除了grant这个命令,这个命令是root才有的。kinney用户对db1下的t1文件有任意操作

grant all privileges  on db1.t1 to "kinney"@'%';

kinney用户对db1数据库中的文件执行任何操作

grant all privileges  on db1.* to "kinney"@'%';

mjj用户对所有数据库中文件有任何操作

grant all privileges  on *.*  to "mjj"@'%';

取消权限

取消mjj用户对db1的t1文件的任意操作
revoke all on db1.t1 from ‘mjj’@”%”;

取消来自远程服务器的mjj用户对数据库db1的所有表的所有权限

revoke all on db1.* from ‘mjj’@”%”;

取消来自远程服务器的mjj用户所有数据库的所有的表的权限
revoke all privileges on . from ‘mjj’@’%’;


创建数据库

小提示:
创建数据库之前要先连接MySql服务器

命令:

create database 数据库名;

创建数据库并分配用户

CREATE DATABASE 数据库名;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';
SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码');

依次执行3个命令完成数据库创建。


显示数据库

命令:

show databases

注意:
为了不再显示的时候乱码,要修改数据库默认编码。

1、修改MYSQL的配置文件:my.ini里面修改default-character-set=gbk
2、代码运行时修改:

?.?

当前数据库

命令:

select database();

MySql中SELECT命令类似于python里的print,可以用它来显示一个字符串、数字等


连接数据库

命令:

use 数据库名;

提示:Database changed

use语句可以通告MySQLql把db_name数据库作为默认(当前)数据库使用,用于后续语句。该数据库保持为默认数据库,直到语段的结尾,或者直到发布一个不同的USE语句:
USE db1;
SELECT COUNT(*) FROM mytable;
# selects from db1.mytable
.
USE db2;
SELECT COUNT(*) FROM mytable;
# selects from db2.mytable


删除数据库

命令:

drop database 数据库名;

删除一个不确定存在的数据库
1.

mysql> drop database drop_database; ERROR 1008(HY000):Can’t
drop database ‘drop_database’; database doesn’t exist
#发生错误,不能删除’drop_database’数据库,该数据库不存在。

mysql> drop database if exists drop_database;
Query OK, 0 rows affected, 1 warning (0.00sec)
#产生一个警告说明此数据库不存在

2.

mysql> create database drop_database; Query OK, 1 row affected
(0.00 sec) mysql> drop database if exists drop_database;
#if exists判断数据库是否存在,不存在也不产生错误 Query OK, 0 rows affected (0.00 sec)


创建数据表

命令:

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

例如,建立一个名为MyClass的表:

字段名数字类型数据宽度是否主键是否为空自动增加默认值
idint4primary keyauto_increment
namechar20
sexint40
degreedouble16
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));

删除数据表

命令:

drop table 表名;

注意: DROP TABLE用于取消一个或多个表。必须有每个表的DROP权限,所有的表数据和表定义会被取消.
( 对于一个带分区的表,DROP TABLE会永久性地取消表定义,取消各分区,并取消储存在这些分区中的所有数据。DROP TABLE还会取消与被取消的表有关联的分区定义(.par)文件。
对与不存在的表,使用IF EXISTS用于防止错误发生。当使用IF EXISTS时,对于每个不存在的表,会生成一个NOTE。
RESTRICT和CASCADE可以使分区更容易。目前,RESTRICT和CASCADE不起作用。)

表插入数据

命令:

insert into 表名 [( 字段名1[,..字段名n ])] values ( 值1 )[, ( 值n )]

例:
往表 MyClass中插入二条记录, 这二条记录表示:编号为1的名为kinney的成绩为93.2, 编号为2 的名为Miss的成绩为79.5, 编号为3 的名为John的成绩为83.6。

insert into MyClass values(1,'kinney',93.2),(2,'Miss',79.5), (2,'John', 83.6);

注意:insert into每次只能向表中插入一条记录。


查询表中的数据

1.查询所有行
命令:

 select 字段1,字段2... from 表名 where 表达式

例:
查看表 MyClass 中所有数据

 select * from MyClass;

2.查询前几行数据
例:
查看表 MyClass 中前2行数据

select * from MyClass order by id limit 0,2;

小提示:
select一般配合where使用,查询更精确更复杂的数据


删除表中数据

命令:

delete from 表名 where 表达式

例:
删除表 MyClass中编号为1 的记录

delete from MyClass where id=1;

修改表中数据

命令:

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

例:

update MyClass set name=’Mary’ where id=1;

小提示:

UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有的行。如果指定了ORDER
BY子句,则按照被指定的顺序对行进行更新。LIMIT子句用于给定一个限值,限制可以被更新的行的数目。


增加字段

命令:

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

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

alter table MyClass add passtest int(4) default '0'

加索引

alter table 表名 add index 索引名 (字段名1[,字段名2 …]);

例:

alter table employee add index emp_name (name);

加主关键字的索引

 alter table 表名 add primary key (字段名);

例:

alter table employee add primary key(id);

加唯一限制条件的索引

 alter table 表名 add unique 索引名 (字段名);

例:

alter table employee add unique emp_name2(cardnumber);

删除某个索引

alter table 表名 drop index 索引名;

例:

alter table employee drop index emp_name;

增加字段

ALTER TABLE table_name ADD field_name field_type;

修改原字段名称及类型

 ALTER TABLE table_name CHANGE` old_field_name new_field_name field_type;

删除字段

MySQL ALTER TABLE table_name DROP field_name;

修改表名

命令:

rename table 原表名 to 新表名;

例:
在表MyClass名字更改为YouClass

rename table MyClass to YouClass;
执行“RENAME”时,不能有任何锁定的表或活动的事务。同样也必须有对原初表的“ALTER”和“DROP”权限,以及对新表的“CREATE”和“INSERT”权限。

如果在多表更名中,MySql遭遇到任何错误,它将对所有被更名的表进行倒退更名,将每件事物退回到最初状态。

RENAME TABLE 在 MySql 3.23.23 中被加入


备份数据库

命令在DOS的[url=file://\mysql\bin]\mysql\bin[/url]目录下执行

  1. 导出整个数据库
    导出文件默认是存在mysql\bin目录下
    mysqldump -u 用户名 -p 数据库名 > 导出的文件名
    mysqldump -u user_name -p123456 database_name > outfile_name.sql

  2. 导出一个表
    mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
    mysqldump -u user_name -p database_name table_name > outfile_name.sql

  3. .导出一个数据库结构
    mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
    -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
  4. 带语言参数导出
    mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

例:
将1库备份到文件back_1中:

  [root@test1 root]cd /home/data/mysql
  [root@test1 mysql]mysqldump -u root -p --opt 1 > back_1

MySql中SELECT命令的特殊功能

显示MYSQL的版本

select version(); 

+———————–+
| version() |
+———————–+
| 6.0.4-alpha-community |
+———————–+
1 row in set (0.02 sec)

显示当前时间

select now(); 

+———————+
| now() |
+———————+
| 2009-09-15 22:35:32 |
+———————+
1 row in set (0.04 sec)

显示年月日

SELECT DAYOFMONTH(CURRENT_DATE); 

+————————–+
| DAYOFMONTH(CURRENT_DATE) |
+————————–+
| 15 |
+————————–+
1 row in set (0.01 sec)

SELECT MONTH(CURRENT_DATE);
+———————+
| MONTH(CURRENT_DATE) |
+———————+
| 9 |
+———————+
1 row in set (0.00 sec)

SELECT YEAR(CURRENT_DATE);
+——————–+
| YEAR(CURRENT_DATE) |
+——————–+
| 2009 |
+——————–+
1 row in set (0.00 sec)

显示字符串

SELECT "welecome to my blog!"; 

+———————-+
| welecome to my blog! |
+———————-+
| welecome to my blog! |
+———————-+
1 row in set (0.00 sec)

当计算器用

select ((4 * 4) / 10 ) + 25; 

+———————-+
| ((4 * 4) / 10 ) + 25 |
+———————-+
| 26.60 |
+———————-+
1 row in set (0.00 sec)

串接字符串

select CONCAT(f_name, " ", l_name) 

AS Name
from employee_data
where title = ‘Marketing Executive’;
+—————+
| Name |
+—————+
| Monica Sehgal |
| Hal Simlai |
| Joseph Irvine |
+—————+
3 rows in set (0.00 sec)

注意:CONCAT()函数:把字符串连接起来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值