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

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书的评论数

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
PremiumSoft Navicat for MySQL数据库管理工具 PremiumSoft Navicat Premium 等,但是这些是收费的。同样也有免费的数据库工具 Database .NET,可是真的好用吗?SQLyog 是业界著名的 Webyog 公司出品的一款简洁高效、功能强大的图形化 MySQL 数据库管理工具。SQLyog 是图形化管理接口的 MySQL 数据库管理工具,让您能够从世界的任何角落透过网络来维护数据库数据库管理工具 SQLyog Ultimate 中文多语特别版数据库管理工具 SQLyog Ultimate 中文多语特别版 作为一款 MYSQL 数据库的管理工具软件,SQLyog 主要用于使用 GUI 界面对 MYSQL 进行管理,包含 MySQL Query Browser,phpMyAdmin 和其他前后台管理以及 MySQL Clients 为一体。 一款简洁高效、功能强大的图形化 MySQL 数据库管理工具。使用 SQLyog 可以快速直观地让您从世界的任何角落通过网络来维护远端的 MySQL 数据库。可以连接到指定的MYSQL主机,支持使用HTTP管道以及/SSH/SSL,可创建新的表、视图、存储过程、函数、触发器及事件,支持删除及截位数据库。支持转储数据库,将数据库保存到 SQL,编辑功能可以查找/替换指定内容,可列出全部或匹配标记,管理由 SQLyog 创建的任务,使用各自的任务向导创建任务。 SQLyog MySQL 功能特性: 1、同行业软件体积小,方便安装。 2、HTTP/HTTPS 和 SSH 通道。 3、向导化的汇入工具包。 4、结构化的同步,可以设定任务计划,按照特定的时间进行同步作业,并对同步数据进行校验。 5、工作管理器、计划备份、以及通知服务等。 6、可视化查询编辑器 7、基于C++和MySQL API编程; 8、方便快捷的数据库同步与数据库结构同步工具; 9、易用的数据库、数据表备份与还原功能; 10、支持导入与导出XML、HTML、CSV等多种格式的数据; 11、直接运行批量 SQL 脚本文件,速度极快; 12. 智能SQL语句自动完成功能; SQLyog MySQL 基本功能: 快速备份和恢复数据。 以GRID/TEXT格式显示结果。 支持客户端挑选、过滤数据。 批量执行很大的SQL脚本文件。 快速执行多重查询并能够返回每页超过1000条的记录集,而这种操作是直接生成在内存中的。 程序本身非常短小精悍!压缩后只有348 KB。 完全使用MySQL C APIs程序接口。 以直观的表格界面建立或编辑数据表。 以直观的表格界面编辑数据。 进行索引管理。 创建或删除数据库。 操纵数据库的各种权限:库、表、字段。 编辑BLOB类型的字段,支持Bitmap/GIF/JPEG格式。 输出数据表结构/数据为SQL脚本。 支持输入/输出数据为CSV文件。 可以输出数据库清单为HTML文件。 为所有操作建立日志。 个人收藏管理操作语句。 支持语法加亮显示。 可以保存记录集为CSV、HTML、XML格式的文件。 99%的操作都可以通过快捷键完成。 支持对数据表的各种高级属性的修改。 查看数据服务器的各种状态、参数等。 支持更改数据表类型为ISAM、MYISAM、MERGE、HEAP、InnoDB、BDB。 刷新数据服务器、日志、权限、表格等。 诊断数据表–检查、压缩、修补、分析。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放揊会鼓包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值