数据库的介绍
数据库从大到小分类:
① 大型数据库 Oracle Db2
② 中型数据库 sqlserver
③ 小型数据库 mysql
④ 微型数据库 sqlite
数据库的安装
数据库分为服务端和客户端。客户端分为常用的可视化工具:猫爪、小海豚
安装的注意事项:
1.如果安装失败,则需要注册表将数据完全删除(运行regedit 使用Ctrl+F 查找并删除)
2.安装时一定要更改编码UTF-8
3.允许多个人员多数据的访问
4.Mysql的端口号3306 mysql只有用户权限 root
5.卸载mysql的服务端,同时将文件安装后的文件夹删除
数据库的数据类型
① 整数类型:int、bigint
② 小数类型:float、double
③ 字符串类型:char(10)不可变字符串、varchar(10)可变字符串
④ 时间类型:data、time、datatime、timestamp(时间戳)
⑤ 大数据类型:blob、clob
⑥ 文本类型:text
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
sql的注意事项
1.mysql不区分大小写
2.数据库中注释以 # /**/ –
3.数据库“”和‘’没有区别
sql语句表
增
① Create database 库名:新建数据库
② Create table 表名(字段名 数据类型 约束条件,字段名1 数据类型1,字段名2 数据类型2):新建表
Eg:Craete table student(Id int primary key auto_increment,stu_name varchar(20),stu_sex default sex('男'),stu_age int)
③ Insert into 表名(字段名) values (字段值):单条数据增加
④ Insert into 表名 (字段名) values (字段值1),(字段值2),(字段3)......:多条数据增加
⑤ Alter table 表名 add 字段名 数据类型:添加字段
Sql的约束条件:
主键 primary key
自增 auto_increment
非空 not null
唯一 unique
默认值 default
外键 foreign key (实现多表的联查)
删
① Drop database 库名:删除数据库
② Drop table 表名:删除表
③ Alter table 表名 drop 字段名:删除字段
④ delete from 表名 where 删除条件:删除符合某些条件的数据
⑤ 物理删:将数据从数据库中删除
⑥ 逻辑删:将数据的状态从1改为0(0为不显示,1为显示)
改
① Use 库名:切换数据库
② Alter table 旧表名 rename 新表名:修改表名
③ Alter table 表名 change 字段名 新字段名 数据类型:修改字段
④ Update form 表名 set 字段名=字段值 where 条件:改变特定条件
1.Update 表 set 字段名 = 字段值 where id = 1:更新一行一列
2.Update 表 set 字段名 = 字段值 where name=‘张鹏’:更新一行多列
3.Update 表名 set 字段名 = 字段值 where id>=3 and id <=5:更新多行一列
4.Update 表名 set 字段名 = 字段值 where id = 2 or id= 3:更新多行多列
5.Update 表名 set 字段名1= 字段值 1, 字段2 = 字段值2 where 条件:更新多个字段
查
① Show databases:查看所有数据库
② Show tables:查看当前数据库的所有表
③ Desc 表名:查看表结构(查看的是表的 字段名 数据类型 约束条件)
④ Select * from 表名:查询所有(*代表的是通配符 代表所有数据 可以换成 具体的字段查询)
⑤ Select * from 表名 where 条件:条件查询
⑥ Select * from 表名 where id >3 and id<5 、 Select * from 表名 where id >3 or id<5:区间查询
⑦ Select * from 表名 order by stu_age asc/desc:排序查询(order by 升序asc/降序desc 数据库默认是asc)
⑧ Select * from stu limit 0,3:分页查询( limit 初始值,记录行数(每页显示的行数))
每页记录数 pagesize、页码数 pageNumber。 Limit(pageNumber-1) * pagesize , pagesize
真分页 将查询出来的所有数据直接分页
假分页 将查询出来的所有数据在页面展示的时候在进行分页
⑨ distinct:去重查询
⑩ like:模糊查询(% 相当于任意字符,_ 相当于一个字符)(Select * from 表名 where 字段名 like ‘%张%’ Select * from 表名 where 字段名 like ‘张_’)
⑪ Select * from 表名 group by sex =‘男’:分组查询(group by)
⑫ having:实现分组进行查询
⑬ Show crate table 表名:查看见表语句
聚合函数
① Select sum (stu_age) from 表名:求和(Sum(字段名))
② Select avg(stu_age) from 表名:求平均值(Avg(字段名))
③ Select max(stu_age) from 表名:最大值(Max(字段名))
④ Select min(stu_age) from 表名:最小值(Min(字段名))
⑤ Select count(stu_id) from 表名:求总和的行数
单表查询的公式
Select 分组条件 或者 聚合函数
From 表名
Where 条件 1
Group by 分组条件
Having 分组后的条件
Order by 排序条件
Limit 起始位置,记录数
多表联查
- 实现使用笛卡尔积
- 内连接 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
ON stu.stu_id = stu_sub.stu_id
-- 中间表和 subject 表实现相连
INNER JOIN `subject` as sj
ON stu_sub.subjectnumber = sj.subjectnumber
两表联查:
共同字段sid,查询表1的name,age,表2的成绩
SELECT 表1.字段,表1.字段,表2.字段 FROM 表1,表2 WHERE 表1.sid = 表2.sid
SELECT stu1.sname,stu1.sage,stu2.cj FROM stu1,stu2 WHERE stu1.sid = stu2.sid
SELECT stu1.sname,stu1.sage,stu2.cj FROM stu1 LEFT JOIN stu2 ON stu1.sid = stu2.sid
网友评论