mysql 5.7数据库操作记录_mysql(版本5.7)(操作数据库 操作表结构 操作表记录)...

数据库中以表为基本单位,进⾏存储数据。那么使⽤我们熟悉的java类 与 数据表对⽐,就会发现以下对应关系。

36008099f453fde4f0e96995b8bd3e76.png

表记录与java类的对应关系:

Java

数据库

定义的成员变量

字段(列)

对象

记录(行)

参考MySQL安装图解.pdf

安装后,MySQL会以windows服务的⽅式为我们提供数据存储功能。开启和关闭服务的操作:右键点击我的电脑→管理→服务→可以找到MySQL服务开启或停⽌。

68f753640ca3c65e6f926a098614afc8.png

ff4b4aa5af96ec6b77d1decfd36d19c9.png

也可以在DOS窗⼝,通过命令完成MySQL服务的启动和停⽌(必须以管理员身份运⾏cmd命令窗⼝或C:\Windows\System32\cmd.exe 右键,管理员身份运行)

1fef538469bda425faf48de60859f10b.png

连接MySql数据库

MySQL是一个需要账户名密码进行连接的数据库,连接后才能使用,它提供了一个默认root账号,使用安装时设置的密码即可登录

-- 格式1,本地连接:cmd> mysql –u⽤户名 –p密码

mysql -uroot –proot

-- 格式2,远程连接:cmd> mysql --host=ip地址 --user=⽤户名 --password=密码

mysql --host=127.0.0.1 --user=root --password=root

默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf⽂件。

MySQL图形化开发⼯具

链接:https://pan.baidu.com/s/1cLn7x9FOpzB9rauqhWHXBw

提取码:72y6

安装:

提供的navicat软件为安装版,需要安装后使⽤

使⽤:

输⼊⽤户名、密码,点击连接按钮,进⾏访问MySQL数据库进⾏操作

711d7c5bda1572081362016f36bf37c4.png

下图为 连接mysql以后, 选择了名为"mysql"的数据库, 展示了这个数据库中所有的表。

1ac62eaf3c39170e181b4ec59c49b46e.png

SQL 语句

数据库是不认识JAVA语⾔的,但是我们同样要与数据库交互,这时需要使⽤到数据库认识的语⾔【SQL语句】,它是数据库的代码。结构化查询语⾔(Structured Query Language)简称SQL,是关系型数据库管理系统都需要遵循的规范。不同的数据库⽣产⼚商都⽀持SQL语句,但都有特有内容。

2a6830498866db44bf48f97764885d0b.png

SQL语句分类

数据定义语⾔:简称DDL(Data Definition Language),⽤来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等

数据控制语⾔:简称DCL(Data Control Language),⽤来定义数据库的访问权限和安全级别,及创建⽤户。

数据操作语⾔:简称DML(Data Manipulation Language),⽤来对数据库中表的记录进⾏更新。关键字:insert,delete,update等

数据查询语⾔:简称DQL(Data Query Language),⽤来查询数据库中表的记录。关键字:select,from,where等

6db08e20e87c14abfcab39ff6b823a3e.png

SQL语句的书写语法

MySQL数据库的SQL语句不区分⼤⼩写,关键字建议使⽤⼤写,以分号结尾。例如:

SELECT * FROM USER;

使用/**/、 --、# 的方式完成注释

/*

多⾏注释

*/

-- 单⾏注释

# 单⾏注释

SELECT * FROM user;

SQL中的我们常用使用的数据类型如下:

类型名称

说明

int

整数类型

double

⼩数类型

decimal(m,d)

指定整数位与⼩数位⻓度的⼩数类型

date

⽇期类型,格式为yyyy-MM-dd,包含年⽉⽇,不包含时分秒

datetime

⽇期类型,格式为 YYYY-MM-DD HH:MM:SS,包含年⽉⽇时分秒

timestamp

⽇期类型,时间戳

varchar(M)

⽂本类型, M为0~65535之间的整数

char(M)

⽂本类型, M为0~65535之间的整数

数据库操作: database

创建数据库

/*创建数据库*/

-- ⽅式⼀: 使⽤指定的字符编码表,创建数据库. 格式: create database 数据库名character set 字符编码;

-- ⽅式⼆: 使⽤默认的字符编码表,创建数据库. 格式: create database 数据库名;

CREATE DATABASE mydb CHARACTER SET utf8; -- ⽅式⼀

CREATE DATABASE mydb2; -- 方式二

查看数据库

/*查看数据库*/

-- 查看所有的数据库. 格式: show databases;

SHOW DATABASES;

-- 查看指定数据库的字符编码. 格式: show create database 数据库名;

SHOW CREATE DATABASE mydb;

SHOW CREATE DATABASE mydb2;

删除数据库

/*删除数据库*/

-- 删除数据库. 格式: drop database 数据库名;

DROP DATABASE mydb2;

使⽤数据库

/*使⽤数据库*/

-- 查看当前使⽤的数据库. 格式: select database();

SELECT DATABASE();

-- 设置当前使⽤的数据库. 格式: use 数据库名;

USE mydb;

表操作:table

创建表

/*

创建表, 格式:

create table 表名 (

字段名 数据类型[⻓度] [约束],

字段名 数据类型[⻓度] [约束],

...

);

注:[]中的内容是可选项

*/

-- 创建表student, 字段包括 编号id\ 姓名name\ 年龄age

