首页 > 编程知识 正文

并操作mysql数据库(并操作mysql数据库的软件)

时间:2023-12-23 11:38:04 阅读:319190 作者:XGOI

本文目录一览:

MySQL数据库基础+ 数据库的基本操作?

需要用的资料以链接的形式给需要的同学。

我用的mysql版本为: Mysql-5.5.45-win64.msi 密码是:26zw

图形化工具 Navicat(前期不推荐用,直接手动敲): Navicat 密码:c7fs

开始我的MySQL之旅吧 始于2016.12.04

--WH

一、数据库的安装

这个就不在这里过多阐述了,因为网上实在是太多安装mysql的教程了,有了我给的mysql,在按照这个安装教程(MySQL安装教程)去看,就能够安装完好。

安装好mysql后,如果需要使用windows命令窗口(也就是cmd)来操作mysql,那么就需要配置环境变量,在安装好的mysql下找到bin,将其目录放到环境变量path中去,就行了,检测成功与否的方法是在cmd命令窗口中输入mysql,就会出现一大段英文,就说明成功了,反之失败,如果不会的话就去百度搜教程。

二、数据库的基本操作

1、开启mysql服务命令

net start mysql

2、进入mysql的两种方式

明文进入:mysql -uroot -proot格式:mysql -u帐号 -p密码

密文进入:mysql -uroot -p 按enter会提示你输入密码(Enter pssword:),此时你写的密码就会显示为***这样。

3、查看mysql中所有的数据库(一般在固定的单词命令就会是用大写,这个要习惯,看多了敲多了就认识了)

前面四个数据库是mysql中自带的,也就是必须的.

SHOW DATABASES;

4、创建名为test_1的数据库

格式:CREATE DATABASE 数据库名

CREATE DATABASE test_1;

5、删除名为test_1的数据库

格式:DROP DATABASE 数据库名

DROP DATABASE test_1;

总结:学习了对数据库的三个操作,1、查看所有数据库 2、创建数据库 3、删除数据库

三、数据表的基本操作

数据表和数据库还有Mysql三者的关系

mysql中保存了很多数据库、一个数据库中可以保存很多表。

对数据表的增(创建表)删(删除表)改(修改表字段)查(查询表结构)。 注意:这里的操作对象是表,对表的操作也就是表的结构,和表中的字段的操作(字段和记录要分清楚)

前提:表是在数据库下的,所以要先确实使用哪个数据库。

USE test_1;

1、创建数据表

格式:CREATE TABLE 数据表名(

 字段名1数据类型[列级别约束条件],

 字段名2数据类型[列级别约束条件],

 字段名3数据类型[列级别约束条件]

 ); 

注意:格式不一定需要这样隔着写,完全可以全部写成一行。但是那样写可观性非常差。我这样写只是为了可以看的更清晰。

解释:

1、[]中括号中的内容表示可以有可以没有,

2、列级别这个“列”一定要搞清楚说的是什么,一张表中有行有列,列表示竖,行表示横 

3、约束条件后面会讲到

1.1、创建没有约束的student表

 CREATE TABLE student( idINT(11), nameVARCHAR(12), ageINT(11)  );

注释:SHOW TABLES 查询数据库底下的所有表。

1.2、创建有约束的student表

 六大约束:主键约束、外键约束、非空约束、唯一约束、默认约束、自动增加

1.2.1:主键约束

PRIMARY KEY(primary key):独一无二(唯一)和不能为空(非空),通俗的讲,就是在表中增加记录时,在该字段下的数据不能重复,不能为空,比如以上面创建的表为例子,在表中增加两条记录,如果id字段用了主键约束。则id不能一样,并且不能为空。一般每张表中度有一个字段为主键,唯一标识这条记录。以后需要找到该条记录也可以同这个主键来确认记录,因为主键是唯一的,并且非空,一张表中每个记录的主键度不一样,所以根据主键也就能找到对应的记录。而不是多条重复的记录。如果没有主键,那么表中就会存在很多重复的记录,那么即浪费存储空间,在查询时也消耗更多资源。

