MySQL基础

SQL = Structured Query Language 结构化查询语言

SQL语言可划分为四种类型:

  1. DDL(Data Defination Language 数据定义语言),
  2. DML(Data Manipulation Language数据操作语言),
  3. DCL(Data Control Language数据控制语言),
  4. 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,sql,数据库)