1.数据库的简单介绍

1.1 什么是数据库,就是一个文件系统,使用标准sql对数据库进行操作

1.2 常见的数据库

oracle  是oracle公司的数据库,是一个收费的大型的数据库
DB2,是IBM公司的数据库。是一个收费的大型数据库;
SQLSever,是微软公司的数据库,是中型的数据库
MYsql数据库 被oracle收购了。
SQLite数据库。嵌入式小型数据库,应用在client开发中;

1.3 关系数据库

关系数据库存储的是实体之间的关系,
使用ER图进行表示实体之间的关系


2. mysql数据库的安装与卸载


3. mysql数据库的存储结

2.1 有多个数据库

在每一个数据库中有多个数据库表
在每一个表中有多个记录
2.2 学习的就是使用标准sql对数据库、数据库表、表中记录的操作


4. sql的介绍 4.1 Structured Query Language, 结构化查询语言
4.2 非过程性语言。直接执行,不须要依赖于其它东西
4.3 sql对数据库、数据库表、表中记录的操作

4.4 sql的分类 

DDL  数据定义语言
创建数据库,创建数据库表的操作
经常使用的语句 create
DML 数据操作语言
对数据库表记录的操作
经常使用的语句 insert update delete
DCL 数据控制语言
DQL 数据查询语言
   对数据库表里面的记录进行查询操作
使用语句 select

5. 使用sql对数据库进行操作 5.1 启动mysql                 //---   mysql -u root -p
5.2 输入安装数据库password
5.3 创建数据库       //--- create database mydatabase;
5.4 获取当前全部的数据库列表   //---show databases;
5.5 使用上述创建 的数据库 mydatabase     //---   use mydatabase
5.5 删除数据库                           drop databaese  mydatabase;
5.6 切换到使用的数据库             use mydatabase;
6. 使用sql对数据库表的操作
6.1创建数据库表     create table mytable (
id int ,
name varchar(40),
sex varchar(40),
)
6.2 获取当前全部的数据库表列表      show tables;
6.3 获取指定数据库表的结构      desc  mytable;
6.4 向指定数据库表中加入 数据  insert into mytable  values(1,'lishi','man');
6.5 获取指定数据库表的内容数据    
6.5.1  获取当中的全部的数据内容  select * from mytable;
6.5.2  获取当中指定字段的数据内容 select name,sex from mytable;
6.5.3  获取当中指定字段的数据内容 select * from mydatabase where id =1;
6.6 mysql 的约束有三个
   6.6.1 not null 非空约束
6.6.2 auto_increment 在主键。让主键是自己主动增长
当使用了自己主动增长后。字段的类型必须是int类
6.6.3 unique  唯王性约束
6.7 创建带约束的表  create table mytable(
                             id int primary key,
 name varchar(50) not null

)

create table stu (
id int primary key auto_increment,
sname varchar(40),
sex varchar(40)
)

    6.8 删除表   drop table mytable;
6.9 对表中的数据进行改动的操作  update mytable  name = 'abd' where id=2;
6.10 对表中的数据进行删除的操作  delete from mytable where id=3;
6.11 查询去除反复的数据
    select distinct * from mytable;
6.12 查询的时候设置别名
   select name as kkk from mytable;
6.13 在查询语句里面可能写运算符
    create  table mytable(
             id int,
 name varchar;
 che int ,
 math int ,
 ength int 
               )
6.13.1  查询表里面math成绩大于40的人  select * from mytables where math>40;
6.13.2  查询表里面math成绩为10和40的学生
select* from mytables where math int(10,40);
6.13.3  模糊查询  
       select*from mytables where name like '%lili%' ;
6.13.4  查看当前执行的数据库
       select databaese();
6.14 order by   对查询的记录进行排序 
    6.14.1 select * from mytables order by math asc ;   升序
6.14.2 select * from mytables order by math desc ;  降序
6.15 count()   统计表中有多少条记录
              select count(*) from mytables;
6.16 sum  求和函数
            select sum(math) from mytables;
6.17 avg  求平均数函数
           select avg (math) from mydatables;
6.18 max min 
          
           select max(math),min(nath) from mytables;

6.19 分组的操作
create table orders(
id int,
product varchar(20),
price float
);
insert into orders values(1,'电视',900);
insert into orders values(2,'洗衣机',100);
insert into orders values(3,'洗衣机',100);
insert into orders values(4,'桔子',9);
insert into orders values(5,'桔子',9);
insert into orders values(6,'手电筒',20);
insert into orders values(7,'手电筒',20);

查询购买了几类商品,而且每类总价大于100的商品
select * from mytables group by product having sum(price)>100;
6.20 select 语句的书写规范
        select...from ...where ...grout by .. having ..order by ..

7. mysql中的数据 类型     7.1字符串型
varchar  char
两者的差别  varchar 的长度是可变的。在使用的时候 必须设定其长度
            char  的长度是不可变的,在使用的时候,能够不设定其 长度 ; 
7.2大数据类型
blob text 
7.3数值型 
   tinyint smallint int bigin float dooble
7.4 逻辑性  bit
7.5 日期型
   date  表示日期的格式
time  表示时间的格式
datetime 即能够表示日期 也能够表示 时间 
timestamp 自己主动生成系统的当前时间,不须要手动加入

8.mysql 中的limit keyword               (1)实现查询表里面某几条记录,用在系统里面分页的操作
        (2)limitkeyword不是标准sql的keyword,仅仅能在mysql里面使用
        * 在其它的数据库也有特有keyword
        比方在oracle里面实现分页使用keyword rownum
        在sqlserver里面实现分页的keyword top


        (3)limitkeyword查询前几条记录 limit 2
         * 练习:查询orders表里面的前三条记录
         select * from orders limit 3;
         select * from orders limit 0,3;


         (4)limitkeyword能够查询第一条到第几条记录 limit 加两个參数。用逗号隔开
         * 练习:查询orders表里面第二条到第四条记录
         select * from orders limit 1,3


         * 在limit里面有两个參数 limit 2,4
         ** 第一个參数表示记录的開始位置,可是開始位置从0開始
         ** 第二个參数从開始位置获取几条记录