数据库第四天笔记
命令行客户端
-
windows:
- 方式1:在电脑左下角搜索 mysql command cline client 点击进入
- 输入密码按下回车即可
- 方式2:
- 进入到mysql的bin目录中
- C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin
- 在当前路径下输入cmd打开黑窗口
- 输入:mysql -uroot -p 按下回车输入密码即可
- 进入到mysql的bin目录中
- 方式1:在电脑左下角搜索 mysql command cline client 点击进入
-
mac:打开终端直接输入:mysql -u root -p 按下回车输入密码
-
看到mysql>即为连接成功
命令行客户端操作数据库
-
查看所有的数据库
- show databases;
-
使用数据库
- use 数据库名;
-
查看正在使用的数据库
- select database();
-
创建数据库
- create database 数据库名 charset=utf8;
-
删除数据库
- drop database 数据库名;
命令行客户端操作数据表
-
查看当前库下所有的表
- show tables;
-
查看表结构
- desc 表名;
-
查看创建表的语句
- show create table 表名;
-
修改编码格式:
-
charset 编码格式;
- gbk utf8
-
内置函数
-
函数的作用:处理一些数据
-
关键字:function
-
字符串函数
- 拼接字符串:concat(str,str2...)
- Str:string字符串
- 获取字节的个数:length(str)
- 获取字符的个数:char_length(str)
- 截取字符串
- 从左侧截取:left(str,len)
- len:长度
- 从右侧截取:right(str,len)
- 从指定位置截取:substring(str,pos,len)
- pos:开始位置
- 从左侧截取:left(str,len)
- 去除空格:
- 去左侧空格:ltrim(str)
- 去右侧空格:rtrim(str)
- 去两端空格:trim(str)
- 大小写转换
- 转大写:upper(str)
- 转小写:lower(str)
- 拼接字符串:concat(str,str2...)
-
数学函数
- 四舍五入:round(n,len)
- n小数,len保留几位小数
- 求x的y次方:pow(x,y)
- 求圆周率:PI()
- 求随机数:0-1之间的浮点数
- rand()
- 四舍五入:round(n,len)
-
日期时间函数
-
获取当前日期:current_date()
-
获取当前时间:current_time()
-
获取当前日期和时间:now()
-
日期时间格式化:date_format(时间,格式)
-
%Y 获取年,返回完整年份 %y 获取年,返回简写年份 %m 获取月,返回月份 %d 获取日,返回天值 %H 获取时,返回24进制的小时数 %h 获取时,返回12进制的小时数 %i 获取分,返回分钟数 %s 获取秒,返回秒数
-
-
流程控制(掌握)
-
作用:可以完成多个条件的运算,及给出对应的输出
-
格式:
-
select 字段,case when 条件 then 输出 when 条件 then 输出 else 输出 end from 表名; case 开始流程控制 end 结束流程控制 when 如果 then 则 else :以上条件匀没有成立则提示else中的输出内容
-
自定义函数
-
函数的作用:处理一些数据
-
function
-
格式:
-
create function 函数名(变量名 类型) returns 返回数据的类型 beigin return 效果作用; end;
-
-
删除自定义函数:drop function 函数名;
修改分割符
- 结束符,分割符,sql中默认的结束符号是分号;
- delimiter 符号
存储过程
-
关键字:procedure
-
sql语句运行是需要消耗时间编译的,当sql语句需要大量反复的执行的时候,就可以将这些sql定义为存储过程
-
好处:将sql语句定义为存储过程后,前期定义的时候编译一次,后续多次运行使用,就不需要编译了,节省了编译所消耗的时间
-
存储的就是sql语句
-
定义存储过程
-
格式:
-
create procedure 存储过程的名() begin sql语句; end;
-
-
-
调用:call 存储过程名
-
删除:drop procedure 存储过程名;
视图
-
关键字:
-
view
-
-
不定义视图:当有某条复杂的连表的sql语句,需要在多个地方多次使用执行,就会对数据库造成很大的读写压力
-
定义视图的好处:
-
将这条复杂的连表的sql语句,定义成视图后,就可以减少对数据库的读写压力
-
-
定义视图:
-
create view 视图名 as 复杂的sql;
-
-
查看视图:
- show tables;
-
删除视图:
- drop view 视图名;
事务
-
事务:就是一系列操作的集合
-
显示开启事务作用:
-
手动开启事务能够保证数据的完整性,要么都成功,要么都失败
-
当同时运行大量的sql的时候,隐式的事务begin和commit需要执行n多次
- 这个时候可以手动显示开启事务后,在运行sql,最后手动commit,这样可以提高效率
-
-
隐式事务:任何一条sql语句在运行的时候默认都会先运行begin结束后都会使用commit
-
操作:
-
显示开启事务:begin
-
提交事务:commit
-
回滚事务:rollback
-
索引 -index
-
可以理解为编号
-
作用:
-
好处就是能够更快速的查询到数据
-
缺点就是会降低:添加,修改,删除数据的速度。
-
-
添加索引
-
方式1:创建表的时候
-
create table 表名( 字段 类型 约束, 字段2....., key(字段) ) key(字段)会添加索引, primary key 主键自带索引 unique 唯一自带索引
-
-
方式2:表存在的时候
-
create index 索引名 on 表名(字段名);
-
-
-
查看索引:
-
show index from 表名; key_name字段下就是索引的名
-
-
删除索引:
-
先查询到索引的名称: 在根据索引名删除 drop index 索引名 on 表名;
-