MySQl基础知识
1 什么是MySQL?
2有什么作用?
3 常用的操作
1--- 库级基本操作
-
1.创建数据库
create database 库名; -
2.删除数据库
drop database 库名; -
3.选中数据库
use 库名; -
4.显示所有数据库
show databases; -
显示数据库的创建语句
show create database database_name(数据库的名字)
`temp` : 这种写法是避免我们设定的数据库名为内置的关键字;
*!40100 DEFAULT CHARACTER SET utf8 *: 表示:当mysql的版本 >= 4.01.00,
默认的字符集设置为utf8;
-
演示图片
创建数据库时的一些细节问题
-
mysql提供的字符集可以通过
show character set ; 指令来进行查询
-
当给数据库设置不同的字符集的时候对添加数据会带来一定的影响;
-
同样的给数据库设定不同的校对集,也会对数据库操作带来一定的影响;
注意:
- 在mysql的控制台执行sql语句的时候,为了能够正确的显示中文,需要设置一个控制的字符集
set names gbk ;
上面指令表示控制台使用的当前默认的字符集为gbk;
备份\修改\恢复\移植数据库(重点掌握)
-
修改数据库的字符集和校对集
-
数据库的备份
-
备份数据库
基本语法:
mysqldump -u root -p 数据库名 > 备份路径(注意最后不要加分号,因为还有密码要输入)
-
mysqldump是一个执行备份的程序,在
mysql/bin文件目录下; -
备份时,需要用户具有备份的权限;
-
备份文件的文件名是自己拟定的,名字和后缀可以随便写;
-
恢复单个数据库
1.建立一个空的数据库,这个数据库最好与你要恢复的数据库的库名字一致;
2.切换到空库里
3.source 备份文件路径
4.测试是否恢复成功
可见是恢复成功了
-
备份指定数据库的某些表
mysqldump -u root -p 数据库名 表名1 表名2 ... > 备份文件路径
(注意不要加分号,后面还要填写密码)
---表级操作
-创建表
-
create table 表名(
字段名称 字段类型 字段属性,
字段名称 字段类型 字段属性,
字段名称 字段类型 字段属性,
)engine=innodb charset=utf8; -
显示库下面所有的表
show tables; -
查看表的结构
desc 表名 -
查看表的创建过程
show create table 表名;
-
修改表-之增加列
alter table 表名 add 字段名 字段类型 字段属性; -
修改表-之修改列
alter table 表名 change 旧的字段名 新字段名 字段类型 字段属性; -
修改表-之修改列属性
alter table 表名 modify 字段名 新字段类型 新字段属性; -
修改表-之减少列
alter table 表名 drop 字段名; -
修改表之增加主键
alter table 表名 add primary key(主键所在字段名); -
修改表之删除主键
alter table 表名 drop primarg key; -
修改表之增加索引
alter table 表名 add index (索引名); -
修改表之删除索引
alter table 表名 drop index 索引名; -
清空表的数据
truncate 表名; -
多表查询(复杂查询)
笛卡尔集
两表拼接形成一个笛卡尔集,该拼接表的总记录数为左表的记录数*右表的记录数;
笛卡尔集自连接
将同一张表,当做两张表来使用,这种查询方式称之为自连接查询;
子查询
子查询是指嵌入在其它sql查询语句中的select语句,也叫嵌套查询.
-
单行子查询:
单行子查询是指只返回一行数据的子查询语句; -
多行子查询
多行子查询是指只返回多行数据的子查询语句; -
表的内连接和外连接
内连接:
内连接实际上就是利用 where 子句对两张(多表)表形成的笛卡尔积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中用的最多的连接查询;
-内连接的基本语法:
外连接
有两大类,一类是左外连接 , 还有一类是右外连接
左外连接和右外连接的基本语法-
如果左侧的表完全显示我们就说是左外连接, 即左边表的所有记录都会显示出来,即使没有和右边的表匹配到对应的数据 。
-
如果右侧的表完全显示我们就说是右外连接, 即右边表的所有记录都会显示出来,即使没有和左边的表匹配到对应的数据
完全外连接
如果我们希望左边的表和右边的表都显示记录,这时可以使用完全外连接,但是非遗憾,mysql不支持完全外连接,我们可通过 union 来实现这个效果
-
数据类型
-
整数型
-
日期时间型
-
数值型-小数型
Float:小数
单精度浮点型:float,范围大约是-3.4E+38到-1.1E-38、0和1.1E-38到3.4E+38
Decimal:定点型
语法:decimal(整体的长度,小数位是几位); 如: decimal(10,2);一般用于价格;
-
数据的增删改查操作
-
插入数据
insert into 表名(col1,col2,……) values(val1,val2……); -- 插入指定列
insert into 表名 values (,,,,); -- 插入所有列
insert into 表名 values -- 一次插入多行
(val1,val2……),
(val1,val2……),
(val1,val2……); -
修改数据
update 表名 set 字段名=新值,字段名=新值 where条件; -
查看数据
select 字段列表 from 表名 where条件字句 【group by字句 having字句 order by字句 limit 字句】; -
删除数据
delete from 表名 where 条件;