MySQL简介--基础篇

来源:互联网 发布:组态软件学哪个 编辑:程序博客网 时间:2024/05/22 05:03

1 数据库简介

(1) 数据可以就一个文件系统,使用sql语句对数据进行操作。(2) 常见的数据库     2.1 oracle数据库是oracle公司的产品,属于大型收费类型的数据库    2.2 db2 是IBM公司的产品属于收费类型    2.3 SQLServer是属于微软公司的中兴数据库    2.4 MYSQL :属于免费类型的数据很多中小型公司都在用    2.5 sqlLite : 属于小型的数据库,在android自带的数据库操作联系人,短信类型使用。(3)关系型数据库:     比如购物网站,用户id,产品id,订单id,商品名称,统称为实体

2 MySQL数据库的安装

    数据库版本类型的 5.x版本    参考下面的链接使用 [安装链接详细目录](http://pan.baidu.com/s/1qYx4MIg) ;

3 mysql服务器的存储结构

(1)mysql服务器    服务器从硬件的角度来说就是一台电脑,重软件的角度来收就是一天电脑上面安装一堆软件比如tomcat MySQL zookeeper Hadoop等,简单来说就安装了MySQL的电脑被称为mysql服务器 (2)mysql服务器存储的结构,就是一个数据库内部存储了多张表,对表内的数据进行增删改查的操作

4 使用sql对数据库进行操作

(1) 链接数据库 mysql -u root -p (2) 创建数据库 create database rui(3) 显示所有数据库 show databases 注意复数(4)删除数据库 drop database rui(5)切换数据库 use rui  //如果想要创建表或者操作表 需要切换到对应的数据库下面

5 使用sql语句对表行操作

5.1 创建表

create table(id int,name varchar(20),pwd varchar(20));   

5.2 mysql数据类型

字符串类型

用char 还有varchar(20)类型去定义,区别就是长度是否可以变化 从名字也可以进行区别  

大数据类型

BLOB TEXT在大数据中不回把文件存储到数据库黎明,而是存储文件的路径 

数值类型

TINYINT 、SMALLINT、INT、BIGINT、FLOAT、DOUBLbyte       short    int  long    float  double   java中的对应关系

逻辑类型

    BIT

日期型

DATE:用于表示日期 1945-08-15TIME:用于表示时间 19:10:40 在DATETIME中手动添加实际到数据库表黎明,TIMESTAMP 自动把实际添加到表黎明

5.3 MYSQL中约束三种重要而且常用

not null 代表表中的数据不可以为空unique  代表表中的数据不可以重复primary key 主键约束 记录不可以重复, auto_inrement自动增长(按照输入id的顺序可以自动排序)例子 create table person (    id int primary key ,    username varchar(40) not null,    sex varchar(20))show tables 显示当前数据库所有的表drop   table rui 删除表    

7 使用SQL语句对表中的数据进行增删改查的操作

插入数据

 insert into rui values(1.'rui','123') 注意 当增加的数据是int类型直接写入数据 如果是字符串类型或者日期类型记住加单引号例子 create table stu(id int primary key auto_increment, name varchar(20)); 注意 primary key 代表主键不可以重复,auto_inrement 代表表中数据可以自动排序;

修改数据

update user set username='qqq',password='999' where id=1; 修改表中的数据 注意关键字update set后面加字段 where 后面跟条件 

删除表里面的数据

    delete from 表名称 where 条件       delete from user where id=1;  

查询指令

    select * from user;    select * from user where id=2;    select username as u1,chinese as c1 from user;   注意as作为别名可以省略    select distinct * from 表名;    select * from user where chinese > 60;    select * from user where english in (80,90);    select * from user where chinese=100 and english=   30;    写法一,select * from user where chinese >=70 and chinese <=100;    写法二,select * from user where chinese between 70 and 100;    select * from user where username like '%a%';   模糊匹配查询,通配符代表一个或者多个    select * from user order by chinese asc;   默认是升序查询可以不用    select * from user order by english desc;  降序查询

8 聚合函数

select count(*) from user;select sum(chinese) from user;      select sum(chinese),sum(english) from user;select avg(chinese) from user;select sum(chinese)/count(*) from user;select max(字段) from...select min(字段) from...select max(chinese),min(english) from user; 

9 分组查询

    分组查询每类商品价格总和        select name,sum(price) from orders group by name;                 select name,sum(price) from orders group by price having sum(price)>66;        注意   where后面不跟聚合函数 需要将where换成having

10 分页查询

        limit 3  代表的前三条记录         limit 0,3 代表前三条记录 行数是从0开始 去三个数   

问题总结注意事项汇总

1 mysql数据库最大存储数据是4G容量
2 存储的如果是图片或者视频等数据实际上存储的的其所做的路径
3 在mysql数据类型中
   datatime 如果没有输入 默认是为null
   TIMESTAMP 类型  自动存储系统的当前时间
 4 order by 默认是升序排序,降序排序desc
 5 int类型的长度是11个
 6 primary key = unique 都是代表数据惟一不可以重复
 
 7 别名as

chinese+math+English这个字段的别名就是sum select name,chinese+math+English as sum from table;

8 通配符  _ 代表一个占位符 %代表一个或者多个占位符
9 <>代表是的不等于 在where条件判断中
10 mysql服务目录结构信息
这里写图片描述

11 中文乱码的问题解决

原因是因为在window窗口输入的gbk编码,MySQL client编码是utf8编码因此在MySQL client配置文件修改为gbk就可以了。在mysql服务内部既有MySQL client 又又 MySQL server。注意mysql服务一定要重启。

12 delet * from table 还有truncate table区别?

区别一:delete 是属于一条条输出truncate table是 属于将表全部删除,重新在创建个表区别2 : delete 当开启事务的时候可以进行rollback 而truncate就不可以

13 最终要的一条原则

查询语句:S…F…W…G…H…Oselect  from  where group by  having order by 通常来说查询是按照这个顺序,在where后面不可以跟聚合函数,将where换成having

14 详细笔记链接下载地址
http://pan.baidu.com/s/1kUIx5Oj