一、数据库的基本操作

创建数据库

  1. CREATE DATEBASE database_name;

删除数据库

  1. DROP DATABASE database_name;

查看数据库的定义

  1. SHOW CREATE DATABASE test_db

二、数据表的基本操作

创建表

  1. CREATE TABLE <表名>
  2. (
  3. 字段名1,数据类型[列级别约束条件][默认值],
  4. 字段名2,数据类型[列级别约束条件][默认值]
  5. )

使用主键约束

  1. 1.字段名1,数据类型 PRIMARY KEY [默认值]
  2. 2.[CONSTRAINT 约束名] PRIMARY KEY [字段名]

使用外键约束

  1. FOREIGN KEY(字段名)

使用非空约束

  1. 字段名1,数据类型 not null

使用唯一性约束

  1. 字段名1,数据类型 UNIQUE

使用默认约束

  1. 字段名1,数据类型 DEFAULT 默认值

设置表的属性值自动增加

  1. 字段名1,数据类型 AUTO_INCREMENT

查看数据表结构

  1. DESCRIBE 表名 | DESC 表名

查看表详细结构语句SHOW CREATE TABLE

  1. SHOW CREATE TABLE<表名>

修改表名

  1. ALTER TABLE <旧表明> RENAME [TO] <新表名>

修改字段的数据类型

  1. ALTER TABLE <表名> MODIFY [字段名] <数据类型>

修改字段名

  1. ALTER TABLE <表名> CHANGE [字段名] [新字段名] <数据类型>

添加字段

  1. ALTER TABLE <表名> ADD [新字段名] <数据类型>

删除字段

  1. ALTER TABLE <表名> DROP [字段名];

删除表的外键约束

  1. ALTER TABLE <表名> DROP FOREGIN KEY [外键约束名];

删除数据表

  1. DROP TABLE [IF EXISTS] 1,表2 ... ;

三、数据类型和运算符

MSQL数据类型介绍

整数类型

TINYINT SMALLINT DEDIUMINT INT BIGINT
不同类型整数存储所需的字节数是不同的,占用字节数最小的是TINYINT类型,占用字节最大的是BIGINT类型,相应的占用字节越多的类型所能表示的数值范围越大。根据占用字节数可以求出每一种数据类型的取值范围。例如,TINYINT需要1字节(8 bits)来存储,那么TINYINT无符号数的最大值为28-1(255)、TINYINT有符号数的最大值为27-1(127)。其他类型的整数的取值范围计算方法相同

浮点数类型和定点数类型

FLOAT DOUBLE
DECIMAL
MySQL中使用浮点数和定点数来表示小数。浮点数类型有两种:单精度浮点类型(FLOAT)和双精度浮点类型(DOUBLE)。定点数类型只有一种:DECIMAL。浮点数类型和定点数类型都可以用(M,N)来表示

日期与时间类型

DATETIME,DATE,TIMESTAMP,TIME和YEAR

文本字符串类型

CHAR和VARCHAR类型

CHAR(M)为固定长度字符串,在定义时指定字符串列长。当保存时在右侧填充空格,以达到指定的长度。M表示列长度,M的范围是0~255个字符。例如,CHAR(4)定义了一个固定长度的字符串列,其包含的字符个数最大为4。当检索到CHAR值时,尾部的空格将被删除。VARCHAR(M)是长度可变的字符串,M表示最大列长度。M的范围是0~65535。VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定,而其实际占用的空间为字符串的实际长度加1。例如,VARCHAR(50)定义了一个最大长度为50的字符串,如果插入的字符串只有10个字符,则实际存储的字符串为10个字符和一个字符串结束字符。VARCHAR在值保存和检索时尾部的空格仍保留。

TEXT类型
TEXT列保存非二进制字符串,如文章内容、评论等。当保存或查询TEXT列的值时,不删除尾部空格。Text类型分为4种:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。不同的TEXT类型的存储空间和数据长度不同。

ENUM类型

ENUM类型的字段在取值时,只能在指定的枚举列表中取,而且一次只能取一个。创建的成员中有空格时,其尾部的空格将自动被删除。ENUM值在内部用整数表示,并且每个枚举值均有一个索引值:列表值所允许的成员值从1开始编号,MySQL存储的就是这个索引编号。枚举最多可以有65535个元素。

SET类型

SET是一个字符串对象,可以有零或多个值。SET列最多可以有64个成员,其值为表创建时规定的一列值。指定包括多个SET成员的SET列值时,各成员之间用逗号(,)间隔开。语法格式如下:

四、查询数据

单表查询

查询所有字段

  1. SELECT * FROM 表名;

在SELECT语句中指定所有字段

  1. SELECT f_id, s_id,f_name,f_price FROM fruits;

查询指定记录

  1. SELECT f_id, s_id,f_name,f_price FROM fruits where f_price = 10.2

WHERE条件判断符 = <= <= > >= BETWEEN

带IN关键字的查询, 相反,可以使用关键字NOT来检索不在条件范围内的记录。

  1. SELECT s_id,f_name,f_price FROM fruits where s_id NOT IN (102,102)

带BETWEEN AND的范围查询

  1. SELECT f_name FROM .. WHERE XX BETWEEN XX AND XX;

带LIKE的字符匹配查询

  1. SELECT f_name FROM .. WHERE XX LIKE 'b%';

查询空值

  1. SELECT f_name FROM .. WHERE XX is not null;

带AND的多条件查询

  1. SELECT f_name FROM .. WHERE XX = '101' AND xx >=5;

带OR的多条件查询

  1. SELECT f_name FROM .. WHERE XX = '101' or xx >=5;

查询结果不重复

  1. SELECT DISTINCT 字段名 FROM .. ;

对查询结果排序

  1. SELECT 字段名 FROM .. ORDER BY xx;

指定排序方向

  1. SELECT 字段名 FROM .. ORDER BY xx DESC[ASC];

分组查询

  1. SELECT 字段名 FROM .. GROUP BY xx [HAVING <条件表达式>] ; 使用HAVING过滤分组

使用LIMIT限制查询结果的数量

  1. SELECT 字段名 FROM .. LIMIT 4;

使用集合函数查询

COUNT()函数

COUNT()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数。其使用方法有两种:● COUNT(*)计算表中总的行数,不管某列是否有数值或者为空值。● COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。

SUM()函数

SUM()是一个求总和的函数,返回指定列值的总和。

AVG()函数

AVG()函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。

MAX()函数

MAX()返回指定列中的最大值。

MIN()函数

MIN()返回查询列中的最小值。

连接查询

连接是关系数据库模型的主要特点。连接查询是关系数据库中最主要的查询,主要包括内连接、外连接等。通过连接运算符可以实现多个表查询。

内连接查询