1.数据库的简介

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

1.2 常见的数据库


oracle  是oracle公司的数据库,是一个收费的大型的数据库

DB2,是IBM公司的数据库,是一个收费的大型数据库;

SQLSever,是微软公司的数据库,是中型的数据库

MYsql数据库 被oracle收购了,

SQLite数据库,嵌入式小型数据库,应用在客户端开发中;


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 输入安装数据库密码

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 关键字


             (1)实现查询表里面某几条记录,用在系统里面分页的操作

        (2)limit关键字不是标准sql的关键字,只能在mysql里面使用

        * 在其他的数据库也有特有关键字

        比如在oracle里面实现分页使用关键字 rownum

        在sqlserver里面实现分页的关键字 top



        (3)limit关键字查询前几条记录 limit 2

         * 练习:查询orders表里面的前三条记录

         select * from orders limit 3;

         select * from orders limit 0,3;



         (4)limit关键字可以查询第一条到第几条记录 limit 加两个参数,用逗号隔开

         * 练习:查询orders表里面第二条到第四条记录

         select * from orders limit 1,3



         * 在limit里面有两个参数 limit 2,4

         ** 第一个参数表示记录的开始位置,但是开始位置从0开始

         ** 第二个参数从开始位置获取几条记录