MySQL简单笔记一
系列链接
mysql:
启动停止 net start/stop mysql
登陆 mysql -u用户名 -p密码
退出 quit;exit;
查看所有数据库 show databases;
新建数据库 create database 数据库名;
test数据库给用户用 一般不用
进入数据库 ues 数据库名
查看当前数据库的表 show tables;
查看表的结构 desc 表名;
查看某张表的数据 select * from 表名;
sql语句官方建议大写 我们一般小写,本身不区分大小写
SQL语句分类
- DDL:数据定义语言 Data Definition Language
- 对象的创建 删除 修改 :建库 建表 修改表 删除表 删库 create drop alter
- DML:数据操作语言 Data Manipulation Language
- 增删改; 添加数据 删除数据 修改数据 insert update delete
- DCL:数据控制语言 Data Control Language
- 创建用户 分配账号密码 分配权限 grant revoke
- DQL:数据查询语言 Data Query Language
- 查询: select
- 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 | - 一阶范式:表中不能套表所有的数据库系统,都不会违反一阶范式 |
语句:
- 数据库
- 创建 create database 库名;
- 删除 drop database 库名;