mysql(版本5.7)(操作数据库 操作表结构 操作表记录)
数据库中以表为基本单位,进⾏存储数据。那么使⽤我们熟悉的java类 与 数据表对⽐,就会发现以下对应关系。
表记录与java类的对应关系:
Java | 数据库 |
类 | 表 |
定义的成员变量 | 字段(列) |
对象 | 记录(行) |
参考MySQL安装图解.pdf
安装后,MySQL会以windows服务的⽅式为我们提供数据存储功能。开启和关闭服务的操作:右键点击我的电脑→管理→服务→可以找到MySQL服务开启或停⽌。
也可以在DOS窗⼝,通过命令完成MySQL服务的启动和停⽌(必须以管理员身份运⾏cmd命令窗⼝或C:\Windows\System32\cmd.exe 右键,管理员身份运行)
连接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数据库进⾏操作
下图为 连接mysql以后, 选择了名为"mysql"的数据库, 展示了这个数据库中所有的表。
SQL 语句
数据库是不认识JAVA语⾔的,但是我们同样要与数据库交互,这时需要使⽤到数据库认识的语⾔【SQL语句】,它是数据库的代码。结构化查询语⾔(Structured Query Language)简称SQL,是关系型数据库管理系统都需要遵循的规范。不同的数据库⽣产⼚商都⽀持SQL语句,但都有特有内容。
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等
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的编码
2. 需要修改client、connection、results的编码⼀致(改为GBK编码)
解决⽅案1:在cmd命令窗⼝中输⼊命令,此操作当前窗⼝有效,为临时⽅案。
set names gbk;
解决⽅案2:安装⽬录下修改my.ini⽂件,重启服务所有地⽅⽣效。
MySQL数据库密码重置(扩展)
1. 停⽌mysql服务器运⾏输⼊services.msc 停⽌mysql服务
2. 在cmd下,输⼊mysqld --console --skip-grant-tables 启动服务器,出现以下⻚⾯,不要关闭该窗⼝
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
mysql(版本5.7)(操作数据库 操作表结构 操作表记录)相关推荐
- php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码
<Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...
- mysql内核架构_热血江湖mysql内核技术之门派数据库表结构说明
小编之前已经多次和大家说过了一个概念,不管你打算架设的是什么游戏什么版本都必须熟悉它的数据库整体结构.今天小编要说的是热血江湖私服游戏中最难的MYSQL内核技术,对于玩家来说MYSQL技术无疑是最难的 ...
- 数据库应用——MySQL基础知识和操作数据库
这里写目录标题 初识MySQL 什么是数据库 数据库分类 MySQL简介 安装MYSQL win10安装 安装SQLyog 连接数据库 linux安装 使用Navicat Premium连接数据库 操 ...
- 【02】Java进阶:18-MySQL基础、数据库概述、数据库的安装/卸载/启动/登录、SQL概述、DDL操作数据库、DDL操作表、DML增删改查、
day18-MySql基础 今日内容 数据库概述 数据库安装和卸载 SQL语句 DDL-----操作数据库,操作表 DML-----操作记录(增删改) DQL------操作记录(查) 学习目标 能够 ...
- MySql学习【一】mysql的安装,操作数据库/表/查询表中数据/mysql日期计算
1.安装和连接数据库的注意事项 1.在mac电脑上安装mysql,官网下载即可. 2.mysql返回的执行行数和时间,时间并不精确.其中时间是指挂钟时间 [返回进程启动到调用函数时所经过的CPU时钟计 ...
- MySQL学习第二天—操作数据库\数据表命令
文章目录 一.登录数据库 二.基本数据库操作命令 1. 操作数据库 1.1 创建数据库 1.2 删除数据库 1.3 查看数据库 1.4 使用数据库 1.5 其他操作 2.操作数据表 2.1 创建数据表 ...
- yaf mysql pdo 封装_PDO 操作数据库
# PDO 操作数据库 *** Yaf 框架(3.0.5版本)目前并没有提供数据库 ORM 类,据鸟哥的博客来说,以后或许会提供.使用了 ORM 类为团队带来的便捷和规范,但是带来了性能的下降.直接使 ...
- mysql比对两个数据库表结构的方法
在开发及调试的过程中,需要比对新旧代码的差异,我们可以使用git/svn等版本控制工具进行比对.而不同版本的数据库表结构也存在差异,我们同样需要比对差异及获取更新结构的sql语句. 例如同一套代码,在 ...
- C++利用MySQL API连接和操作数据库
1.C++连接和操作MySQL的方式 在Windows平台,我们可以使用ADO.ODBC或者MySQL API进行连接和操作.ADO (ActiveX Data Objects,ActiveX数据对象 ...
- ezdml 支付mysql 吗_关于EZDML数据库表结构制作设计工具使用踩的坑
我使用的是一款EZDML的数据库表结构制作设计工具 最开始在数据库创建数据库名为personalmall,基字符集为默认,数据库排序规则也是默认,创建完成之后 去EZDML生成SQL 点击执行sql ...
最新文章
- WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息
- C#怎么通过一个按钮Button,实现点击这个按钮可以打开一个文件或者文件夹?
- vs 命令行参数调试
- android 触摸屏 旋转,android-使用OpenGl和触摸屏功能在视觉上纠正旋转
- 第二次学习笔记(linux/unix操作系统)
- [Hadoop]MapReduce多路径输入与多个输入
- 亚洲人跑进百米决赛,到底有多难?
- freecplus框架-文件操作
- 使用盒子模型仿照优酷的页面片段
- C++中的日期和时间 time_t与struct tm转换
- 环境在c盘_笔记本电脑常见故障--清理C盘空间
- 1001	害死人不偿命的(3n+1)猜想 (15)
- Humanoid(人形)动画概述——动画(Mecanim)系统学习
- 30 个数据工程必备的Python 包
- 勒索软件Cerber和TeslaCrypt的区别-------典型的勒索软件家族
- latex图表中英文双标题的使用技巧
- 微信小程序防止点击事件多次请求接口
- python 保存源码,python save保存图片系统提示错误请帮忙分析python源码,savepython,很基本的操作,比如imp...
- Promise和事件循环
- 【CZY选讲·最大子矩阵和】
热门文章
- [java/初学者/GUI编程]GUI界面设计——界面组件类
- SpringBoot配置外部Tomcat项目启动流程源码分析(下)
- 区块链:拜占庭将军问题
- Arduino笔记实验(初级阶段)—继电器模块
- Java实现 LeetCode 355 设计推特
- 一个完整的电商运营方案
- linux lddbus设备,linux 3.2 实现 LINUX设备驱动程序(第3版) 中的 lddbus
- 炮姐ed计算机谱子,炮姐的新ed是真的好听啊
- 藏文各个字母对应的unicode编码和十进制
- 1,21条MySQL性能调优经验