MySqL

1.查看MySQl数据库编码

  • show variables like 'char%';
    2.编码解释
  • character_set_client:MySQL使用该编码来解读客户端发送过来的数据,例如该编码为utf-8,如果客户端发送过来不是UTF-8那么就会出现乱码
  • character_set results:MySQL会把数据转换成该编码后,再发送给客户端,例如该编码为UTF-8,那么如果客户端不使用UTF-8来解读,那么就会出现乱码
    3.控制台乱码问题
  • 插入或修改时出现乱码
  • 查询出的数据为乱码
  • 设置变量的语句
    4.指定默认编码

备份与恢复

1.数据库导出SQL脚本
mysqldump -u用户名 -p密码 数据库名>生成的脚本文件路径
2.执行SQL脚本
第一种方式
mysql -u用户名 -p密码 数据库<脚本文件路径
第二种方式
登录mysql
source SQL脚本路径


数据库 -->sql:备份
sql -->数据库:恢复


约束

  • 约束是添加在列上的,用来约束列的
    1.主键约束(唯一标识)
    非空
    唯一
    *****被引用*****
    当表的某一列被指定为主键后,该列就不能为空,不能有重复的值出现
    创建表时制定主键的两种方式
    create table stu(
    sid char(6) primary key,
    sname varchar(20),
    age int
    );
    指定sid列为主键列,即为sid列添加主键约束
    primary key(sid)
    指定sid列为主键列,即sid列添加主键约束
    修改表时指定主键,alter table stu ADD primary key(sid);
    删除主键:alter table stu DROP primary key;
    2.主键自增长
    因为主键列的特性是:必须唯一,不能为空,所以我们通常会指定主键类为整形,然后设置自动增长,这样可以保证在插入数据时主键的唯一和非空特性。
    创建表时指定主键自增长
    sid INT PRIMARY KEY ATUO_INCREMENT
    3.非空约束
    因为某些列不能设置为null值,所以可以对列添加非空约束
    sname varchar(20) not null
    4.唯一约束
    车库某些列不能设置重复的值,所以可以对列添加唯一约束
    sname varchar(20) not null unique
    5.概念模型
    当我们要完成一个软件系统时,需要把系统中的实体抽取出来,形成概念模型。
    列如部门,员工都是系统中的实体。概念模型中的实体最终会成为java中的类,数据库中表
    实体之间还存在着关系,关系有三种
    1对多:例如每个员工都从属一个部门,而一个部门可以有多个员工,其中员工是对方,而部门是一方
    1对1:例如老公和老婆就是一对一的关系,一个老公只能有一个老婆,而一个老婆只能有一个老公。
    多对多:老师与学生的关系就是多对多,一个老师可以有多个学生,一个学生可以有多个老师
    概念模型在java中成为实体类(javabean)
    类就使用成员变量来完成关系,一般都是双向关联!
    多对一双向中关联,即员工关联部门,部门也关联员工
    6.多表查询
    1.分类:
  • 合并结果集(了解)
  • 链接查询
  • 子查询
    合并结果集
  • 要求被合并的表中,列的类型和列数相同
  • union 去除重复行
  • union all 不去除重复行
    slecet * from cd
    union all
    selcet * from sb;
    7.连接查询
    1.分类
  • 内连接
  • 外连接

左外连接
右外连接
全外连接(MySQL不支持)

  • 自然连接(属于一种化简方式)
    2.内连接
  • 方言:select * from 表1 别名1 ,表2 别名2 where 别名1.xx=别名2.xx
  • 标准:select * from 表1 别名1 inner join 表2 别名2 on 别名1.xx=别名2.xx
  • 自然:select * from 表1 别名1 narural join表2 别名2
  • 内连接查询出的所有记录都满足条件
    3.外连接
  • 左外:select * from 表1 别名1 left outer join 表2 别名2 on 别名1.xx=别名2.xx
    左表记录无论是否满足条件都会查询出来,而右表只有满足条件才能查询出来。左表中不满足条件的记录,右表部分都为null
    右外:selcet * from 表1 别名1 right outer join 表2 别名2 on 别名1.xx=别名2.xx
    全链接:可以使用union来完成全链接
    子查询
    查询中有查询(查看select关键字的个数!)
    1.出现的位置:
  • where后作为条件存在
  • from后作为表存在(多行多列)
    2.条件


    图片.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 手动不易,转发请注明出处 --Trance 数据库系统命令: (1).查看存储过程状态:show pro...
    Trance_b54c阅读 1,700评论 0 8
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,857评论 5 116
  • SQL语言基础 本章,我们将会重点探讨SQL语言基础,学习用SQL进行数据库的基本数据查询操作。另外请注意本章的S...
    厲铆兄阅读 5,347评论 2 46
  • 1. 了解SQL 1.1 数据库基础 ​ 学习到目前这个阶段,我们就需要以某种方式与数据库打交道。在深入学习MyS...
    锋享前端阅读 1,139评论 0 1
  • 1、MySQL启动和关闭(安装及配置请参照百度经验,这里不再记录。MySQL默认端口号:3306;默认数据类型格式...
    强壮de西兰花阅读 677评论 0 1