一:MySQL基础操作

使用方法:

方式一: 通过图型界面工具,如 Navicat,DBeaver等

方式二: 通过在命令行敲命令来操作

SQL ( Structure query language ) 结构化查询语言

SQL语言分为4个部分:DDL(定义)、DML(操作)、DQL(查询)、DCL(控制)

1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER 2、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

3、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE

4、DQL语句 数据库操纵语言:查询数据SELECT

mysql数据库管理软件,记录事物一些数据特征:

由库,表,记录组成.

库相当于一个文件夹

表相当于一个文件

记录就是文件里面一条一条的内容

表中的成员属性就是一个一个字段

可以为每个项目建立一个数据库

关系型数据库:表与表之间有联系

比如:mysql,oracle,db2,sqlserver

非关系型数据库: key-value 键值对形式 没有表的概念

比如:redis,mongodb,memcache

SQL语句中的快捷键

\G 格式化输出(文本式,竖立显示)

\s 查看服务器端信息

\c 结束命令输入操作

\q 退出当前sql命令行模式

\h 查看帮助

二:操作数据库的步骤

在数据库操作之前我们首先还需要知道,数据库的服务是怎么关闭和开启的

1.mysql 服务开启与关闭

windows版:

windows版本的数据库,需要用管理员的身份运行cmd 命令行窗口在能进行关闭和开启

(1)用:  netstat -aon|findstr "3306"  命令查看端口是否开启监听LISTENING 表示开启

因为mysql 的默认端口是3306 ,如果3306端口开启,表示mysql数据服务开启

也可用进入window 服务进行查看,找到mysql服务进行查看如下图:

(2)使用命令 : net stop mysql 关闭服务,后进行查看端口没有开启

(3)使用命令:  net start mysql 开启服务,后进行查看端口开启LISTENING 状态

linux版:

service mysql start 启动mysql
service mysql stop 停止mysql
service mysql restart 重启mysql

root@hsz:~# ps aux|grep mysql

mysql      1107  0.2  7.3 1173604 143436 ?      Ssl  10:22   0:02 /usr/sbin/mysqld

root       2764  0.0  0.0  21312  1016 pts/8    S+   10:37   0:00 grep --color=auto mysql

root@hsz:~# service stop mysql

stop: unrecognized service

root@hsz:~# service mysql stop

root@hsz:~# ps aux|grep mysql

root       2810  0.0  0.0  21312  1020 pts/8    S+   10:37   0:00 grep --color=auto mysql

root@hsz:~# service mysql start

root@hsz:~# ps aux|grep mysql

mysql      2852  1.6  7.1 1173608 140816 ?      Ssl  10:38   0:00 /usr/sbin/mysqld

root       2894  0.0  0.0  21312   988 pts/8    S+   10:38   0:00 grep --color=auto mysql

root@hsz:~# service mysql restart

root@hsz:~# netstat -tunlp | grep :3306

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2912/mysqld

连接, 打开库, 操作, 关闭退出

Windows再安装好mysql数据库的情况下,打开cmd 命令行提示符窗口

1.连接MySQL设置密码及创建用户与赋予权限

(1)连接mysql

输入:mysql -uroot -p  或 mysql  -uroot  -h127.0.0.1 -p

紧接着输入数据库密码

-u 登录用户名

-h 服务器地址(127.0.0.1默认为本机地址)

-p 回车输入端口

-P (大写,如果数据库端口有修改过不少默认端口需要加: -P 端口号)

出现mysql>  这样的符号,说明登录mysql数据库成功

(2)mysql设置密码

# 查询当前登录的用户是谁
select user();
# 设置密码
set password = password("123456");
# 去除密码
set password = password('');

(3)创建账户

#  (只是单纯创建一个账户而已,没权限的)
# 为"10.0.0.46" 创建ceshi01用户,密码111来访问服务器mysql
create user 'ceshi01'@"10.0.0.46" identified by '111'; # 指定具体用户
crecreate user 'ceshi04'@'10.0.0.%' identified by '111'; # 指定某个网段
crecreate user 'ceshi04'@'192.168.129.%' identified by '111'; 
create user 'ceshi03'@'%'; # 指定所有机器都可以连接mysql

