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