大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

数据库篇-mysql详解之基础应用( 一 )

一 : 数据库及mysql简介

数据库 : 存储数据的仓库,本质是文件系统,数据库按照特定的格式将数据存储起来,用户可以通过SQL对数据库中的数据进行增删改查操作.数据库中包含多个数据表.

数据库管理系统 (DataBase Management System,DBMS): 是一种操作和管理数据库的大型软件,用于建立,使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性. 用户通过数据库管理系统访问数据库中表内的数据, DBMS扮演者一个代理者,让用户优雅的处理数据库与数据表的各种操作.

常见的数据库软件 :

  • mysql :开源免费的数据库,小型的数据库,已经被Oracle收购,6.X版本也开始收费.
  • Oracle : 收费的大型数据库,Oracle公司的产品.Oracle收购SUN公司,收购MYSQL.
  • DB2 : IBM公司的数据库产品,收费,常应用在银行系统中.
  • SQLServer : MicroSoft 公司收费的中型的数据库. C# , .net等语言常使用.
  • SyBase : 已经淡出历史舞台,提供了一个非常专业数据建模工具PowerDesigner.
  • SQLite : 嵌入式的小型数据库,应用在移动端.

二 : mysql 的常用命令

  • 启动与关闭 : mysql.server start;/mysql.server stop;
  • 登录 : mysql -uroot -pnewpass;

三 : SQL简介

(Structured Query Language))结构化查询语言,关系数据库语言的国际标准
数据库厂商们都会支持ISO的SQL标准,也会在标准的基础上做自己的扩展

SQL分类

数据定义语言 : 简称DDL(Data Definition Language),用来定义数据库对象 : 数据库,数据表,列(column)等 .对结构的操作
关键字 : 创建create, 修改alter, 删除drop等

数据操作语言 : 简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新,对数据的操作
关键字 : 插入 insert,删除 delete, 更新 update等

数据查询语言 : 简称DQL(Data Query Language) ,用来查询数据库中标的记录 .关键字 : select ,from ,where 等

四 : SQL常见命令

( 一 )数据库
  • 创建一个库
create database 库名
create database 库名 character set 编码
  • 删除一个库
drop database 库名
  • 使用某个数据库
use 库名
  • 查看当前正在操作的库
select database();
  • 插入数据中文乱码问题解决办法
set names 编码

或者去配置文件里设置

( 二 )数据表
  • 创建一张表
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
字段名 类型(长度) [约束]
);
CREATE TABLE TZ_zhangwu (
  zwid INT PRIMARY KEY AUTO_INCREMENT,
  flname VARCHAR(200),
  money DOUBLE,
  zhangHu VARCHAR(100),
  createtime DATE,
  description VARCHAR(1000) 
);
  • 查看数据库表
show tables;
  • 查看表的结构
desc 表名
  • 删除一张表
drop table 表名
  • 修改表

①添加一列

alter table 表名 add 字段名 类型(长度)[约束]

②修改列的类型

alter table 表名 modify 要修改的字段名 类型(长度)[约束]

③修改列的列名

alter table 表名 change 旧列名 新列名 类型(长度)[约束]

④删除表的列

alter table 表名 drop 列名

⑤修改表名

rename table 表名 to 新表名

⑥修改表的字符集

alter table 表名 character set 编码
( 三 )对数据库记录进行操作

①插入记录

insert into 表名(列名1,列名2,列名3...) values(值1,值2,值3....)
insert into 表名 values(值1,值2,值3...)

②修改表记录

update 表名 set 字段名=值,字段名=值,字段=值 
update 表名 set 字段名=值,字段名=值,字段=值  where 条件

③删除表记录

delete from 表名 where条件
//全部删除了
delete from 表名 

④查询操作

( 1 )简单查询 :
简单查询语法:
select [distinct] *| 列名,列名 from 表名 [where条件]

查询所有

select * from TZ_zhangwu;

查询部分列

select flname,money from TZ_zhangwu;

查询所有信息使用表别名

select  * from TZ_zhangwu as p;

查询分类名称,使用别名

select flname as p from TZ_zhangwu;

去掉重复值(按照价格)

select distinct(money) from TZ_zhangwu;

将所有消费的价格+10 显示

select flname,money+10 from TZ_zhangwu;
( 2 )条件查询:

查询flname 为 '彤德莱'的信息

select * from TZ_zhangwu where flname = '彤德莱';

查询 money > 100元 的所有信息

select * from TZ_zhangwu where money > 100;

查询flname含有'吃'字的商品信息

select * from TZ_zhangwu where flname like '%吃%';

查询zwid 在(3,6,9)范围内的所有信息

select * from TZ_zhangwu where zwid in (3,6,9);

查询flname含有'吃'字并zwid 为6 的信息

select * from TZ_zhangwu where flname like '%吃%' and zwid = 6;

查询 zwid 为2 或者 6 的信息

select * from where zwid = 2 or zwid = 6;
( 3 )排序:

查询所有信息,按照money进行排序(升序/降序)

升序
select * from TZ_zhangwu order by money asc;
降序
select * from TZ_zhangwu order by money asc;

查询flname 有'吃' 的信息,并且按照money降序排序

select * from TZ_zhangwu where flname like '%吃%' order by money desc;
( 4 )聚合函数:

获取所有money的总和

select sum(money) from TZ_zhangwu;

获取所有商品的平均价格

select avg(price) from TZ_zhangwu;

获得所有账务的个数

select count(*) from TZ_zhangwu;
( 5 )分组操作:

1.添加分类

id (alter table TZ_zhangwu add cid varchar(32);)

2.初始化数据

update TZ_zhangwu set cid='1';
update TZ_zhangwu set cid='2' where  pid in (5,6,7);

根据 'cid' 字段分组,分组后统账务记录个数

select cid,count(*) from TZ_zhangwu group by cid;

根据 'cid'分组,分组统计每组的平均money,并且平均money大于2000元;

select cid,avg(money) from TZ_zhangwu group by cid having avg(money) > 2000;