MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。同时也衍生了很多用于操作Mysql数据库的软件,图形界面工具有:sqlyog,navicat,mysql workbench,这里用sqlyog来举例。

1、通过图形界面对MySQL数据库进行操作

<1>安装sqlyog

<2>傻瓜式安装 ,安装完成后,创建新连接<3>输入MySQL服务器的ip,端口号,用户名和密码,进行连接

<3>输入Mysql服务器的ip端口号,用户名和密码,进行连接。

<4>连接成功,进入到图形界面,进行操作

<5>创建数据库右键单击,选择创建数据库

<2>创建表

选择doubandb数据库,在表上右键单击,选择创建表

填写表相关信息和列相关信息

注意点:

1、表的引擎选择: innodb

2、表的字符集: utf8

3、一张表只能有一个主键,主键必须唯一,非空。通过主键可以唯一确定一条记录

4、数据类型的选择,字符串: varchar 数字:float或int, 日期类型: date或datetime

<3>添加数据在books表上选择“打开表”,

2、使用命令行操作数据库

<1>连接数据库

mysql -u root -p密码

<2>查看数据库

show databases

名称解释命令DDL(数据定义语言)定义和管理数据对象CREATE DROP ALTER

<3> 切换数据库

use 数据库名称

<4>创建数据库create database 数据库名

<5>删除数据库drop database 数据库名

3、通过结构化查询语句**SQL**操作关系型数据库

<1>DDL

创建数据表

create table [if not exists] `表名`(

'字段名1' 列类型 [属性][索引][注释],

'字段名2' 列类型 [属性][索引][注释],

#...

'字段名n' 列类型 [属性][索引][注释]

)[表类型][表字符集][注释];

栗子:

CREATE TABLE IF NOT EXISTS `users`(

`uid` VARCHAR(200) PRIMARY KEY NOT NULL COMMENT '用户id',

`username` VARCHAR(200) UNIQUE NOT NULL COMMENT '用户名',

`gender` INT NOT NULL DEFAULT 1

) ENGINE=INNODB DEFAULT CHARSET=utf8;

列类型:

varchar(长度)

int

float

date/datetime

数据字段属性

UnSigned :

无符号的

声明该数据列不允许负数 .

ZEROFILL :

0填充的

不足位数的用0来填充 , 如int(3),5则为005

Auto_InCrement :

自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认)

通常用于设置主键 , 且为整数类型

可定义起始值和步长

当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表 SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

NULL 和 NOT NULL :

默认为NULL , 即没有插入该列的数值

如果设置为NOT NULL , 则该列必须有值

DEFAULT :

默认的

用于设置默认值

例如,性别字段,默认为"男" , 否则为 “女” ; 若无指定该列的值 , 则默认值为"男"的值

primary key:

用于设置主键

unique:

用于设置唯一性,不能重复,但是可以为空

ENGINE=innodb DEFAULT CHARSET=utf8:SQL引擎及其约束和字符编码

显示表结构:

desc 表名;

删除数据表(慎用)

drop table 表名

修改表

修改表名:ALTER TABLE 旧表名 RENAME AS 新表名

alter table userss rename as users

添加字段:ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ]

ALTER TABLE users ADD `password` VARCHAR(200) COMMENT '密码';

--一次性添加多个字段

ALTER TABLE users ADD `tel` VARCHAR(200), ADD `address` VARCHAR(200);

修改字段:ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ]

alter table users modify `gender` varchar(100) default '男';

删除字段:ALTER TABLE 表名 DROP 字段名

alter table users drop `tel`, drop `gender`;

<2>DML

insert

INSERT INTO 表名 [(字段1, 字段2, 字段2,.... )] VALUES('值1','值2','值3',...)

insert into users(uid,username,password) values('u1001','admin','123456');

INSERT INTO users VALUES('u1002','ls','123456','','');

--可同时插入多条数据,values 后用英文逗号隔开

INSERT INTO users VALUES('u1003','ls','123456','',''),

('u1004','ww','123456','','');

update

UPDATE 表名 SET column_name = value [ ,column_name2 = value2, .... ] [WHERE condition];

-- 修改uid='u1001'的password为654321

update users set password ='654321' where uid='u1001';

-- 修改uid='u1001'的password为123456和tel为18954271245

update users set password ='1234566',tel='18954271245' where uid='u1001';

-- 修改users表中所有数据的address为无

update users set address = '无' where 1=1

-- 修改users表中username不等于admin的数据,将 address修改为null

update users set address = null where username <> 'admin'

-- 修改users表中age>18的用户的address为陕西

update users set address='陕西' where age > 18

-- 修改users表中age>18并且小于40 的用户的address为山西

UPDATE users SET address='山西' WHERE age between 18 and 40;

UPDATE users SET address='山西运煤到西山' WHERE age >=18 and age <=40

-- 修改users表中username为admin 或ls的地址为四川

