MySQL5.5数据库&SQL语句

目录

概念

分类

MySQL数据库

安装MySQL5.5

卸载

MySQL数据库中常见的数据类型

字符类型

数值类型

时间类型

SQL语句

DDL

操作数据库

操作数据表

DQL

单表查询

多表查询-非等值查询

多表查询-隐式内连接

多表查询-显示内连接

多表查询-左外连接

多表查询-右外连接

子查询

DML

DCL

MySQL中的函数

聚合函数

时间函数

字符串函数


概念

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期村塾在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

分类

关系型:关系型数据库的表之间一般是有关系的,db2、MySQL、SQL server、Oracle。比如班级表和学生表,学生表中的班级ID对应着班级表的ID,这种对应关系称外键。

非关系型数据库:表与表之间不存在关系,比如开发微信小程序时,使用云开发的数据库。

MySQL数据库

关系型数据库,属于Oracle旗下的产品,是目前最流行的关系型数据库。

安装MySQL5.5

step01 双击安装文件

step02 下一步

step03 同意协议

step04 选择版本

step05 安装的地址

step06 安装

step07 下一步

step08 下一步

step09 完成

step10 下一步

step11 下一步

step12 下一步

step13 下一步

step14 下一步

step15 下一步

step16 下一步

step17 设置编码格式

 

 step18

step19 下一步

 step20

卸载

step01 控制面板卸载

 step02 删除mysql配置文件

step03 删除数据文件

MySQL数据库中常见的数据类型

字符类型

char,等价于Java中的String类型

varchar,等价于Java中的StringBUffer类型

blog、二进制形式的唱文本数据类型没用于存储音频、视频等。

text、长文本数据,用于存储文章

数值类型

int、整型,一般就用这个

double、双精度浮点型

double(M, D)、也是双精度浮点型,M表示长度,D表示小数位数

时间类型

date:yyy-MM-dd

time:hh:mm:ss

year:yyyy

datetime:yyyy-MM-dd hh:mm:ss

SQL语句

结构化查询语句,注意:所有SQL语句都要加上分号后缀。

DDL

数据定义语言(data definition language),主要用于操作数据库以及数据表,关键字:alter、drop、create

操作数据库

创建数据库:create database 库名;

如果数据库不存在则创建:create batabase if not exist 库名;

创建数据库并设置编码格式:create database 库名 character set 编码格式;

查看数据库创建格式:show create database 库名;

修改数据库的编码格式:alter database 库名 character set 编码格式;

查看所有数据库:show databases;

删除数据库:drop database 库名;

操作数据表

创建表:create table 表名( 列名 数据类型(长度), 列名 数据类型(长度) ……, 列名 数据类型(长度))

修改表名:alter table oldName reneme to newName;

查看数据库中所有的表:show tables;

删除表:drop table tableName;

查看表结构:desc tableName;

在末尾增加列:alter table 表名add 列名 数据类型(长度)

在指定列后增加:alter table 表名 add 列名 数据类型(长度) after 已存在的列名

修改数据类型:alter table 表名 modify 列名 数据类型(长度)

修改列名:alter table 表名 change 原列表 新列名 数据类型(长度)

删除列:alter table 表名 drop 列名

DQL

数据查询语言(data query language),主要用于查询数据库,关键字:select

查询语句的顺序:select * from 表名 where 条件 group by 条件 having 条件 order by 排序条件 limit 分页

union

表示把多次的查询结果合并一起,与union相比去除了重复元素,比如student的记录如下

SELECT *
FROM student
WHERE id < 4

UNION

SELECT *
FROM student
WHERE id > 2 AND id < 6

其结果为

单表查询

查询所有数据:select * from 表名 ( where 条件 )

查询指定列的数据:select 列名1,列名2…… from 表名 ( where 条件 )

简单运算查询:select 表达式 from 表名,例如:select price+10 from product

条件查询:select * from 表名 where 条件,符号:not、between、or、!、=、>、<、>=、<=、||。例如:select * from product where price>300; …… where price >=200 and price <=1000; ……where price between 200 and 1000; ……where price in( 200,800,1000 )等价于where price=200 && price==800 && price=1000