# 查看用户权限 (用户怎么创建怎么查看)
show grants for 'ceshi04'@'10.0.0.%'
# GRANT USAGE ON *.* TO 'ceshi02'@'192.168.11.%' USAGE无权限的意思

# 客户端连接服务器mysql
mysql -uceshi04 -h10.0.0.200 -p

(4)用户授权

# 用户授权:(创建用户的同时,也授予权限)
# 完整语法:
grant 权限 on 数据库.表名 to '用户名'%'ip地址' identified by '密码';
权限:
all privileges 表示所有权限 (可以简写all)
# select 查询数据权限
# insert 插入数据权限
# update 更新数据权限
# delete 删除数据权限
# *.* 代表所有库.所有表
grant select on *.* to 'ceshi04'@'10.0.0.%' identified by '222';
grant select on *.* to 'ceshi01'@'192.168.109.%' identified by '222';
# 查看所有数据库
show databases;
# 移除权限
revoke select on *.* from 'ceshi04'@'10.0.0.%';
# 删除账户
drop user 'ceshi04'@'10.0.0.%';
# 刷新权限
flush privileges;

2.数据库语法的特点

1) SQL 语句可以换行, 要以分号结尾

3) 如果提示符为 '> 那么需要输入一个'回车

4) 命令打错了换行后不能修改, 可以用 \c 取消

2. 数据库操作

1)查看数据库 show databases;

2)创建数据库 create database 库名 default charset=utf8;

3)删除数据库 drop database 库名;

4)打开数据库 use 库名;

对以上一一操作:

mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || sys                || zero               |+--------------------+5 rows in set (0.02 sec)

mysql> create database db1 default charset=utf8;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || db1                || mysql              || performance_schema || sys                || zero               |+--------------------+6 rows in set (0.00 sec)

mysql> drop database db1;

Query OK, 0 rows affected (0.03 sec)

mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || sys                || zero               |+--------------------+5 rows in set (0.00 sec)

mysql> use zero;Database changed

mysql>

操作数据库(文件夹)

增:

# 创建数据库db1,设置字符集utf8create database db1 charset utf8;

查:

# 查看建库信息

show create database db1;

# 显示所有数据库

show databases;

改:

#更改数据库字符集alter database db1 charset gbk;

删:

# 删除数据库db1drop database db1;

3. 数据表操作

数据库管理系统中, 可以有很多, 每个数据库中可以包括多张数据

mysql> select * from test;+------+----------+------+------+--------+| id   | name     | sex  | age  | height |+------+----------+------+------+--------+|    1 | zhangsan | w    |   20 |    170 ||    3 | wangwu   | m    |   23 |    175 ||    2 | wu       | m    |   23 |    172 |+------+----------+------+------+--------+3 rows in set (0.00 sec)

id   | name     | sex  | age  | height

每一项称为一个字段

下面的数据每一行称为一条记录

查看表: show tables;

创建表: create table 表名(字段名1 类型,字段名2 类型)engine=innodb default charset=utf8;

创建表: 如果表不存在,则创建, 如果存在就不执行这条命令

create table if not exists 表名(

字段1 类型,

字段2 类型

);

删除表: drop table 表名;

表结构: desc 表名;

如下是对上面的命令格式进行操作,以t1,t2为表名

以上介绍的例子

4. 记录操作 增删改查

插入 单条数据:insert into 表名(字段1,字段2,字段3) values(值1,值2,值3);

插入多条数据:insert into 表名(字段1,字段2,字段3) values(a值1,a值2,a值3),(b值1,b值2,b值3);

查询 select * from 表名;

select 字段1,字段2,字段3 from 表名;

select * from 表名 where 字段=某个值;

修改 update 表名 set 字段=某个值 where 条件;

update 表名 set 字段1=值1,字段2=值2 where 条件;

update 表名 set 字段=字段+值 where 条件;

删除 delete from 表名 where 字段=某个值;

操作表(文件)

int 整型  char 字符串

# 切换数据库

use db1;

增:

# 创建数据表t1(字段名,类型...)

create table t4(

id int,

name char

);

查:

# 查看所有表

