MySQL简单笔记一

系列链接

MySQL简单笔记一

MySQL简单笔记二之DDL

MySQL简单学习笔记三之DMl和DQL

MySQL语法的Oracle练习表分享

mysql:

启动停止 net start/stop mysql

登陆 mysql -u用户名 -p密码

退出 quit;exit;

查看所有数据库 show databases;

新建数据库 create database 数据库名;

test数据库给用户用 一般不用

进入数据库 ues 数据库名

查看当前数据库的 show tables;

查看表的结构 desc 表名;

查看某张表的数据 select * from 表名;

sql语句官方建议大写 我们一般小写,本身不区分大小写

SQL语句分类

  1. DDL:数据定义语言 Data Definition Language
    • 对象的创建 删除 修改 :建库 建表 修改表 删除表 删库 create drop alter
  2. DML:数据操作语言 Data Manipulation Language
    • 增删改; 添加数据 删除数据 修改数据 insert update delete
  3. DCL:数据控制语言 Data Control Language
    • 创建用户 分配账号密码 分配权限 grant revoke
  4. DQL:数据查询语言 Data Query Language
    • 查询: select
  5. DTL:数据事务语言 Data Trasaction Language
    • 执行事务操作

表:

  • 每列数据类型

    • int:整型 从-231到231-1的整型数据。存储大小为 4个字节
    • double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
    • decimal:泛型型,在表金钱方面使用该类型,因为不会出现精度缺失问题;
    • char:固定长度字符串类型:char(长度)char(10):该列最大存储10个字符,我的实际字符5,后面会用空格填满
    • varchar:可变长度字符串类型;
    • text:字符串类型;直接使用改类型,不需要规定长度,会多使用一个专门的空间存储长度
    • blob:字节类型;存放二进制字节编码 图片(小说)要真正存储二进制数据,一般结合高级语言
    • date:日期类型,格式为:yyyy-MM-dd;
    • time:时间类型,格式为:hh:mm:ss
    • timestamp:时间戳类型;yyyy-MM-dd hh:mm:ss
    • datetime:日期时间yyyy-MM-dd hh:mm:ss **timestamp和datetime的范围不同 **

    有复合主键 一般不用 底层 索引 底层 二叉树

唯一键约束:

该列数据不能重复
唯一键可以为空 MysQL允许多列为空(SQL Server只允许一列为空)
唯一键可以多个
唯一约束的创建:就是创建一个唯一的索引

检查约束

MySQL不支持,(Sqlserver和oracle都支持)

外键约束:

约束表和表之间的关系
外键所在的表就是子表
子表引用数据的表就是主表
字表的外键列引用主表的主键列(或者唯一键)

范式:

设计数据库的一个标准,范式的等级越高,冗余越低,一般的项目到瑟三阶范三(传统项目)

互联网项目:大数据,冗余大,基本都是单表
将一个表的数据拆成多个表:降低冗余,降低查询效率

1
2
3
-  一阶范式:表中不能套表所有的数据库系统,都不会违反一阶范式
- 二阶范式:满足一阶范式,非主键列必须依赖于主键。一个表中必须要主键 函数依赖:y=f(x)x-->y 删除异常 更新异常 插入异常
- 三阶范式:满足二阶范式,不存在传递依赖 x-->y y-->z x-->z

语句:

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