模糊查询:关键字:like,匹配符:% 匹配多个、_ 匹配一个。例如:查询包含有香字的所有商品:select * from product where pname like '%香%' ;查询以香开头的所有商品:…… where pname like '香%' ;查询第二个字的想的所有商品:…… where pname like '_想%' ;

非空查询:is not null 或 is null,null表示未插入数据状态,不等于空字符串,例如:查询没有分类的商品:select * from product where category_name is null ;

排序:关键字:order by,升序asc、降序desc,select * from 表名 order by 列名 asc/desc,支持多重排序,例如:在价格降序的基础上,pid降序排序,select * from product order by price desc,pid desc;

分页查询:limit num1,num2,num1表示数据库的索引(从0开始),num2表示每页显示的数量,例如:查询第一条与第二条数据,select *from product limit 0,2;查询第三条与第四条数据,…… limit 2,2;

分组查询:select * from 表名 group by 列名,例如:统计各个分类下的商品个数,select  category_name,count(*) from product group by category_name;

过滤:关键字:having,一般与分组进行搭配使用,位置是在分组后面。select * from 表名 group by 列名 having 条件。例如:统计各个分类商品的个数,有且只显示分类名称不为空的数据,select category_name,count(1) from product group by category_name having category is not null;

去重:关键字:distinct;例如:查询出所有价格,select distinct price from product;

设置别名:as,可以给表设置别名,也可以给列设置别名,as 可以省略,select p.pname,price+10 as "运损后的介个" from product as p;

多表查询-非等值查询

select * from 表1,表2;这种查询方式会出现大量的错误数据,这种现象称为笛卡尔现象,所以一般不使用。

多表查询-隐式内连接

select 8 from 表1,表2 where 关联条件:select * from dept d emp e where d.did=e.did;因为一条语句只能出现一个where,所以方式只能查询两个表,并且查询结果是两表的交集

多表查询-显示内连接

select * from 左表 inner join 右表 on 关联条件,取交集

多表查询-左外连接

select * from 左表 left join 右表 on 匹配条件;以左表为准,右表逐个匹配,如果不匹配,则左表正常显示,右表为null;这也是使用最多的一种方式

多表查询-右外连接

select * from 左表 rightjoin 右表 on 匹配条件;以右表为准,左表逐个匹配,如果不匹配,则右表正常显示,左表为null

子查询

一个查询语句嵌套另一个查询语句;a.select * from  emp     select  * from dept  where  dname="研发部门"

DML

数据操作语言(Data Manipulation Language),主要用于操作数据表,关键字:insert、delete、update

添加数据:insert into 表名 values (数据1,数据2……),字符串可以使用单引号或双引号,事件类型只能使用单引号。

指定列名添加数据:insert into 表名 (列名1,列名2……) values(数据1,数据2……)

插入多条数据:insert into 表名 values (数据1,数据2……),(数据1,数据2……)

修改数据:update 表名 set 列名=值,列名=值 where 条件,没有条件则修改所有数据

删除数据:delete from 表名 where 条件,没有条件则删除所有数据,并且是逐行删除

删除所有数据并删除表结构:truncate table 表名,删除后等价于一个新表,如果是需要删除整个表,推荐使用这种方式

DCL

数据控制语言(Data Control Language),主要用于对数据库的用于进行管理,这个平时开发用的少。

MySQL中的函数

聚合函数

count(1)、count(*)、count(列名):统计,推荐使用count(1)

sum(列名):求和

max(列名):最大值

min(最小值):最小值

age(列名):平均值

时间函数

sysdate()、now():当前系统时间,yyy-MM-dd hh:mm:ss,查看当前系统时间,select sysdate()

curdate():获取当前系统日期,yyy-MM-dd

curtime():获取当前系统时间,hh:mm:ss

字符串函数

concat(str1,str2……):拼接多个字符串

insert(str,pos,len,newStr):将str中指定pos位置开始len长度的内容替换为newStr,序号从0开始

lower(str):将指定字符串转换为小写

upper(str):将指定字符串转换为大写

substring(str,pos,len):将字符串指定pos位置开始截取len长度,参数len省略则截取到末尾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值