MySQL基本用法(一)

项目需要更换Oracle数据库,故对自己之前学到的MySQL进行总结,以便后续复习改善。

一、SQL分类

  • 数据定义语言:简称DDL,用来定义数据库对象:数据库,表,列等。关键字:creat、alter、drop等
  • 数据操作语言:简称DML,用来对数据库中表的记录进行更新。关键字:insert、delete、update等
  • 数据控制语言:简称DCL,用来定义数据库的访问权限和安全级别,及创建用户
  • 数据查询语言:简称DQL,用来查询数据库中表的记录。关键字:select、from、where等

二、SQL

1、DDL 数据库操作

  • 创建数据库
create database 数据库名;

create database if not exists 数据库名;--如果不存在则创建
  • 查看数据库

查看mMySQL服务器中的所有数据库:

show databases;
  • 查看某个数据库中的定义信息
show create database 数据库名;
  • 删除数据库
drop database 数据库名称;
  • 切换数据库
use 数据库名
  • 查看表,查看表结构,查看建表语句,删除表,删除列,修改表名,修改表的字符集,修改列表,添加列
--查看表
show tables;
--查看表结构
desc 表名;
--查看建表语句
show create table 表名;
--删除表
drop table 表名;
--删除列
alter TABLE 表名 DROP列名;
--修改表名
RENAME TABLE 表名 TO  新表名;
--修改表的字符集
alter TABLE 表名 CHARACTER SET字符集
--修改列名
alter TABLE 表名CHANGE 列名 新列名 列类型;
--添加列
alter table 表名 add 列名 列类型;

2、DML操作

首先先知道查询表中所有数据的语句:

SELECT * FROM 表名

DML是对表中的数据进行增、删、改、的操作。

  • INSERT:插入
  • UPDATE:更新
  • DELETE:删除

2.1  插入操作:INSERT

语法:

INSERT INTO 表名(列名1,列名2...) VALUES(列值1, 列值2...);

注意:

  • 列名与列值的类型、个数、顺序要一一对应
  • 可以把列名当作java中的形参,把列值当作实参
  • 值不要超过列定义的长度
  • 如果插入空值,请使用null
  • 插入的日期和字符一样,都使用引号括起来

Example:

INSERT INTO emp (id,name,gender,birthday) VALUES(1,'zhangsan','male','1999-9-9');

2.2 修改操作:UPDATE

语法:

UPDATE 表名 SET 列名1 = 列值1 ,列名2 = 列值2...WHERE 列名 =

Example:

将姓名为zhangsan的员工薪水修改为4000,性别修改为female

UPDATE emp SET salary = 4000,gender = 'female' WHERE name = 'zhangsan'

2.3 删除操作:DELETE

DELETE FROM 表名 [WHERE 列名=值]

Example:

删除表中姓名为zhangsan的记录

DELETE FROM emp WHERE name = 'zhangsan'

删除表中所有记录

DELETE FROM emp;

3、DQL操作

DQL数据查询语句

语法:

SELECT 列名 FROM 表名
[WHERE -> GROUP BY -> HAVING ->ORDER BY]

3.1 查询所有列

SELECT * FROM stu

3.2 查询指定列

SELECT sid ,sname ,age FROM stu;

3.3 条件查询

条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:

=、!=、<>、<、<=、>、>=; BETWEEN...AND; IN(set); IS NULL; IS NOT NULL; AND; OR; NOT;

3.4 模糊查询

在使用like关键字时,通常和通配符配合使用

通配符:用来匹配一部分的特殊字符;_:匹配任意一个字符;%:任意0~n个字符。

3.5 去除重复记录

SELECT DISTINCT sal FROM emp;

3.6 排序

排序使用 order by 列名 asc/desc 作为语法。默认时asc(升序)可以指定 desc 降序。

4、聚合函数

  • COUNT():统计指定列不为null的记录行数
  • MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
  • MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
  • SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
  • AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0

5、分组查询

当需要分组查询时需要使用GROUP BY子句,例如每个部分的工资和,这就要使用部门来分组

SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;

 6、HAVING子句

Example:查询工资总和大于9000的部门编号以及工资总和:

SELECT deptno,SUM(sal) FROM emp GROUP BY deptno HAVING SUM(sal) > 9000;

having和where的区别

1、having是在分组后对数据进行过滤,而where是在分组前对数据进行过滤

2、having后面可以使用聚合函数,where后面不可以使用聚合函数

7、LIMIT

LIMIT用来限定查询结果的起始行,以及总行数

Example:查询5行记录,起始行从0开始

SELECT * FROM emp LIMIT 0,5;

猜你喜欢

转载自www.cnblogs.com/xudongsheng0721/p/11996946.html