一: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 0.2 7.3 ? Ssl : : /usr/sbin/mysqld
root 0.0 0.0 pts/ S+ : : grep --color=auto mysql
root@hsz:~# service stop mysql
stop: unrecognized service
root@hsz:~# service mysql stop
root@hsz:~# ps aux|grep mysql
root 0.0 0.0 pts/ S+ : : grep --color=auto mysql
root@hsz:~# service mysql start
root@hsz:~# ps aux|grep mysql
mysql 1.6 7.1 ? Ssl : : /usr/sbin/mysqld
root 0.0 0.0 pts/ S+ : : grep --color=auto mysql
root@hsz:~# service mysql restart
root@hsz:~# netstat -tunlp | grep :
tcp 0.0.0.0: 0.0.0.0:* LISTEN /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>

mysql操作1

操作数据库(文件夹)
增:
# 创建数据库db1,设置字符集utf8
create database db1 charset utf8;
查:
# 查看建库信息
show create database db1;
# 显示所有数据库
show databases;
改:
#更改数据库字符集
alter database db1 charset gbk; 删:
# 删除数据库db1
drop database db1;

数据库操作2

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为表名

mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| t1 |
+---------------+
1 row in set (0.00 sec) mysql> create table t2(id int,name char(10)) engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.06 sec) ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''
'' at line 1
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| t1 |
| t2 |
+---------------+
2 rows in set (0.00 sec) mysql> drop table t1;
Query OK, 0 rows affected (0.03 sec) mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| t2 |
+---------------+
1 row in set (0.00 sec) mysql> desc t2;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | char(10) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

以上介绍的例子

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

exit; 或者 quit;

卸载MySQL

# ### mysql 卸载
# (1) windows 卸载
关闭服务
cmd : mysqld remove
删除已经解压的文件夹
重启电脑 # (2) linux 卸载
sudo apt-get autoremove --purge mysql-server-5.7
sudo apt-get remove mysql-common
sudo rm -rf /etc/mysql/ /var/lib/mysql
#清理残留数据
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
sudo apt autoremove
sudo apt autoreclean

卸载mysql步骤

MySQL 之基础操作及增删改查等的更多相关文章

  1. 02 . Mysql基础操作及增删改查

    SQL简介 SQL(Structured Query Language 即结构化查询语言) SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,SQL语言由IBM开发. SQL语句四大 ...

  2. mysql 的crud操作(增删改查)

    1.mysql添加记录 --添加记录的语法(可添加单条记录或者多条记录),INTO是可以省略的,字段名也可以省略的,但是如果省略的话,后面对应的value的值就要全部填写 INSERT [INTO] ...

  3. MySQL简单的操作,增删改查

    B/S架构模式与C/S架构模式的区别 B/S=WEB/SERVER C/S=CLIENT/SERVIR B/S:用户通过web浏览器打开域名就能访问服务器server的方式就叫做B/S用户不需要安装任 ...

  4. mysql基础操作 增删改查

    如何使用终端操作数据库 如何登录数据库 mysql -u用户名 -p密码 比如: mysql -uroot -p123456 如何查询数据库服务器中所有的数据库 show databases; 如何选 ...

  5. MySQL数据分析(16)— 数据操作之增删改查

    前面我们说学习MySQL要从三个层面,四大逻辑来学,三个层面就是库层面,表层面和数据层面对吧,数据库里放数据表,表里放数据是吧,大家可以回忆PPT中jacky的这图,我们已经学完了库层面和表层面,从本 ...

  6. MYSQL - database 以及 table 的增删改查

    MYSQL - database 以及 table 的增删改查 MySQL的相关概念介绍 MySQL 为关系型数据库(Relational Database Management System), 这 ...

  7. MySQL数据库之表的增删改查

    目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...

  8. 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

    一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...

  9. get,post,put,delete四种基础方法对应增删改查

    PUT,DELETE,POST,GET四种基础方法对应增删改查 1.GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改.增加数 ...

随机推荐

  1. python日常题目小练习

    1.使用while循环输出1 2 3 4 5 6 8 9 10 i=0 while i<10: i+=1 if i==7: continue print(i) 结果: 2.求1-100的所有数的 ...

  2. vs2019 opencv4的相关配置

    opencv4.11存在改动,导致许多demo没有办法正常运行,但是配置方法却是相同的. 主要是连接器输入,头文件包含路径,库路.如果想要调试,还需要设置调试文件符号表. [未完待续]

  3. mcast_set_loop函数

    #include <errno.h> #include <sys/socket.h> #include <net/if.h> #include <netine ...

  4. centos7一步一步搭建docker tomcat 及重点讲解

    系统环境:centos7.7 (VMware中) image版本:tomcat:8-jdk8-openjdk (截止2020.01.10该系列版本) 安装步骤参考文章:https://www.jian ...

  5. http的长连接和短连接(史上最通俗!)

    1.以前的误解 很久之前就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接.但终究觉得对于长连接一直懵懵懂懂的,有种抓不到关键点的感觉. 今天 ...

  6. python快速入门及进阶

    python快速入门及进阶 by 小强

  7. 吴裕雄 python 神经网络——TensorFlow训练神经网络:MNIST最佳实践

    import os import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data INPUT_N ...

  8. 在tomcat启动时解析xml文件,获取特定标签的属性值,并将属性值设置到静态变量里

    这里以解析hibernate.cfg.xml数据库配置信息为例,运用dom4j的解析方式来解析xml文件. 1.在javaWeb工程里新建一个java类,命名为GetXmlValue.java,为xm ...

  9. 【原】简单shell练习(六)

    1.shell获取进程号并杀掉该进程 kill - $(ps -ef | grep node| grep -v grep | awk '{print $2}') 解析: ps (processStat ...

  10. python集合操作方法详解

    前言 说集合之前,我们先说一个小例子,假设某公司有五个人喜欢打篮球,五个人喜欢打游戏,问即打游戏有打篮球的人都有哪些? play_basketball = ['a','b','c','d','e'] ...