UPDATE users u SET u.address='四川' WHERE u.username = 'admin' or u.username= 'ls'

UPDATE users u SET u.address='四川' WHERE u.username in('admin','ls')

-- 修改users表中username包含ls的用户的address为深圳 (模糊匹配)

update users u set u.address='深圳' where u.username like '%ls%'

-- 修改users表中username不为admin和ls的地址为浙江

UPDATE users u SET u.address='四川' WHERE u.username <> 'admin' and u.username <> 'ls'

UPDATE users u SET u.address='浙江' WHERE u.username not IN('admin','ls')

delete 

DELETE FROM 表名 [ WHERE  condition ];

-- 删除users表中uid等于u1005的用户

DELETE FROM users WHERE uid = 'u1005'

 <3>DQL

查询语句

使用的关键字 select

简单的单表查询或多表的复杂查询和嵌套查询

数据库语言中最核心、最重要的语句

使用频率最高的语句

语法:

SELECT   [ALL | DISTINCT]

{ * | table.* | [ table.field1 [ as alias1] [, table.field2 [as alias2]][, ...]] }

FROM table_name [ as table_ alias ]

[ left|out|inner join table_name2 ]   #联合查询

[ WHERE ... ]   #指定结果需满足的条件

[ GROUP BY ...] #指定结果按照哪几个字段来分组

[ HAVING ...] #过滤分组的记录必须满足的次要条件

[ ORDER BY... ] #指定查询记录按一个或者多个条件排序

[ LIMIT {   [ offset,] row_count   |   row_count OFFSET offset   }] ;

<1>单表查询

-- 查询所有书籍的分类信息

SELECT * FROM classify;

-- 查询所有书籍的分类信息名称

SELECT cname FROM classify;

-- 给表起别名

SELECT c.`cname` FROM classify c;

-- 给列起别名

SELECT c.`cname` AS 'classifyName' FROM classify c;

-- 查询价格大于40元的所有书籍,显示书名和isbn

SELECT b.`bookname`, b.`isbn` FROM books b  WHERE b.`price` > 40;

-- 查询有多少本书存在评论信息

SELECT DISTINCT(c.`booid`) FROM COMMENT c;

注释:

查询表中所有的数据列结果,采用“*”符号;效率比较低,不推荐

通过AS可以给表和列起别名,其中AS可以省略不写

distince关键字的作用是去重

<2>数据库中的表达式

-- 表达式

select 1+1;

-- 由于纸的价格上涨,需要给每本书进行涨价10%,保留两位小数 [运算表达式]

select b.`bookname`,b.`price`, round(b.`price`*(1.1),2) newprice from books b;

-- 涨价完成后,更新到数据库中。(练习)

-- 统计书本的数量 [函数]

select count(b.`bid`) `sum` from books b;

-- sum函数 求和   max 最大值 min 最小值 AVG 求平均值 round 四舍五入

<3>查询条件

where关键字后面紧跟条件,类似于 update中所描述的条件

-- 查询bookname中社会的书籍信息

select b.`bid`,b.`bookname`,b.`isbn` from books b where b.`bookname` like '%社会%'

<4> 多表查询

-- 多表查询

-- 查询所有书所对应的分类信息 书的信息--books 分类信息 --classify

SELECT b.`bid`,b.`bookname`,b.`isbn`,b.`dateofpublication`, c.cname FROM books b, classify c

WHERE b.`cid` = c.cid

-- 查询所有书所对应的分类信息,没有分类信息,也要显示(左外连接或右外连接查询)SELECT b.`bid`,b.`bookname`,b.`isbn`,b.`dateofpublication`, c.cname FROM books b LEFT JOIN classify c ON b.`cid` = c.cid

SELECT b.`bid`,b.`bookname`,b.`isbn`,b.`dateofpublication`, c.cname FROM classify c RIGHT JOIN books b ON b.`cid` = c.cid

-- 内连接 inner join

<5>排序

-- 排序 order by

-- 查询所有书所对应的分类信息,没有分类信息,也要显示,并按照编号进行排序

SELECT b.`bid`,b.`bookname`,b.`isbn`,b.`dateofpublication`, c.cname from books b

left join classify c on b.`cid` = c.cid

order by b.bid ASC, b.isbn desc, b.`bookname` desc

<6> limit限制

-- 显示前3条分类信息

SELECT * FROM classify LIMIT 3;

-- 显示第2条到第5条的分类信息

SELECT * FROM classify LIMIT 1,4;

<7>分组聚合

group by--指定结果按照哪几个字段来分组

having--->过滤分组的记录必须满足的条件

-- 统计每本书的评论数

SELECT c.`booid`, COUNT(*) FROM `comment` c

GROUP BY c.booid

-- 统计每个用户的评论个数

SELECT c.`userid`, COUNT(*) FROM `comment` cGROUP

BY c.`userid`

-- 统计每本书评论的数量大于等于2条