show tables;

# 查看建表语句

show create table t1;

'''

CREATE TABLE `t5` (

`id` int(11) DEFAULT NULL,

`name` char(1) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

'''

# 垂直查看数据信息,默认水平.

show create table t1\G

# 查看表结构

desc t1;

改:

# modify 单纯改变数据类型  指定char字符长度是6

alter table t1 modify name char(6);

# change 连名字带数据类型都改变 新名字和数据类型都需要指定

alter table t1 change name NAME char(7);

alter table t1 change NAME name char(11);

# 更改表名

alter table t1 rename t99

删:

# 删除表t1

drop table t5

操作记录(文件内容):

增:

#  t2(字段名字,逗号彼此隔开) 一次只插入一条;

insert into t2(id,name) values(1,'one')

#  一次插入多条数据

insert into t2(id,name) values(2,"two"),(3,"three"),(4,"four")

# 可以不指定具体字段,但是字段值必须一一对应

insert into t2 values(5,"five")

# 可以具体指定某个字段设置值

insert into t2(id) values(6);

# select 后面接字段名称 也可以直接写* ,*代表所有字段;

select id,name from t2;

select * from t2;

# 数据库.表 在没有选择数据库的时候,也可以查询;

select * from db1.t2;

改:

# upate 表名 set 字段=值 where 条件

update t2 set name = "zero";

# 加上条件再去修改值,否则全部都修改了 条件id=3的这条记录

update db1.t2 set name = "six" where id = 4;

删:

# 删除t2表所有的数据

delete from t2;

# 删除six,指定具体数据删除,加上where 条件 id=4的记录

delete from t2 where id=4;

# 清空数据,id号保留;delete from t2

# 清空数据,id号重置;(速度更快)

trancate table t1;

# 常用数据类型:int 整型

char和varchar 都是字符串char(5)      定长,固定开辟字符长度是5的空间 (手机号,或者身份证);速度快varchar(5)   变长,最大开辟字符长度是5的空间,实际按照存入的值算大小,速度慢float(255,30) 一共255,小数点最多占用30位

enum 和 set 的数据必须从其中挑选,没有的话报错;

enum         枚举 从一组数据中选一个 (一般性别上)set          集合 从一组数据中选多个 ,自动去重

一个综合的例子:

mysql> create table t10(

-> id int,

-> name varchar(15),

-> money float(6,2),

-> sex enum("man",'woman'),

-> hobby set("eat","drink",'play','smile')

-> );

# 正确insert into t10(id,name,money,sex,hobby) values(1,'one',9.1,"man","eat,drink");

# float(6,2) 整数位最大是4位.insert into t10(id,name,money,sex,hobby) values(2,'sdfsdfd',82.349,"man","smile,smile");insert into t10(id,name,money,sex,hobby) values(2,'sdfsdfd',82.349,"man","smile1343smile");

# 常用数据类型:
int 整型

char和varchar 都是字符串
char(5) 定长,固定开辟字符长度是5的空间 (手机号,或者身份证);速度快
varchar(5) 变长,最大开辟字符长度是5的空间,实际按照存入的值算大小,速度慢
float(255,30) 一共255,小数点最多占用30位
enum 和 set 的数据必须从其中挑选,没有的话报错;
enum 枚举 从一组数据中选一个 (一般性别上)
set 集合 从一组数据中选多个 ,自动去重

综合案例:

mysql> create table t10(
-> id int,
-> name varchar(15),
-> money float(6,2),
-> sex enum("man",'woman'),
-> hobby set("eat","drink",'play','smile','piao')
-> );
# 正确
insert into t10(id,name,money,sex,hobby) values(1,'wangwen',9.1,"man","eat,drink");
# float(6,2) 整数位最大是4位.
insert into t10(id,name,money,sex,hobby) values(2,'sdfsdfd',82.349,"man","piao,piao,piao");
insert into t10(id,name,money,sex,hobby) values(2,'sdfsdfd',82.349,"man","piao1343piao");

注:

linux查看mysql配置文件

find / -name my.cnf
nano /etc/mysql/my.cnf
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

