mysql简单命令—常用

Mysql有哪些

Oracle是最挣钱的数据库,出自甲骨文公司,市场占有率非常高,功能非常强大,被一些大型企业,电信,银行,证券公司所使用

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL目前最流行的开源数据库,被甲骨文公司所占用,威胁着老大Oracle的地位,开源,免费,支持多平台,易用

SQLServer,微软开发的数据库,仅支持Windows操作系统,号称是windows上最好用的数据库。数据库的天下不仅仅是MySQL和Oracle的,SQLServer也正在慢慢崛起,微软网罗了不少数据库的专家,推出了不少重磅功能。

MongoDB,最好用的文档型数据库,是NOSQL类型数据库的领导者之一,也是当前最成功的NoSQL类型数据库,数据存储格式采用JSON形式,非常灵活。

Redis,最好的内存级数据库,查询效率极高,并且在Redis 3.0之后,支持多种数据类型,String,Set,List,Hash等类型,开始支持集群,弥补了自身短板。是目前做缓存最流行的数据库

Neo4J,最好的图形化数据库,流行话较低,但是图形化数据库的绝对领导者。

SQLite,最流行的嵌入式数据库,占领手机行业的绝对领导者地位,Android和IOS两大手机系统,都内嵌了SQLite数据库,SQLite是一个完整的关系型数据库,支持标准SQL,支持事务操作,程序包非常小,是嵌入式设备的最佳选择。

SQL语言

  1. 数据查询语言:DQL
  2. 数据操纵语言:DML
  3. 数据定义语言:DDL
  4. 数据控制语言:DCL

编写数据的软件是—Navicat
在这里插入图片描述

基本数据库操作

单表查询

----------创建数据库

CREATE DATABASE 库名

----------删除数据库

DROP DATABASE 库名

----------修改编码

alter database 库名 CHARSET=utf8

----------查询所有数据库

SHOW DATABASES

----------使用数据库

USE 库名

----------创建表

create table 表名(
studentNo int PRIMARY key auto_increment,
sname VARCHAR(20),
sex VARCHAR(2),
age int
)

------------查看当前的表

SHOW TABLES

-------------查看当前表字段

DESC 表名字
-------------查看目前的表以及当前表字段

SHOW CREATE TABLE student

----------删除当前表所有数据

DELETE FROM 表名

------------添加一条数据

INSERT INTO 表名(字段名,字段名) VALUES(数据,“数据”)
INSERT INTO 表名 VALUES(数据,“数据”)

------------添加多条数据

INSERT INTO 表名 VALUES(数据,“数据”),(数据,“数据”),(数据,“数据”),(数据,“数据”)

------------删除一条数据

DELETE FROM 表名 WHERE 要删除的字段数据

-------------插入一个字段

ALTER TABLE表名 ADD 要添加的字段以及字段类型

-------------删除一个字段

ALTER TABLE 表名 drop 字段名

-------------查看当前表数据

SELECT * FROM 表名

----------2,6 取第三个以及以后的六条记录

SELECT * FROM 表名 LIMIT 2,6

----------从小到大排序(两种方法都可以查出来)

SELECT * FROM 表名 ORDER BY 字段
SELECT * FROM 表名 ORDER BY 字段 ASC

----------从大到小排序

SELECT * FROM stu ORDER BY id DESC

-*----------给字段加上名字

SELECT 字段 as “姓名”, 字段 as “序号” FROM 表名

------------分组查询(语句和函数一起使用 聚合函数包括 count(求个数) min(最小值) max(最大值) sum(求和))

SELECT * FROM stu GROUP BY name

单表查询实际案例

在这里插入图片描述
以上表为例

-----------查询姓名是李白的学生信息

select * from student where sname=“李白”

在这里插入图片描述

-----------查询1班是上海的学生

select * from student where class=“1班” and hometown=“上海”

在这里插入图片描述

----------查询家乡是北京或者上海的学生

select * from student where hometown=“北京” or hometown=“上海”

在这里插入图片描述

-----------查询小乔的年龄

select age as “年龄”,sname as “姓名” from student where sname=“小乔”

在这里插入图片描述

-----------查询家乡不在北京的学生

select * from student where hometown!=“北京”
在这里插入图片描述

-----------查询年龄小于20的女同学

select * from student where age<“20” and sex=“女”

在这里插入图片描述

-----------查询年龄为18至20的学生

