E-R模型
基本元素:实体,联系,属性
E表示entry,实体:一个数据对象,描述具有相同特征的事物
R表示relationship,联系:表示一个或者多喝实体之间的关联关系,关系的类型包括一对一,一对多,多对多
属性:实体的某一特征称为属性
关系也是一种数据,需要通过一个字段存储在表中
1.实体A对实体B为1对1,则在表A中或表B中创建一个字段,存储另一个表的主键值
2.实体A对实体B为1对多:在表B中创建一个字段,存储A的主键值
3.实体A对实体B为多对多:新建一张表C,这个表只有两个字段,一个用于寻出A的主键值,一个用于存储B的主键值
命令行客户端
连接:mysql -uroot -p 回车
输入密码。
查看所有仓库:
show databases;
使用某个仓库:
use ce;(必须要写)
如果出现乱码,将显示数据改为国标形式:
set charset gbk;
然后可以使用各种数据库语句
查看一共的表:
show tables;
查看某个表结构:
desc 表名;
或:show create table students;
备份或者恢复
内置函数
字符串函数
拼接字符串concat(str1,str2)
select concat(12,34,'ab')
select name,hometown,concat(name,‘的家乡是’,hometown) from students
包含字符个数length(str)
select length(‘abc’)
一个中文长度是3,其他的都是1
查询名字是两个字的学生:
select * from students where length(name)=6
截取字符串
截取字符串的左边或者右边2位:select left/right(‘abc’,2)
select substring(‘abc’,pos,len)返回字符串str的位置pos起len个字符
去掉空格
ltrim(str)返回删除了左空格的字符串str
rtrim(str)返回删除了右空格的字符串str
trim(str)返回删除了左右空格的字符串str
大小写转换
lower(str);
upper(str);
数学函数
求四舍五入值round(n,d),n表示原数,d表示小数位置,默认为0
随机从一个表中取一条记录
select *,rand() from students order dy rand() limit 1
日期时间函数
%s 获取秒,返回秒数
select date_format(now(),'%Y/%m/%d/%H/%i/%s')
流程控制
运行结果:
自定义函数:
例如:
调用
ceate procedure proc_stu()
begin
select *from students;
end
调用:call pros_stu
视图
视图只是一个查询,而不是一个真正的表
语句是:create view v_stu as
事务
开始:begin
运行一系列语句后
若每条语句运行成功,提交:commit
若某一条语句没有运行成功,回退:rollback
索引
查看索引:
show index from 表名
在Mysql命令客户端运行时:
创建表的时候三种方式添加索引:
create table create_index(
id int primary key,(字段是主键时自动添加索引)
name varchar(10) unique,(有unique时自动添加索引)
age int,
key(age)(key语句添加索引)
)
对于已经存在的表添加索引:
create index 索引名称 on 表名(字段名称(长度))
create index i_name on test(name(10))
当字段类型不是字符串时 ,不需要添加长度
create index i_age on test(age)
删除索引:drop index 索引名称 on 表名
虽然索引能提高查询速度,但是也有缺点:
分析查询
在查询语句前面加上explain
外键
主表约束从表某个字段的取值范围
从表:被约束的表,主表:约束从表的表
方式一,创建表的时候添加外键:
修改密码
打开仓库内mysql数据库,在里面找到user可以看到加密的密码
忘记root账户密码