CREATE TABLE student (

id INT,

NAME VARCHAR(100),

age INT

);

-- 创建表users, 字段包括 编号id\ ⽤户名username \ 密码password

CREATE TABLE users (

id INT,

username VARCHAR(100),

PASSWORD VARCHAR(100)

);

查看表

-- 查看所有表,格式: show tables

SHOW TABLES;

-- 查看指定表的建表结构, 格式: show create table 表名;

SHOW CREATE TABLE users;

删除表

-- 删除表, 格式: drop table 表名;

DROP TABLE users;

修改表结构格式

/*

对表中的列进⾏修改

1. 添加新的列, 格式: alter table 表名 add 新列名 数据类型(⻓度);

2. 修改列的数据类型(⻓度), 格式: alter table 表名 modify 列名 修改后的数据类型(⻓

度);

3. 修改列的名称, 格式: alter table 表名 change 列名 新列名 新列名的数据类型(⻓度);

4. 删除指定列, 格式: alter table 表名 drop 列名;

*/

ALTER TABLE student ADD `desc` VARCHAR(100); -- 添加新的列

ALTER TABLE student MODIFY `desc` VARCHAR(50);-- 修改列的数据类型(⻓度)

ALTER TABLE student CHANGE `desc` description VARCHAR(100);-- 修改列的名称

ALTER TABLE student DROP description;-- 删除指定列

/*

对表进⾏修改

1. 修改表的名称, 格式: rename table 表名 to 新表名;

2. 修改表的字符编码, 格式: alter table 表名 character set 字符编码;

*/

RENAME TABLE student TO stu; -- 修改表的名称

ALTER TABLE stu CHARACTER SET gbk; -- 修改表的字符编码

表中记录操作

/*

插⼊表记录

⽅式⼀, 对指定的字段插⼊值, 格式: insert into 表名(字段1, 字段2, ...) values (值

1, 值2, ...);

⽅式⼆, 对所有字段插⼊值, 格式: insert into 表名 values(值1, 值2, ...);

*/

INSERT INTO student(id, NAME, age) VALUES(1, 'tom', 24);

INSERT INTO student(NAME, age) VALUES('lili', 22);

INSERT INTO student(id, NAME, age) VALUES(3, 'jim', NULL);

INSERT INTO student VALUES(4, 'jack', 26);

INSERT INTO student VALUES(5, 'zhangsan', 26),(6,'lisi',27);

注意:

1. 值与字段必须对应, 个数相同, 类型相同

2. 值的数据⼤⼩必须在字段的指定⻓度范围内

3. 除了整数\⼩数类型外, 其他字段类型的值必须使⽤引号引起来 (建议单引号)

4. 如果要插⼊空值, 可以不写字段, 或者插⼊null

更新表记录

-- 更新表记录, 格式: update 表名 set 字段1=值, 字段2=值... where 条件;

UPDATE student SET NAME='lili', age=21 WHERE id=1;

UPDATE student SET age=25 WHERE age=27;

注意:

1. 列名的类型与修改的值要⼀致

2. 修改值时不能超过字段的⻓度范围

3. 除了整数\⼩数类型外, 其他字段类型的值必须使⽤引号扩起来

删除表记录

-- 删除表记录, 格式: delete from 表名 where 条件;

DELETE FROM student WHERE id=1;

DELETE FROM student WHERE age IS NULL;

DOS命令⾏数据乱码解决(了解)

我们在dos命令⾏操作中⽂时,会报错

insert into student(id,name,age) values(99,'超⼈',25);

ERROR 1366 (HY000): Incorrect string value: '\xB3\xAC\xC8\xCB' for column 'name' at row 1

错误原因:因为mysql的客户端设置编码是utf8,⽽windows系统的cmd窗⼝编码是gbk

1. 查看MySQL内部设置的编码

show variables like 'character%';查看所有mysql的编码

76910e79678e7d5504bceb20e306deff.png

2. 需要修改client、connection、results的编码⼀致(改为GBK编码)

解决⽅案1:在cmd命令窗⼝中输⼊命令,此操作当前窗⼝有效,为临时⽅案。

set names gbk;

解决⽅案2:安装⽬录下修改my.ini⽂件,重启服务所有地⽅⽣效。

7f959af8e77c12f2b6bb62609876cad7.png

MySQL数据库密码重置(扩展)

1. 停⽌mysql服务器运⾏输⼊services.msc 停⽌mysql服务

2. 在cmd下,输⼊mysqld --console --skip-grant-tables 启动服务器,出现以下⻚⾯,不要关闭该窗⼝

fc1a860fbd6a56a05a3fbad68f9fec54.png

3. 新打开cmd,输⼊mysql -uroot 不需要密码, 然后输⼊以下SQL语句, 完成密码的修改

use mysql;

update user set password=password('root') WHERE user='root';

或者(password 新版本没有这个关键字段,换成了authentication):

use mysql;

update user set authentication_string='' where user='root';

4.关闭两个cmd

Mysql:链接:https://pan.baidu.com/s/1vqNkEvVw6wjmHntOVA4ekw 提取码:pamf

navicat:链接:https://pan.baidu.com/s/17Fv7Ee0JXCYFjw455h9WqQ 提取码:peed

SQLyog:链接:https://pan.baidu.com/s/10bRCKUp_JUC-HqUQXTDzDg 提取码:gqrx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值