SELECT c.`booid`, COUNT(c.`score`) nums FROM `comment` cGROUP BY c.booidHAVING nums >=2

-- 统计评分大于等于4.5书的评论数

通过图形界面对MySQL数据库进行操作相关推荐

  1. MySQL 数据库的操作 连接、新增、删除、选择数据库 命令行(带图)

    MySQL 数据库的操作 连接.新增.删除.选择数据库 命令行 一.连接数据库 在命令行通过 下面命令 mysql -u root -p123456 #这里跟的是自己的密码 8.0的密码要回车后输入. ...

  2. C语言对mysql数据库的操作

    C语言对mysql数据库的操作 原文:C语言对mysql数据库的操作 这已经是一相当老的话题.不过今天我才首次使用,把今天的一些体会写下来,也许能给一些新手带来一定的帮助,更重要的是供自己今后忘记的怎 ...

  3. Mysql数据库(三)——mysql数据库高级操作

    Mysql数据库(三)--mysql数据库高级操作 一.指定主键的另一种方式 二.克隆/复制一个表 1.方法一 2.方法二 三.清空表,删除表内数据 1.方法一 2.方法二 3.方法三 4.三个删除方 ...

  4. MYSQL数据库表操作pdf

    <MYSQL数据库表操作pdf> 下载地址: 网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731023.html

  5. 端口映射+物理机、虚拟机互访+Pyqt5、Gui图形化界面+Mysql数据库

    目录 一.背景 1.1.要求 1.2.说明 1.2.1.环境 二.步骤详解 2.1.在linux下安装mysql数据库,并能通过localhost/phpmyadmin登录,用户名密码均设为root ...

  6. FastAPI 对MySQL 数据库的操作(win64)

    一.FastAPI 对MySQL 数据库的操作 pip install sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simplepip instal ...

  7. MySQL数据库常用操作(20221211)

    记录:360 场景:MySQL数据库常用操作,启动.重启.停止MySQL服务:创建用户.数据库.表.主键.索引.注释等.配置远程可连接.配置环境变量.常用系统表操作.常用命令行操作.表的增删改查等操作 ...

  8. vc6.0 点击鼠标获取mysql数据库所在行_VC6.0中对MySQL数据库的操作

    VC6.0中对MySQL数据库的操作 1.在mysql目录下找到名字为libmySQL.dll和libmySQL.lib 的文件拷贝到当前工程目录下,并在"工程->设置->连接& ...

  9. java实现对mysql数据库的操作_java 对mysql数据库的基本操作

    java对mysql数据库的操作分为以下几个步骤: 1.获取连接: 获取连接需要两步,一是使用DriverManager来注册驱动,二是使用DriverManager来获取Connection对象. ...

最新文章

  1. python嵌套循环效率_Python嵌套循环数组比较优化的可能性?
  2. beego 显示html文件,[Beego] 内置的模板函数(不同格式的字符串和html的互转)
  3. 二叉排序树的实现——java
  4. Springboot 2.x 单元测试 JUnit 5
  5. ieee期刊_论文绘图神器来了:一行代码绘制不同期刊格式图表,哈佛博士后开源...
  6. 一文理解图像处理之HOG特征
  7. Spring中使用 InitializingBean
  8. C - 一个人的旅行(最短路径)
  9. 关于SQL模糊查询日期时间的方法,格式化日期时间年月日时分秒,去掉毫秒
  10. Day 177/200 React 颜色选择器
  11. android 图片浏览 app 排行版,安卓图片浏览软件哪个好_安卓图片浏览app推荐_图片浏览app软件排行...
  12. 高德离线地图开发API
  13. python获取所有盘符_自动扫描所有本地磁盘,获取所有图片信息
  14. linux 部署 程序,Linux 部署配置WEB APP
  15. java 飞机 源码_Java 飞机游戏源码(带音乐)
  16. linux启用NAT功能,双网卡共享网络,iptables简单实现
  17. python mac地址转int,Python MAC地址 获取,过滤,转
  18. 常规设置-Sinon.JS
  19. 统计学的Python实现-010:四分位距
  20. mPush实战笔记2安装redis

热门文章

  1. java label对齐方式_java – 在BorderLayout中对齐JLabel和JTextField
  2. 安卓 build.prop 进行修改提高性能
  3. 关于 ZAO 换脸 App 中你需要注意的个人隐私问题
  4. 数学分析教程(科大)——1.1笔记+习题
  5. 嵌入式linux进行视频监控,嵌入式Linux下的视频监控解决方案
  6. iw在java中什么意思,请问程序里piw和iw有什么区别
  7. P1914 小书童——凯撒密码(python实现)
  8. Element UI表格行拖拽功能
  9. Neo4j笔记(二)Cypher(6)UNWIND和FOREACH
  10. 【bean的生命周期】--- BeanDefinition和BeanFactoryPostProcessor简介