mysql数据库是最流行的关系型数据库管理系统,开源免费,适用于中小型网站,性能方面也不错。其缺点是集群、容灾稍微弱一些。
一、基本概念:
1.数据库:文件夹-用来管理,本身没法存数据
2.数据表:文件-存数据的
3.行:一条数据
4.列(字段、域):一个数据项
5.主键:唯一标志符,一个数据表中只能包含一个主键
6.外键:外键用于关联两个表
7.索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
8.参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
二、sql语句及相关命令
net start mysql80----启动mysql服务
net stop mysql80----关闭mysql服务
Mysql -u root -p-----启动mysql后输入您的密码即可进入mysqls数据库
create database xxx;-----创建xxx数据库
show databases;------显示所有数据库
use aaa;------使用数据库aaa
show tables;-----显示所有表
desc student; /describe student; /show columns from student;-----查看 account表结构
Start transaction; -----开启事务
commit;/rollback;-----提交事务/回滚事务
增删改查
增---INSERT---INSERT INTO 表 (字段列表) VALUES(值列表)
删---DELETE-----DELETE FROM 表 WHERE 条件
改---UPDATE----UPDATE 表 SET 字段=值,字段=值,... WHERE 条件
查---SELECT---SELECT * FROM 表 WHERE 条件
WHERE 条件
WHERE name='buding'
WHERE age>18
WHERE age<=18
WHERE age>=18 AND score<60
WHERE cach>100 OR score>10000
ORDER 排序
ORDER BY age ASC/DESC
ASC-升序(从小到大)
DESC-降序(从大到小)
ORDER BY price ASC
*价格(price)升序排序,如果价格相同,再按销量(sales)降序排序
ORDER BY price ASC, sales DESC
GROUP 聚类-合并相同 COUNT、MIN、MAX、AVG
SELECT class,COUNT(class) FROM student_table GROUP BY class;
SELECT class,AVG(score) FROM student_table GROUP BY class;
SELECT class,MAX(score),MIN(score) FROM student_table GROUP BY class;
SELECT name,SUM(price) FROM sales_table GROUP BY name;
SELECT name,SUM(price) FROM sales_table GROUP BY name ORDER BY SUM(price) DESC;
SELECT name,SUM(price) FROM sales_table GROUP BY name ORDER BY SUM(price) ASC;
LIMIT-限制输出
LIMIT 10; 前10条
LIMIT 5,8; 从5开始,要8个
---------------------------------------------------
分页:
每页20条
第1页 0,20 0~19
第2页 20,20 20~39
第3页 40,20
第n页 (n-1)*20,20
注意:子句之间是有顺序
WHERE GROUP ORDER LIMIT
SELECT class,COUNT(class) FROM student_table
WHERE score>60
GROUP BY class
ORDER BY COUNT(class) DESC
LIMIT 2;
三、使用案例
create database tempdb char set utf8;----创建数据库
use tempdb;
create table student( ------创建表
id int not null auto_increment primary key comment 'id',
name varchar(16) not null comment '姓名',
birthday datetime comment '出生年月',
score float default 0 comment '高考总成绩',
index ix_name(name),
index ix_birthday(birthday)
);
insert into student(name,birthday,score) values ------插入表记录
('张三','1998-1-1',512),
('李四','2000-2-1',618),
('王五','2001-3-1',null),
('悟空','1999-4-1',700),
('八戒','1999-3-1',88);
查询所有在3月份出生的学生姓名
(提示:月份函数 month())
select name from student where month(birthday) = 3;
按学生出生的月份对学生分组、并给出各个月份内学生的成绩之和
select sum(score) from student group by month(birthday);
查询出所有有成绩的学生的信息。
select * from student where score is not null;
过滤出分数排名第二的行
select * from student order by score desc limit 1,1;
limit 3---输出前三行;
limit 1,3---从第一行开始,输出3行(默认首行为第0行)
四、mysql图形化管理工具介绍
mysql有很多种图形化管理化管理工具,比如:Navicat、Mysql_WorkBench、SQLyog、Mysql-Front等,以下简单介绍Navicat和Mysql_WorkBench
(一)Navicat操作说明
1.新建连接:文件-》新建连接-》MySQL
.
2.新建数据库,在localhost上右键单击可选择新建数据库,关闭连接、删除连接、运行SQL文件等操作也可以在此处完成。
字符集为utf8 -- UTF-8 Unicode,排序规则为utf8_general_ci
3.数据表的导出:在数据库上或者数据表上右键单击
(二)Mysql_workBench操作说明
1.新建数据库表fc915
2.运行SQL语句,导入数据库