MySQL基础
Posted 文仙草
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL基础相关的知识,希望对你有一定的参考价值。
SQL = Structured Query Language 结构化查询语言
SQL语言可划分为四种类型:
- DDL(Data Defination Language 数据定义语言),
- DML(Data Manipulation Language数据操作语言),
- DCL(Data Control Language数据控制语言),
- DQL(Data Query Language数据查询语言)。
一、数据库基础的基础概念
mysql语句可以单行或者多行书写,用分号结尾;
可以用缩进和空格增强语句可读性(但是空格和缩进不影响语句执行,与python不同!)
MySQL不区分大小写,建议关键字(比如SELECT, SHOW, CREATE, FROM等)用大写。
二、常用数据类型(列类型)
每列数据都需要有列名以及列数据类型,有的数据类型还需要提供最大数据长度。
- int:整型
- decimal:浮点型,一个对10进制比较精确的类型,一般用在存储钱的应用场景。
- double: 浮点型。例如:double(5,2) 表示最多5位,其中包含2位小数,即最大值为999.99
- char:固定长度字符串类型,char(n)表示固定长度为n的字符串,如果数据长度不足n,则用空格补位。
- mysql 5.0版本及以上,n 表示字符数(不是字节),范围( 0 ~ 255 )
- 固长适合用于存储用户编号、电话号等长度统一固定的信息。
- varchar:可变长度字符串类型,varchar(n)表示最大长度为n的字符串,如果数据长度不足n,不添加空格补位。
- mysql 5.0版本及以上,n表示字符数(不是字节),即varchar(100)表示最大可存放100个字符,无论存放的是数字、字母还是汉字(utf8下每个汉字3字节)。
- varchar的长度范围(0~65535)字节。
- 因为是可变长度,所以需要有单独的空间存储数据的实际长度值。如果字符数小于等于255,则需要1个字节存储字符长度;如果字符数大于255,则需要2个字节保存字符长度。
- 由于字符数大于255后保存字符长度需要2个字节,所以实际可用的有效长度最大为65533字节。
- 可存储的字符串最大长度受多重因素限制,包括所使用的字符集、其他列的数据类型(因为表里每一行数据的最大长度为65535字节,如果一行数据有多个列,则所有列的字节长度综合不能超过65535)等。例如,一个数据表只有数据类型为varchar的一列数据,字符集为UTF-8(一个中文字符 = 3字节,一个英文字符=1字节),则最多可存储(65535-2)/3=21844个中文字符。
- 适合用于存储用户名等长度不固定的字符串。
- 更详细的讲解可以查看此博文
- text:mysql独有的字符串类型,可变长度字符串,用于存储超大的数据,最大长度为2^16-1。
- longtext:类型同上,最大长度为2^32-1。
- mediumtext:类型同上,最大长度为2^24-1。
- tinytext:类型同上,最大长度为2^8-1。
*上面的长度指的是字节长度,比如一个中文字符是3个字节,所以varchar
除了上述类型,还有其他数据类型,可以在遇到的时候查手册。。。
三、MySQL语言-DDL
1. 查看数据库:SHOW DATABASES; (注意:大写,“databases”最后一个“s”不要忘了,因为使用查看数据库会显示所有存在的数据库,所以用复数形式)
2. 切换(选择要使用的)数据库:USE 数据库名;
3. 创建数据库:CREATE DATABASE [IF NOT EXISTS] 数据库名 [CHARSET = utf8];(注意:因为创建一个数据库,所以DATABASE后面没有S,而EXIST后面有一个S,单数的英语语法。中括号[]的是可选语句,第一个中括号代表如果不存在想要创建的数据库则创建,从而避免因创建同名的数据库导致语句报错。第二个中括号表示可以设定编码。)
4. 删除数据库:DROP DATABASE [IF EXISTS] 数据库名; (注意:因为删除一个数据库,所以DATABASE后面没有S,而EXIST后面有一个S,单数的英语语法。中括号代表如果存在想要删除的数据库,则删除,以避免因找不到要删除的数据库而导致语句报错。)
5. *修改数据库编码:ALTER DATABASE 数据库名 CHARACTER SET utf8; (此功能用于改变数据库的编码类型,比如还可以改为utf8mb4,不过该语句不算常用,知悉即可。)
以上是关于MySQL基础的主要内容,如果未能解决你的问题,请参考以下文章