select * from student where age BETWEEN 18 and 20

在这里插入图片描述

-----------查询北京学生的年龄总和

select sum(age),hometown from student where hometown=“北京”

在这里插入图片描述

-----------查询女生的平均年龄

select avg(age) from student where sex=“女”
在这里插入图片描述

-----------查询姓名包含白的学生

// 查询名字包含白的同学

SELECT * from student where sname like ‘%白%’

// 查询名字最后一位是白的同学

SELECT * from student where sname like ‘%白’

//查询名字姓白的同学

SELECT * from student where sname like ‘白%’

//查询名字是两位且姓白的同学

SELECT * from student where sname like ‘白_’

在这里插入图片描述

-----------查询所有学生信息,按年龄从大到小排序,年龄相同时,再按学号从小到大排序

SELECT * from student ORDER BY age desc,studentNo asc

在这里插入图片描述

-----------查询女生的最大年龄

select max(age) from student where sex=“女”
在这里插入图片描述

-----------查询各种性别的人数

select student.sex,count(student.sex) from student GROUP BY sex

select s.sex,count(s.sex) from student s GROUP BY sex

在这里插入图片描述

-----------查询男生总人数

select count(*),sex from student where sex=“男”

在这里插入图片描述

多表查询

交叉查询

交叉查询,又叫笛卡尔积查询,会将左表和右表的信息,做一个乘积将所有信息查询出来,会产生临时表,比较占用内存,生成的记录数=表1 X表2

SELECT * FROM 表1 , 表2

SELECT * FROM 表1 CROSS JOIN 表2

内连接查询

内连接,inner join on 查询两张表,设定条件,将两张表中对应的数据查询出来不会产生笛卡尔积,不会产生临时表,性能高

SELECT * FROM 表1 别名 INNER JOIN 表2 别名 ON 表1别名. 表1字段名 = 表2别名. 表2字段名

SELECT * FROM 表1 , 表2 WHERE 表1.表1字段名 = 表2.表2字段名

SELECT * FROM 表1.别名 , 表2.别名 WHERE 表1.表1字段名 = 表2.表2字段名

左外连接

左外连接 left join on 设定条件,将两张表对应的数据查询出来,同时将左表自己没有关联的数据也查询出来

注意:join前面是左,后面是右

SELECT * FROM 表1 别名 LEFT JOIN 表2 别名 ON 表1别名. 表1字段名 = 表2别名. 表2字段名

右外连接

右外连接 right join on 设定条件,将两张表对应的数据查询出来,同时将右表自己没有关联的所有数据查询出来

SELECT * FROM 表1 别名 LEFT JOIN 表2 别名 ON 表1别名. 表1字段名 = 表2别名. 表2字段名

多表查询实际案例

在这里插入图片描述

---------查询sc表中对应的何昊老师所授课程的女生的信息
select s.sname,s.sex,c.cteacher from sc INNER JOIN c ON sc.con = c.con INNER JOIN s on s.son = sc.son WHERE s.sex=“女” AND c.cteacher=“何昊”

在这里插入图片描述

--------找出没有选修过何老师的可能的所有学生的名字

select s.son,s.sname from s where son not in (select sc.son from sc inner join c on sc.con = c.con and c.cteacher = ‘何昊’)
在这里插入图片描述

--------列出不及格课程(成绩小于60)的学生的名字
select DISTINCT s.sname FROM s INNER JOIN sc on s.son=sc.son INNER JOIN c ON sc.con = c.con
WHERE sc.scgrade<60 GROUP BY sc.son
在这里插入图片描述里面加一个去重
如果不去重的话
在这里插入图片描述

Navicat工具使用步骤

文章中所用的辅助工具均为Navicat
可使用命令符建库建表,也可以直接手动建库建表

  1. 连接mysql 输入用户名,密码
    在这里插入图片描述

  2. 新建库,鼠标点击右键

在这里插入图片描述

  1. 新建表

在这里插入图片描述
在这里插入图片描述

数据库备份与恢复

在这里插入图片描述
使用doc命令: > mysqldump –u用户名 –p密码 数据库名>生成的脚本文件路径

注意,不要打分号,不要登录mysql,直接在cmd下运行
注意,生成的脚本文件中不包含create database语句

mysqldump -uroot -proot host>C:\Users\Administrator\Desktop\mysql\1.sql

在这里插入图片描述

导入SQL文件

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43636675/article/details/108372411