MySQL5.5数据库&SQL语句

导读:本篇文章讲解 MySQL5.5数据库&SQL语句,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

概念

分类

MySQL数据库

安装MySQL5.5

卸载

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

字符类型

数值类型

时间类型

SQL语句

DDL

操作数据库

操作数据表

DQL

单表查询

多表查询-非等值查询

多表查询-隐式内连接

多表查询-显示内连接

多表查询-左外连接

多表查询-右外连接

子查询

DML

DCL

MySQL中的函数

聚合函数

时间函数

字符串函数


概念

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

分类

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

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

MySQL数据库

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

安装MySQL5.5

step01 双击安装文件

step02 下一步

MySQL5.5数据库&SQL语句

step03 同意协议

MySQL5.5数据库&SQL语句

step04 选择版本

MySQL5.5数据库&SQL语句

step05 安装的地址

MySQL5.5数据库&SQL语句

step06 安装

MySQL5.5数据库&SQL语句

step07 下一步

MySQL5.5数据库&SQL语句

step08 下一步

MySQL5.5数据库&SQL语句

step09 完成

MySQL5.5数据库&SQL语句

step10 下一步

MySQL5.5数据库&SQL语句

step11 下一步

MySQL5.5数据库&SQL语句

step12 下一步

MySQL5.5数据库&SQL语句

step13 下一步

MySQL5.5数据库&SQL语句

step14 下一步

MySQL5.5数据库&SQL语句

step15 下一步

MySQL5.5数据库&SQL语句

step16 下一步

MySQL5.5数据库&SQL语句

step17 设置编码格式

 MySQL5.5数据库&SQL语句

 step18

MySQL5.5数据库&SQL语句

step19 下一步

MySQL5.5数据库&SQL语句

 step20

MySQL5.5数据库&SQL语句

卸载

step01 控制面板卸载

MySQL5.5数据库&SQL语句

 step02 删除mysql配置文件

MySQL5.5数据库&SQL语句

step03 删除数据文件

MySQL5.5数据库&SQL语句

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的记录如下

MySQL5.5数据库&SQL语句

SELECT *
FROM student
WHERE id < 4

UNION

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

其结果为

MySQL5.5数据库&SQL语句

单表查询

查询所有数据: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省略则截取到末尾

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/14612.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!