MySQL的最基础的学习之路-----菜鸟一枚

                                             喜欢,请多多关注!!!

首先介绍一下几个数据库—— ——

## 主流关系型数据库
- Oracle:甲骨文    闭源          拉里.艾力森
- DB2 IBM:应用与大型系统,UNIX/linux,是oracle的主要竞争对手
- SQL Server 微软 只能在window下运行,net(C#)
- Mysql 免费 开源 买代码

## SQL基本操作
 - SQL语言是操作数据库的语言
 - 每一种数据库都有自己独特的方言

## 数据库类型
  - 主要包括五大类
   - 整数类型  int, big int
   - 浮点树类型   double decimal
   - 字符串类型  char  varchar  text
   - 日期类型  date   datetime  timestamp   time   year
   - 其他数据类型   set。。。

##数据库
1.显示所有的数据库
    - show databases;
2.选定要操作的数据库
   -use 库名;
3.创建新的数据库
  - create database 库名;
4.查看创建数据库的语句
  - show create database 库名;
5.设置默认解码的创建库语句
  - create database demo dafault character set utf8;
6.删除数据库
  - drop database 库名;
7.需求,创建库demo1,要求默认编码utf8,创建完成后,选定这个库
8.显示所有表
  - show tables
9.查询表结构
  - desc  表名(比如id,name,password)

## 创建表
- create table 表名(
列名 数据类型(长度)约束,
列名 数据类型(长度)约束,
。。。
列名 数据类型(长度)约束
);
 create table stu(
id int not null,
name varchar(10),
sex varchar(10)
);

CREATE TABLE `stu` (
  `id` int(11) NOT NULL,
  `name` varchar(10) DEFAULT NULL,
  `sex` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

## mysql的引擎有两种**ENGINE
- ENGINE=InnoDB
   - 支持数据库高功能
      - 事务
      - 外键

- ENGINE=myisam
   -  数据存储基本功能
   -  效率非常高

create table user(
name varchar(16),
age int
)engine=innodb charset=gbk;         备注一下:这里的gbk是编码,你可以设置为utf-8

### SQL分类
  - 数据定义语言  DDL :对表本身
  - 数据操丛语言   DML:对表中的操作  增 删 改
   - 数据查询语言   DQL   select查
  - 事务控制语言  TCL
  - 数据库控制语言 DCL

### DDL不支持事务,运行后马上执行,不能回滚
### DML支持事务

### 数据定义语言 DDL
 -  负责数据结构定义,与创建数据库对象的语言
 -  常用 create alter drop
 -  DDL不支持事务,DDL语句执行之后,不能回滚

### 数据操作语言 DML
  - 对数据库种更改数据操作的语句
  - select insert update delete  ---》CRUD 增删改查
  - 通常把select相关操作,单独拿出来,称之为DQL
  - DML支持事务,在非自动提交模式时,可以利用rollback回滚操作

### 数据查询语言 DQL
  - 筛选,分组,连表查询
### TCL 和 DCL
  - 事务控制语句TCL
  - 负责实现数据库中事务支持的语言,保括 commit  rollback  savepoint等指令
  - DCL数据库控制语言
  - 管理数据库的授权,角色控制等,grant(授权),remove(取消授权)

开始学习 -DDL-对表本身进行操作:

1.修改表名
   - rename table 旧表名 to 新表名
   - rename table user to tb_user;

2.修改表属性(引擎,字符集编码)
   - alter table tb_user engine=myisam charset=utf8;

3.添加字段
  - alter table 表名 add 新字段 新字段的类型  新字段的约束  first;
  - alter table tb_user add id int first;
  - alter table tb_user add(
       gender char(5),
       tel char(11)
       );

4.修改字段名
   - alter table tb_user change 旧字段名 新字段名 新字段数据类型
   - alter table tb_user change gender sex varchar(10);

5.改数据类型
    - 删除某一个字段,添加一个新的
    - 使用命令关键字直接修改

   - alter table 表名  modify 字段名 字段新类型
   - alter table tb_user modify tel varchar(11);


6.修改列的顺序:把什么放在什么后面
   - alter table 表名 modify 目标列名 目标列数据类型 after 某一列列名
   - alter table tb_user modify tel varchar(11) after age;

7.删除列

  - alter table 表名 drop 列名
  - alter table tb_user drop sex;

## 删除表
- drop table 表名;
- DROP TABLE TB_USER;

##TRUNCATE语句
  - truncate删除表内容的原理
  - 先把整张表删除,然后重新创建一个表结构一模一样的空表
  truncate table 表名
  truncate table emp;

开始学习-DML-对表中进行操作-如:增,删,改:

首先我们先创建一个表,然后对这个表进行DML操作!!!

创建员工表emp
create table emp(//员工表
empno int(4),//工号
ename varchar(10),//姓名
job varchar(10),//工种
mgr int(4),//上级领导的工号
hiredate date,//入职时间
sal double(7,2),//工资
comm double(7,2),奖金
deptno int(4)//所属部门编号
);

##INSERT语句:插入,添加

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

  insert into emp(ename,empno,sal,comm) values('zhangsanfeng',1004,5000,2000);
  insert into emp(dname deptno,sal) values('流经',1008,6000);

##UPDATE语句:修改

update emp set ename='lucy' where empno=1001;
update emp set comm=2000 where ename='lilei';
uodate emp set sal=5000 where ename='zhangsanfeng';
update emp setmgr=1001,sal=3000 where ename='liuchuanfeng';

##DELETE语句:删除
   - delete from 表名 where 条件
   - delete from emp where job is null;

DQL:查询操作:

selsct * from 表名      备注一下:这个是全表查询,如果数据过多时,最好不要用这个方法,因为查询速度会很慢!!!

查询某些列中的值
  select name from 表名;
  select name as '姓名' from person;
  select name as '姓名',age from person;
  select name as '姓名',age as '年龄' from person;
  select id as '编号',name as '姓名',age as '年龄' from person;

备注一下,这个as的前面是表里面的,后面是自己取的别名,可以随便取,不过最好能让别人看懂!!!

select empno as '员工编号',ename as '姓名',job as '工种',mgr as '上级领导编号',hiredate as '入职时间',sal as '工资',comm as '奖金',deptno as '所属部门编号' from emp;

上面的东西看懂了,那你对数据库就有一点了解了,下面就是通过条件来查询数据!!!

### WHERE
- where子句用于规定选择的标准
- 如果需要有条件的从表中选取数据,可将where子句添加到select语句的后面
- where子句是决定一条查询语句最后显示多少条目数的关键
- where mgr=7698;(条目数===对象数量)

在where中我们会使用一些运算符,大致与java相同
  1. and or where mgr=7698 and comm>1000;满足2个
  2. and or where mgr=7698 or comm>1000;满足其中一个
  3. like
  4. <,> , <= ,>= , = , !=, <>:不等于的意思
  5. is null  ,   is not null   ,    in ,  not
  6. comm<=100 and comm>=50,    between XX and XX;

### AND  和  OR  运算符
  - 在where子句中两个或者多个条件结合起来,
  - 在结合的结果与java中的&& || 一致
  - 在不明优先级的情况下,请使用()

### SQL  LIKE  操作符
  - like用于在where子句中搜索列中的指定 模式
  - sql 模式 ---》 通配赋
      - %代替一个或者多个字符
      - a%:a开头的   %a:a结尾的   a%a:以a开头,以a结尾

   - _代替一个字符
   - A_  _B   A_B   _A_

### SQL ORDER BY 子句
 - 用于根据指定的列对结果集进行排序
 - 默认升序   从小---大
 - asc为升序,desc降序
 - order by必须写在where语句之后
 - order by 把结果集排序

### limit 子句--分页
  - limit begin,size
  - begin:本页数据的起始行,从0开始
  - size:本页显示多少行

 - select price
 - from t_item
 - order by price limit 0,5;

### select查询语句 的顺序,一定不要搞错了
1、from找到数据源
2、where根据条件进行筛选,确定条目数量(不能带聚合函数,因为不认识聚合函数的结果,如果有就会报错)
3、group by 将数据划分成多个组
4、聚合函数运算
5、having 子句筛选分组条件
6、计算所有表达式
7、确定 select 后的字段
8、使用 order by 排序


 

猜你喜欢

转载自blog.csdn.net/liuke_1998120/article/details/81111146