一般被主键约束了的字段度习惯性的称该字段为该表的主键

单字段主键约束

两种方式都可以

CREATE TABLE student(CREATE TABLE student(

idINT(11) PRIMARY KEY,idINT(11),

nameVARCHAR(12),nameVARCHAR(12),

ageINT(11) ageINT(11),

); PRIMARY KEY(id) );

多字段主键约束(复合主键)

这个id和name都市主键,说明在以后增加的插入的记录中,id和name不能同时一样,比如说可以是这样。一条记录为id=1,name=yyy、另一条记录为:id=1,name=zzz。 这样是可以的。并不是你们所理解的两个字段分别度不可以相同。

CREATE TABLE student(CREATE TABLE student(

idINT(11) PRIMARY KEY,idINT(11),

nameVARCHAR(12) PRIMARY KEY, nameVARCHAR(12),

ageINT(11) ageINT(11),

);PRIMARY KEY(id,name) );

1.2.2:外键约束

什么是外键举个例子就清楚了,有两张表,一张表是emp(员工)表,另一张表是dept(部门)表,一个员工属于一个部门,那么如何通过员工能让我们自己他在哪个部门呢?那就只能在员工表中增加一个字段,能代表员工所在的部门,那该字段就只能是存储dept中的主键了(因为主键是唯一的,才能确实是哪个部门,进而代表员工所在的部门,如果是部门名称,有些部门的名称可能是同名。就不能区分了。),像这样的字段,就符合外键的特点,就可以使用外键约束,使该字段只能够存储另一张表的主键。如果不被外键约束,那么该字段就无法保证存储进来的值就一定是另一张表的主键值。

外键约束的特点:

1、外键约束可以描述任意一个字段(包括主键),可以为空,并且一个表中可以有多个外键。但是外键字段中的值必须是另一张表中的主键。

2、这样被外键关联的两种表的关系可以称为父子表或者主从表。子表(从表)拥有外键字段的表,父表(主表)被外键字段所指向的表。

3、子表被外键约束修饰的字段必须和父表的主键字段的类型一样。

注意:一个表中有被外键修饰的字段,就称该表有外键(是“有外键”。而不是“是外键”),并会给该表中的外键约束取一个名称,所以我们常说的这个表有没有外键,指的不是被外键约束修饰的字段名,而是指这个表是否有存在外键约束。也就是说,不能说这个表的外键是xxx(该表中被外键约束修饰的字段名),这种说法是错误的,但是大多数人已经习惯了这样,虽然影响不大,但是在很多时候需要理解一个东西时,会造成一定的困扰。

格式:CONSTRAINT外键名称FOREIGN KEY(被外键约束的字段名称)REFERENCES 主表名(主键字段)

英文解释:CONSTRAINT:约束REFERENCES:参考

CREATE TABLE tableA

(

id INT(11),

name VARCHAR(22),

location VARCHAR(50),

PRIMARY KEY(id)

);

CREATE TABLE tableB

(

id INT(11),

name VARCHAR(22) NOT NULL,

deptId INT(11),

PRIMARY KEY(id),

CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)

);

 解释:tableB中有一个名为tableA_tableB_1的外键关联了tableA和tableB两个表,被外键约束修饰的字段为tableB中的deptId,主键字段为tableA中的id 

1.2.3:非空约束

NOT NULL. 被该约束修饰了的字段,就不能为空,主键约束中就包括了这个约束

CREATE TABLE tableA

(

id INT(11),

name VARCHAR(22) NOT NULL,

location VARCHAR(50),

PRIMARY KEY(id)

);

1.2.4:唯一约束

UNIQUE 被唯一约束修饰了的字段,表示该字段中的值唯一,不能有相同的值,通俗点讲,就好比插入两条记录,这两条记录中处于该字段的值不能是一样的。

  CREATE TABLE tableA

(

id INT(11),

name VARCHAR(22) UNIQUE,

location VARCHAR(50),

PRIMARY KEY(id)

);

也就是说在插入的记录中,每条记录的name值不能是一样的。

1.2.5:默认约束

