MySQL

Mysql

1.1数据库的介绍:

数据库从小到大的分类:

大型数据库Oracle  Db2

中型数据库sqlserver

小型数据库mysql

微型数据库sqlite

1.2数据库的安装

数据库分为服务端和客户端

客户端分为常用的可视化工具类:猫抓小海豚

安装的注意事项:

1.如果安装失败需要在注册表将数据完全删除(运行输入regedit使用ctrl+F 查找并删除)

2.安装的时候一定要更改编码utf-8

3. 允许多个人员多数据库的访问

4. Mysql的端口号  3306  mysql只有用户权限 root

5. 卸载mysql的服务端  同时将文件安装后的文件夹删除 

1.3数据库的数据类型

整数类型int  bigint

小数类型float  double

字符串类型char(10)数据库会分配一个长度为10个空间 长度是不可以 发生改变

Varchar(10)数据库会分配一个长度为10个空间 长度是可以发生改变的

时间类型date  time  datatime  timestamp(时间戳)

大数据类型blob  clob

文本类型text

1.4 sql的分类

DDL数据库定义语言      create  alter  drop (对库和表的操作)

DCL数据库控制语言      grant  revoke

DML数据库的操作语言    insert into    update  delete

DQL数据库的查询语言      select  order by  group by  limit  inner join  left join    right  join

1.5 sql的注意事项

1. mysql不区分大小写

2.数据库的中注释以 #  /**/  --

3.数据库的 “”  ‘’没有区别

1.6sql表语句

1. 查看所有数据库

Show databases 

2. 新建数据库

Create database数据库的库名 

3.删除数据库

Drop database数据库的库名

4. 切换数据库

Use数据库库名

5.查看当前数据库的表

  Show tables

1创建表

Create table表名(

字段名数据类型约束条件,

字段名1数据类型1,

字段名2数据类型2,

)

Sql约束条件:

自增auto_increment  

主键primary key

非空not null

唯一unique

默认值default

外键foreign key(实现多表的联查)

Eg:

  Crate table student(

Id  int  primary key  auto_increment unique,

Stu_id  int not null unique,

Stu_name varchar(20),

Stu_sex default sex(‘男’),

    Stu_age int

)

1.6.2对表结构的操作

查看表结构

Desc表名  查看的是表的 字段名  数据类型 约束条件

查看建表语句

        Show crate table表名

修改表名

Alter table旧表名 rename 新表名

修改字段

    Alter table表名 change 字段名 新字段名 数据类型

添加字段

Alter table表名 add 字段名 数据类型

删除字段

Alter table表名 drop 字段名

删除表

  Drop table表名

1.6.3对表的增 删  改

            增:

[if !supportLists]1. [endif]单条数据的增加

Insert  into表名(字段名) values (字段值)

[if !supportLists]2. [endif]多条数据的增加

Insert  into表名 (字段名) values (字段值1),(字段值2),(字 段3).。。。。

删除:delete from表名 where 删除条件

[if !supportLists]1. [endif]物理删

将数据从数据库中删除

[if !supportLists]2. [endif]逻辑删

将数据的状态从1改为 0  (0 为不显示  1显示)

        修改:

  Update form表名 set  字段名=字段值 where 条件

  跟新一行一列

    Update表 set 字段名 = 字段值 where id = 1

更新一行多列

Update表 set 字段名 = 字段值 where  name=‘张鹏’

更新多行一列

Update表名 set 字段名 = 字段值 where id>=3 and id <=5

跟新多行多列

Update表名 set 字段名 = 字段值 where  id = 2 or id= 3

跟新多个字段

Update表名 set 字段名1= 字段值 1, 字段2 = 字段值2 where 条件

1.6.4对表的查询

  1. 查询所有:(*代表的是通配符 代表所有数据 可以换成 具体的字段查询)

Select * from表名

2.条件查询

Select * from表名 where 条件

1. 区间查询

Select  * from表名 where id >3 and id<5   

Select  * from表名 where id >3 or id<5   

[if !supportLists]2. [endif]排序查询order by

升序asc(mysql中默认的就是asc)

降序desc

Select * from表名 order by stu_age asc/desc

1.分页查询limit初始值,记录行数(每页显示的行数)

  Select * from stu limit 0,3

每页记录数pagesize

页码数pageNumber

Limit(pageNumber-1) * pagesize  ,  pagesize

真分页将查询出来的所有数据直接分页

假分页将查询出来的所有数据在页面展示的时候在进行分页

2.去重查询distinct一般和聚合函数一起使用

3. 模糊查询like

%相当于任意字符

_相当于一个字符

Select * from表名 where  字段名 like ‘%张%’

Select * from表名 where  字段名 like ‘张_’

4. 分组查询group by

Select * from表名 group by sex  =‘男’

5.having实现分组进行查询

1.7聚合函数

1.7.1求和 

  Sum(字段名)

Select  sum (stu_age) from表名

1.7.2求平均

Avg(字段名)

Select  avg(stu_age) from表名

1.7.3求最大值

Max(字段名)

Select  max(stu_age) from表名

1.7.4求最小值

Select  min(stu_age) from表名

1.7.5求总的行数

Select  count(stu_id) from表名

1.8单表查询的公式

Select分组条件 或者 聚合函数

From表名

Where条件 1

Group by分组条件

Having分组后的条件

Order by排序条件

Limit起始位置,记录数

1.9多表联查

--实现使用笛卡尔积 

--内连接  INNER JOIN 

--外连接  左外链  LEFT JOIN

-- 右外联RIGHT JOIN

-- student和中间表  stu_subject 实现相连

  select stu_name,sj.subjectname from student  as stu

  INNER JOIN stu_subject  as stu_sub

你可能感兴趣的:(MySQL)