MySQl基础知识

1 什么是MySQL?

2有什么作用?

3 常用的操作

1--- 库级基本操作

  • 1.创建数据库
    create database 库名;

  • 2.删除数据库
    drop database 库名;

  • 3.选中数据库
    use 库名;

  • 4.显示所有数据库
    show databases;

  • 显示数据库的创建语句
    show create database database_name(数据库的名字)

MySQl基础知识_第1张图片

`temp` : 这种写法是避免我们设定的数据库名为内置的关键字;

*!40100 DEFAULT CHARACTER SET utf8 *: 表示:当mysql的版本 >= 4.01.00,
默认的字符集设置为utf8;

  • 演示图片


    MySQl基础知识_第2张图片

创建数据库时的一些细节问题

  • mysql提供的字符集可以通过
    show character set ; 指令来进行查询


    MySQl基础知识_第3张图片
  • 当给数据库设置不同的字符集的时候对添加数据会带来一定的影响;

  • 同样的给数据库设定不同的校对集,也会对数据库操作带来一定的影响;

注意:

  • 在mysql的控制台执行sql语句的时候,为了能够正确的显示中文,需要设置一个控制的字符集
    set names gbk ;
    上面指令表示控制台使用的当前默认的字符集为gbk;

备份\修改\恢复\移植数据库(重点掌握)

  • 修改数据库的字符集和校对集

MySQl基础知识_第4张图片
  • 数据库的备份

  • 备份数据库

基本语法:
mysqldump -u root -p 数据库名 > 备份路径(注意最后不要加分号,因为还有密码要输入)


MySQl基础知识_第5张图片
  • mysqldump是一个执行备份的程序,在
    mysql/bin文件目录下;

  • 备份时,需要用户具有备份的权限;

  • 备份文件的文件名是自己拟定的,名字和后缀可以随便写;

  • 恢复单个数据库

1.建立一个空的数据库,这个数据库最好与你要恢复的数据库的库名字一致;

2.切换到空库里

3.source 备份文件路径

4.测试是否恢复成功

MySQl基础知识_第6张图片

可见是恢复成功了

  • 备份指定数据库的某些表

mysqldump -u root -p 数据库名 表名1 表名2 ... > 备份文件路径
(注意不要加分号,后面还要填写密码)


---表级操作

-创建表

  • create table 表名(
    字段名称 字段类型 字段属性,
    字段名称 字段类型 字段属性,
    字段名称 字段类型 字段属性,
    )engine=innodb charset=utf8;

  • 显示库下面所有的表
    show tables;

  • 查看表的结构
    desc 表名

  • 查看表的创建过程
    show create table 表名;

MySQl基础知识_第7张图片
  • 修改表-之增加列
    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 表名;

  • 多表查询(复杂查询)

笛卡尔集

两表拼接形成一个笛卡尔集,该拼接表的总记录数为左表的记录数*右表的记录数;

MySQl基础知识_第8张图片
笛卡尔集

自连接

将同一张表,当做两张表来使用,这种查询方式称之为自连接查询;

子查询

子查询是指嵌入在其它sql查询语句中的select语句,也叫嵌套查询.

  • 单行子查询:
    单行子查询是指只返回一行数据的子查询语句;

  • 多行子查询
    多行子查询是指只返回多行数据的子查询语句;

  • 表的内连接和外连接

内连接:

内连接实际上就是利用 where 子句对两张(多表)表形成的笛卡尔积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中用的最多的连接查询;
-内连接的基本语法:

内连接的第一种语法
内连接的第二种语法

外连接

有两大类,一类是左外连接 , 还有一类是右外连接

MySQl基础知识_第9张图片
左外连接和右外连接的基本语法
  • 如果左侧的表完全显示我们就说是左外连接, 即左边表的所有记录都会显示出来,即使没有和右边的表匹配到对应的数据 。

  • 如果右侧的表完全显示我们就说是右外连接, 即右边表的所有记录都会显示出来,即使没有和左边的表匹配到对应的数据

完全外连接

如果我们希望左边的表和右边的表都显示记录,这时可以使用完全外连接,但是非遗憾,mysql不支持完全外连接,我们可通过 union 来实现这个效果

MySQl基础知识_第10张图片
  • 数据类型

  • 整数型


    MySQl基础知识_第11张图片
  • 日期时间型


    MySQl基础知识_第12张图片
  • 数值型-小数型
    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 条件;

你可能感兴趣的:(MySQl基础知识)