Default 指定这一列的默认值为多少,比如,男性同学比较多,性别就可以设置为默认男,如果插入一行记录时,性别没有填,那么就默认加上男 

CREATE TABLE table

(

id INT(11) PRIMARY KEY,

name VARCHAR(22) NOT NULL,

deptId INT(11) DEFAULT 1111,

salary FLOAT

);

1.2.6:自动增加

AUTO_INCREMENT 一个表只能一个字段使用AUTO_INCREMENT,并且使用这个约束的字段只能是整数类型(任意的整数类型 TINYINT,SMALLIN,INT,BIGINT),默认值是1,也就是说从1开始增加的。一般就是给主键使用的,自动增加,使每个主键的值度不一样,并且不用我们自己管理,让主键自己自动生成

CREATE TABLE table ( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(22) NOT NULL );

2、查询表结构

2.1、查看表基本结构语句

格式1:DESCRIBE 表名/DESC 表名这两个的功能是一样的,简写了单词describe

DESCRIBE student;

2.2、查看创建表的语句 

 格式:SHOW CREATE TABLE 表名

 SHOW CREATE TABLE student;

这样显示的格式很不好,看不清楚,所以有了下面这个语句

格式:SHOW CREATE TABLE 表名G

SHOW CREATE TABLE studentG;

3、修改数据表

修改数据表包括:对表中字段的增加、删除、修改。 在这个里面用的关键字为 ALTER

3.1、修改表名

格式:ALTER TABLE旧表名 RENAME[TO]新表名;

将student表名改为student1(改完后在改回来)

ALTER TABLE student RENAME TO student1;

3.2、修改表中的字段名

格式:ALTER TABLE表名 CHANGE旧字段名新字段名新数据类型

将student表中的name字段名改为 username

ALTER TABLE student CHANGE name username VARCHAR(30);

3.3、修改表中的数据类型

格式:ALTER TABLE表名 MODIFY字段名数据类型 

ALTER TABLE student MODIFY username VARCHAR(20);

解释:只能修改字段名的数据类型,但是其原理跟上面change做的事情一样,这里也有修改字段名的过程,只不过修改后的字段名和修改前的字段名相同,但是数据类型不一样。

3.4、修改字段的排列位置

 方式1:ALTER TABLE表名 MODIFY字段1数据类型 FIRST|AFTER字段2

 解释:将字段1的位置放到第一,或者放到指定字段2的后面

 ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;

方式2:ALTER TABLE表名 CHANGE字段1字段2数据类型 FIRST|AFTER字段3 

解释:其实是一样的,将是字段2覆盖字段1,然后在进行排序

ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;

总结

CHANGE和MODIFY的区别?

原理都市一样的,MODIFY只能修改数据类型,但是CHANGE能够修改数据类型和字段名,也就是说MODIFY是CHANGE的更具体化的一个操作。可能觉得用CHANGE只改变一个数据类型不太爽,就增加了一个能直接改数据类型的使用关键字MODIFY来操作。

3.5、添加字段

格式:ALTER TABLE表名称 ADD新字段名数据类型[约束条件][FIRST|AFTER已存在的表名]

解释:在一个特定位置增加一个新的字段,如果不指定位置,默认是最后一个。

ALTER TABLE student ADD sex VARCHAR(11);

3.6、删除字段

格式:ALTER TABLE表名称 DROP字段名;

ALTER TABLE student DROP sex;

3.7、删除表的外键约束

格式:ALTER TABLE表名称 DROP FOREIGN KEY外键约束名

注意:外键约束名 指的不是被外键约束修饰的字段名,切记,而是我们在创建外键约束关系时取的名字。

3.8、更改表的存储引擎

格式:ALTER TABLE表名 ENGINE=更改后的存储引擎名

这个存储引擎目前我自己也不太清楚,虽然知道有哪几种引擎,但是稍微深入一点就不清楚了,所以打算留到日后在说。

4、删除表

4.1、删除无关联表

格式:DROP TABLE表名;

ALTER TABLE student;

4.2、删除被其他表关联的主表

