(总结)带你走进Mysql,快速入门,基础知识整理

Mysql 常用命令

操作数据库

1.create database 数据库名//创建数据库,有的话会报错
2.create database if not exists 数据库名 // 如果没有这个数据库就创建,有的话就不创建
3.create database 数据库名 default character set utf-8 // 创建数据库,并且设置默认编码格式为utf-8
4.show databases //查询所有数据库的信息
5.show create database 数据库名 // 查询某个数据库的创建语句
6.drop database 数据库名 // 删除数据库
7.drop database if exists // 判断数据库存在,删除数据库
8.alter database 数据库名 character set gbk // 修改数据库的编码格式
9.select database(); // 查询当前正在使用的数据库名称
10. use 数据库名 // 使用数据库

操作表

  1. create table student(id int,name varchar(20), password varchar(20)); // 创建表
  2. create table 表名 like 被复制的表名 // 复制表
  3. show tables;// 查询某个数据库中的所有的表名称
  4. desc 表名 // 查询表结构
  5. alter table 表名 rename to 新的表名 // 修改表名
  6. alter table 表名 character set 字符集;// 修改表的字符集
  7. alter table 表名 add 列名 数据类型 // 添加一列
  8. alter table 表名 change 列名 新列名 新数据类型
  9. alter table 表名 modify 列名 新数据类型
  10. alter table 表名 drop 列名 // 删除列
  11. drop table if exists 表名// 删除表如果存在
  12. drop table 表名 // 删除表

增删改表中数据

  1. insert into 表名 (列名1, 列名2. 列名…) values (值1,值2,…); // 添加数据
  2. delete from 表名 [where 条件] // 删除数据(如果没有条件,那么会删除表中所有记录),如果要删除所有记录,不推荐使用delete from 表名—> 有多少条记录就会执行多少次删除操作,推荐使用truncate table 表名 ,效率更高,先删除表,然后再创建一张一样的表
  3. update 表名 set 列名1 = 值1 ,列名2 = 值2…[where 条件];// 修改数据…注意:如果不加任何的条件,那么表中的所有记录全部修改

查询表中的记录

  1. select * from 表名 // 查询表中所有数据
  2. select from where group by having order by limit
  3. distinct 可以去除重复eg:select distinct age from student
  4. 查询为null的时候,要用到is null ,不能使用== 或者!= ,会报错。
  5. like:模糊查询 _ : 代表单个任意字符 % : 代表多个任意字符
  6. 各种运算符: <, >, >=, <= , = , <>, between and , in, is null, and && , or || , not !
  7. 模糊查询:select * from student where name like ‘%w%’// 查询所有姓名包含w的人的所有信息,select * from student where name like ‘_w%’//查询第二个字符为w的人的所有信息

DQL:查询语句

  1. 排序查询:order by 子句 ASC :升序的,默认 DESC:降序,后面可以跟上多个排序条件,这时,只有当前边的条件之一样时,才会判断第二条件
  2. 聚合函数:count: 计算个数; max: 计算最大值, min: 计算最小值, sum: 计算和, avg:计算平均值,聚合函数的计算排除null值(解决方案: 1.选择不包含null的列进行计算2.ifnull函数)eg:select count(1),max(age),min(age),avg(age) from student
  3. 分组查询: 语法: group by : 分组字段
  4. where 和having的区别?
    - where 在分组之前进行限定,如果不满足条件,那么不进行分组,having在分组之后进行限定,如果不满足结果,那么就不会被查询出来。
    - where 后不可以跟聚合函数, having 可以进行聚合函数的判断
  5. 分页查询:limit:(它是mysql中一种方言)select * from student limit 0, 3 // 它是左开右闭的区间

约束

  1. 概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性
  2. 主键约束: primary key
  3. 非空约束: not null
  4. 唯一约束: unique
  5. 外键约束: foreign key

数据库的设计

  1. 多表之间的关系

    • 一对一
    • 一对多
    • 多对多
  2. 数据库设计的范式

    • 概念:设计数据库时,需要遵循的一些规范。要遵循后边的范式要求,必须先遵循前边的所有范式要求
    • 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小
    • 目前的关系数据库中有六种范式: 第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)
      • 第一范式:每一列都是不可分割的原子数据项
      • 第二范式:在1NF的基础上,非码属性必须完全依赖于码(在1NF基础上消除非主属性对主码的部分函数依赖)
        • 函数依赖: A—>B,如果通过A属性(属性组)的值,可以确定唯一B属性的值,那么称B依赖于A
        • 完全函数依赖:A—>B,如果A是一个属性组,则B属性值的确定需要依赖于A属性组中所有的属性值
        • 部分函数依赖:A—>B,如果A是一个属性组,则B属性值得确定需要依赖A属性组中某一些值即可
        • 传递函数依赖:A—>B. B---->,如果通过A属性的值,可以唯一确定B属性的值,在通过B属性的值可以唯一确定C属性的值,那么称C传递函数依赖于A
        • 码:如果在一张表中,一个属性或者属性组,被其他所有属性所完全依赖, 那么称这个属性(属性组)为该表的码
        • 例如:该表中码为:(学号,课程名称)
        • 主属性:码属性组中的所有属性
        • 非主属性:除了码属性组的属性
      • 第三范式(3NF):在2NF的基础上,任何非主属性不依赖于其他非主属性(在2NF的基础上消除传递依赖)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值