MySQL基础介绍

1. 什么是SQL

1.1 SQL简介

结构化查询语言

1.2 SQL的标准

SQL89 SQL92 SQL99 SQL03 SQL05

1.3 SQL_MODE

限制除数为零;设置SQL语句的;only_full_groupby;约束日期规范,防止出现零年零月零分(查看sql_mode:select@@sql_mode;)

1.4 SQL类型

DDL : 数据定义语言,库名,库属性,表名,表属性,列(列名,列属性),数据行
DCL : 数据控制语言,权限
DML : 数据操作语言,数据行
DQL : 数据查询语言,数据行

1.5 SQL功能

主要功能:管理、操作数据库对象

库:库名,库属性
表:表名,表属性,列(列名,列属性),数据行

2. MySQL规范性存储限制

2.1 字符集Charset

utf8 : 最大字节长度3个
utf8mb4 : 最大字节长度4个,可以存储emoji表情字符.
mysql> show charset;   ##查看所有的字符集.

2.2 排序规则

mysql> show collation;  ##默认是大小写不敏感(_ci, _bin)

2.4 数据类型

  • 数字类型
 tinyint:1字节可存储255个数字 ===>11111111===>0-2^8-1===>-2^7-2^7-1(3位)  
​ int:4字节长度  ===>0-2^32=>-2^32-2^32-1(10位数)
​ bigint:8字节长度  ===>0-2^64-1 ===>-2^63-2^63-1(20位数)
  • 字符串
char(10): 定长,最多10个字符,占用存储空间一定,最多存储255个字符
varchar(10): 最多存储65535个字符
    变长类型,最多10个,按需分配存储空间
    需要额外1个字符或2个字符存储字符长度
    因素:变长的字符串列,90%几率都是varchar
    具体的原因:  节省空间
enum('m','f'): 枚举类型
    enum('bj','sh','tj','cq')
  • 时间类型
TIMESTAMP:范围为从1000-01-01 00:00:00.000000 至 9999-12-31 23:59:59.999999

timestamp会受到时区的影响.1970-01-01 00:00:00.000000 至 2038-01-19 13:14:07.999999
  • 二进制类型:通过算法,转换成二进制,在录入到数据库
  • JSON : 字典类型;(一个大括号+一个键值对)
-- json的语法格式
mysql> CREATE TABLE t1 (jdoc JSON);

mysql> INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');
-- json的查询语法格式
mysql> SELECT JSON_TYPE('["a", "b", 1]');
mysql> SELECT JSON_TYPE('"hello"');
  • gis : 地理位置

3. 约束

3.1 PrimaryKey(PK) 主键

特点:唯一且非空,一张表中只能有一个主键约束,一般是一个数字列,最好的是无意义的.

3.2 NOT NULL 非空

特点:不能为空。建议业务关键列(索引列),尽量设置成非空

3.3 UNIQUE 唯一约束

特点:不能有重复值

3.4 unsigned 数字列无符号

特点:必须要加载数字列后,表示数字无负数,一般适用于年龄……

4. 其他属性

4.1 AUTO INCREMENT自增长

特点:适用于ID主键列

4.2 DEFAULT默认值

特点:使用在NOT NULL列中,不填写值时,自动生成默认值

4.3 COMMNENT注释

特点:建议每个列都有一个注释

5. DCL控制语言

grant
remove
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • MySQL(一)MySQL基础介绍 最近的学习内容是数据库相关的一些知识,主要以MySQL为主,参考书籍——《My...
    不二臣_463d阅读 415评论 0 0
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 6,160评论 0 9
  • 手动不易,转发请注明出处 --Trance 数据库系统命令: (1).查看存储过程状态:show pro...
    Trance_b54c阅读 1,886评论 0 8
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,989评论 0 13
  • 数据库基础 什么是数据? 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工...
    吴王阖闾阅读 192评论 0 0

友情链接更多精彩内容