这个是比较重要的一点,在有外键关联关系的两张表中,如果删除主表,那么是删不掉的,并且会报错。因为有张表依赖于他。那怎么办呢?针对这种情况,总共有两种方法

1、先删除你子表,然后在删除父表,这样就达到了删除父表的目的,但是子表也要被删除

2、先解除外键关系,然后在删除父表,这样也能达到目的,并且保留了子表,只删除我们不需要的父表。在3.7中就讲解了如何删除外键关系。

掌握Python 操作 MySQL 数据库

本文Python 操作 MySQL 数据库需要是使用到 PyMySQL 驱动

Python 操作 MySQL 前提是要安装好 MySQL 数据库并能正常连接使用,安装步骤详见下文。

注意: 安装过程我们需要通过开启管理员权限来安装,否则会由于权限不足导致无法安装。

首先需要先下载 MySQL 安装包, 官网下载地址 下载对应版本即可,或直接在网上拉取并安装:

权限设置:

初始化 MySQL:

启动 MySQL:

查看 MySQL 运行状态:

Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:

登陆:

创建数据库:

查看数据库:

PyMySQL 模块使用 pip命令进行安装:

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

pymysql .connect 函数:连接上数据库

输出结果显示如下:表面数据库连接成功

使用 pymysql 的 connect() 方法连接数据库,connect 参数解释如下:

conn.cursor():获取游标

如果要操作数据库,光连接数据是不够的,咱们必须拿到操作数据库的游标,才能进行后续的操作,游标的主要作用是用来接收数据库操作后的返回结果,比如读取数据、添加数据。通过获取到的数据库连接实例 conn 下的 cursor() 方法来创建游标,实例如下:

输出结果为:

cursor 返回一个游标实例对象,其中包含了很多操作数据的方法,如执行sql语句,sql 执行命令: execute() 和 executemany()

execute(query,args=None):

executemany(query,args=None):

其他游标对象如下表:

完整数据库连接操作实例如下:

以上结果输出为:

创建表代码如下:

如下所示数据库表创建成功:

插入数据实现代码:

插入数据结果:

Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

查询数据代码如下:

输出结果:

DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常:

本文给大家介绍 Python 如何连接 Mysql 进行数据的增删改查操作,文章通过简洁的代码方式进行示例演示,给使用 Python 操作 Mysql 的工程师提供支撑。

如何使用MySQL WorkBench操作MySQL数据库

打开MySQL Workbench,并连接数据库。图中显示连接数据库对话框

成功连接后,点击如图所示红色按钮,“create new Schema”,填写数据库名称如“new_schema”,点击“应用”,如图

在弹出的的确认对话框中点击“应用”,如图

OK,成功创建,如图

如图操作,我们开始创建表

需要填写表名(new_table),列名”id、date“和选择列的类型,以及列属性(主键),点击”应用“

如图所示,成功创建表,点击右键,选择“select rows”可以编辑表内容

在Intellij IDEA中如何操作MYSQL数据表

我们平时都是通过数据库管理工具操作MYSQL数据表,那么如何在Intellij IDEA中操作MYSQL数据表呢?下面我给大家分享一下。

工具/材料

Intellij IDEA

首先点击右侧的Data Source,选择下拉菜单中的MySQL选项,如下图所示

接下来在弹出的Data Sources and Drivers界面中输入Mysql的用户名和密码进行数据库连接,如下图所示

连接成功MYSQL数据库以后,数据库中的表都会显示出来了,如下图所示,我们双击要操作的数据表

然后在右侧就会显示此数据表的所有数据,在这里可以对数据表的数据进行相应的增删改查,如下图所示

接下来点击此数据表顶部的加号按钮进行数据行的增加,如下图所示

编辑完新的数据以后需要右键单击数据行,然后选择Submit New Row选项,如下图所示

接下来我们还可以在输入栏中通过列表进行数据的过滤,如下图所示

最后,如果你不习惯操作界面,那么可以打开右侧的SQL窗口按钮,如下图所示

然后在工作区就会展现出SQL编辑区,我们就可以在里面输入SQL语句进行数据表的操作,如下图所示

本地如何操作服务器的mysql,详细教程