cd /etc/mysql/conf.d/ # 客户端mysql配置文件
cd /etc/mysql/mysql.conf.d/ # 服务端mysql配置文件

#把文档当中

#放服务端配置文件中
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

# 设置mysql客户端默认字符集
default-character-set=utf8

MySQL 之基础操作增删改查等相关推荐

  1. MySQL数据库基础表格——增删改查(下)

    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易,人间真情 目录 MyS ...

  2. NodeJS里如何连接MySQL并分别操作增删改查

    本文简介 Node.js 里连接 MySQL ,并分别操作增删改查 . 你需要在电脑里安装一下 MySQL ,最好再安装一个数据库管理工具.我使用的是 MySQL Workbench ,这是一款 My ...

  3. java对mysql的简单操作——增删改查的总结

    增删改查的详细内容可以点击以下链接: java对mysql的简单操作--增加数据 java对mysql的简单操作--删除数据 java对mysql的简单操作--修改数据 java连接mysql5.1教 ...

  4. ES的索引库(数据表)基础操作 —— 增删改查API版

    索引库操作 索引库就类似数据库表,mapping映射就类似表的结构,对索引库的操作就类似于对数据库表的操作(为便于理解,以下描述有一些是用数据库表来描述的). 我们要向es中存储数据,必须先创建&qu ...

  5. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  6. 数据库的操作 增删改查 mysql

    数据库的操作 增删改查 mysql 登陆数据库 查看全部的数据库 系统提供的库,除了 test 是给我们练手的 其它的不要碰 mysql库,保存了系统重要内容,比如帐户 root帐户的用户名,密码,就 ...

  7. python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  8. MySQL(1) 数据库的增删改查

    MySQL(1) 数据库的增删改查 # 如果存在删除 drop database if exists kh69; # 创建数据库 create database kh69; # 进库 use kh69 ...

  9. Mybatis基础:增删改查、模糊查询、多条件查询

    Mybatis基础:增删改查.模糊查询.多条件查询http://www.bieryun.com/3132.html 1.新建测试数据库,根据实体类属性创建 2.实体类 [java] view plai ...

最新文章

  1. 我的理解:box-sizing
  2. TF:基于CNN(2+1)实现MNIST手写数字图片识别准确率提高到99%
  3. Java面试题中高级,java引用数据类型和基本数据类型区别
  4. Python报错SyntaxError: (unicode error) ‘utf-8‘ codec can‘t decode byte 0xc5 in position 0: invalid
  5. Python操作MySQL(一)
  6. ideal如何快速导入import_【MAC版】pr预设安装目录?pr如何快速批量导入lut
  7. java quartz SimpleScheduleBuilder
  8. python 一题多解 —— ndarray 一维数组的拼接
  9. 阿里云何云飞:如何利用云原生技术在AIoT领域成功落地 | 云栖大会
  10. 极光im支持android手机系统,极光IM- JMessage 产品简介 - 极光文档
  11. cf1299C-Water Balance
  12. DES 加密解密方法
  13. echarts的x轴自动动态刷新
  14. 基于asp.net721运动体育商城
  15. Elasticsearch的dynamic 与 index.mapper.dynamic
  16. 马化腾从CFIDO到QQ(CFIDO BBS回忆录)
  17. beyond compare 2 中文乱码问题
  18. mac下关闭chrome浏览器的自动更新
  19. uTorrent v3.5.0.44294 专业中文版
  20. 用python画四叶草后输入到桌面上的代码-用 python 实现 xmind 和 mindjet 格式互转

热门文章

  1. c语言指针用法及实际应用详解,通俗易懂超详细
  2. 华为nova7 pro怎么升级鸿蒙,2020年华为开发者大会:年内推出手机版鸿蒙系统
  3. “灵异类”灭火机器人
  4. 机器视觉方案设计及开发流程
  5. 【沃顿商学院学习笔记】宏观经济学——10全球地缘政治纵览Global Geopolitical Landscape
  6. 鲁卡斯队列蓝桥杯真题python解法
  7. PHP 实现定时任务的几种方法
  8. 如何科学地与天桥上的贴膜小哥对线?
  9. 使用Dockerfile定制LNMP环境镜像
  10. 刘德华北京演唱会在线观看