mysql数据库及常用sql语句总结

版权声明:本文为博主原创文章,喜欢的话,可以通知我后进行转载哦! https://blog.csdn.net/maidu_xbd/article/details/86747727

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语句,导入数据库

      

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/maidu_xbd/article/details/86747727