前置条件:

1、在阿里云服务器de系统是win service 2012。

2、服务器里自己安装了my sql 5.7

3、本地也安装了my sql 5.7

 

需求:想通过本地的mysql连接上远程的服务器的mysql,这样自己在本地操作数据库比在服务器里数据库要好。

 

步骤:

一、增加允许远程连接 MySQL 用户 并授权。

在你安装路径下的bin文件夹里进行命令行的设置。

1、首先以 root 帐户登陆 MySQL

在服务器中打开命令行(shift+右键)

打开数据库管理员权限

mysql -uroot -p 123

我去,对应的是123是对应到数据库名。

果断改为

mysql -uroot -p

输入mysql的密码。

 

2、查看用户的权限

mysql select host,user from user; (查看用户的权限情况)

 

 

3、创建远程登录用户并授权

进入到服务器的命令行里

输入

use mysql

在输入

grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';

上面的语句表示将 discuz 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 123.123.123.123 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。

注意:

(1)all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。

(2)discuz.* 表示上面的权限是针对于哪个表的,discuz 指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授 权为“数据库名.表名”。

(3)ted 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。

(4)123.123.123.123 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。

(5)123456 为用户的密码。

 

我最终使用的是把整个数据库的权限都ok,全部数据库的全部表,给root用户授权。没有设定远程连接IP地址。

 

4、执行更新权限(刷新权限)

flush privileges;

 

5、再一次查看数据库用户权限

mysql select host,user from user; (再次查看用户的权限情况)

  

 

二、打开服务器上的防火墙阻止 3306 端口,可以公网访问。

 MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。

如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。

找到防火墙的允许的应用,打开数据库的公用和专用。

 

 

三、在本地建立服务器数据库连接

1、点击这个

 

2、数据里填上连接的名字,服务器IP,以及连接数据库的名字和密码

 

 3、点击configure server mangement

如果报这个错误,说明是服务器的3306端口与没有打开。

 

下面图连接成功

 

 选择SSH login。。。。

 

 

 输入服务器的公网IP和端口(我也不知道是啥端口我写的是本地跑的项目的本地接口)

 

 

 一路next就ok。

关于mysql数据库操作

1.

create

database

school;//创建数据库

2.

show

databases;

//查看数据库

3.

use

school;

//使用创建的数据库

4.

create

table

students

(

s_no

int

,name

varchar(20),gender

varchar(10),birthday

datetime,image

blob

,address

varchar(50),

c_no

int,primary

key

(s_no,c_no)

);

//建students表

5.

create

table

classes(c_no

int,name

varchar(20)

,

class_adviser

varchar(20)

,foreign

key(c_no)

REFERENCES

students(c_no));

//建classes表

6.

insert

into

students(s_no,name,gender,birthday,image,address,c_no)

values(1,'Sally','FM','1987-1-2',null,'aaaaa',1);

7.

insert

into

students(s_no,name,gender,birthday,image,address,c_no)

values(2,'Nicholas','M','1985-8-8',Null,'bbbbb',1);

8.

insert

into

students(s_no,name,gender,birthday,image,address,c_no)

values(3,'Jason','M','1988-5-19',Null,'ccccc',2);

9.

insert

into

students(s_no,name,gender,birthday,image,address,c_no)

values(4,'Jamile','M','1979-2-5',Null,'ddddd',2);

10.

insert

into

classes

(c_no,name,class_adviser)

values

(1,'Class1','Mike');

11.

insert

into

classes

(c_no,name,class_adviser)

values

(2,'Class2','Andy');

12.

select

a.*

from

students

a,

classes

b

where

a.c_no

in

(select

b.c_no

from

classes

b

where

b.class_adviser

=

'Mike')

and

a.c_no

=

b.c_no;

//查数据

或者

select

students.s_no,

students.name,

students.gender,

students.birthday,

students.image,

students.address,

students.c_no

from

students,

classes

where

students.c_no

in

(select

c_no

from

classes

where

class_adviser

=

'Mike')

and

students.c_no

=

classes.c_no;

卢旭

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。