一、数据库的基本操作
创建数据库
CREATE DATEBASE database_name;
删除数据库
DROP DATABASE database_name;
查看数据库的定义
SHOW CREATE DATABASE test_db
二、数据表的基本操作
创建表
CREATE TABLE <表名>(字段名1,数据类型[列级别约束条件][默认值],字段名2,数据类型[列级别约束条件][默认值])
使用主键约束
1.字段名1,数据类型 PRIMARY KEY [默认值]2.[CONSTRAINT 约束名] PRIMARY KEY [字段名]
使用外键约束
FOREIGN KEY(字段名)
使用非空约束
字段名1,数据类型 not null
使用唯一性约束
字段名1,数据类型 UNIQUE
使用默认约束
字段名1,数据类型 DEFAULT 默认值
设置表的属性值自动增加
字段名1,数据类型 AUTO_INCREMENT
查看数据表结构
DESCRIBE 表名 | DESC 表名
查看表详细结构语句SHOW CREATE TABLE
SHOW CREATE TABLE<表名>
修改表名
ALTER TABLE <旧表明> RENAME [TO] <新表名>
修改字段的数据类型
ALTER TABLE <表名> MODIFY [字段名] <数据类型>
修改字段名
ALTER TABLE <表名> CHANGE [字段名] [新字段名] <数据类型>
添加字段
ALTER TABLE <表名> ADD [新字段名] <数据类型>
删除字段
ALTER TABLE <表名> DROP [字段名];
删除表的外键约束
ALTER TABLE <表名> DROP FOREGIN KEY [外键约束名];
删除数据表
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列值时,各成员之间用逗号(,)间隔开。语法格式如下:
四、查询数据
单表查询
查询所有字段
SELECT * FROM 表名;
在SELECT语句中指定所有字段
SELECT f_id, s_id,f_name,f_price FROM fruits;
查询指定记录
SELECT f_id, s_id,f_name,f_price FROM fruits where f_price = 10.2
WHERE条件判断符 = <= <= > >= BETWEEN
带IN关键字的查询, 相反,可以使用关键字NOT来检索不在条件范围内的记录。
SELECT s_id,f_name,f_price FROM fruits where s_id NOT IN (102,102)
带BETWEEN AND的范围查询
SELECT f_name FROM .. WHERE XX BETWEEN XX AND XX;
带LIKE的字符匹配查询
SELECT f_name FROM .. WHERE XX LIKE 'b%';
查询空值
SELECT f_name FROM .. WHERE XX is not null;
带AND的多条件查询
SELECT f_name FROM .. WHERE XX = '101' AND xx >=5;
带OR的多条件查询
SELECT f_name FROM .. WHERE XX = '101' or xx >=5;
查询结果不重复
SELECT DISTINCT 字段名 FROM .. ;
对查询结果排序
SELECT 字段名 FROM .. ORDER BY xx;
指定排序方向
SELECT 字段名 FROM .. ORDER BY xx DESC[ASC];
分组查询
SELECT 字段名 FROM .. GROUP BY xx [HAVING <条件表达式>] ; 使用HAVING过滤分组
使用LIMIT限制查询结果的数量
SELECT 字段名 FROM .. LIMIT 4;
使用集合函数查询
COUNT()函数
COUNT()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数。其使用方法有两种:● COUNT(*)计算表中总的行数,不管某列是否有数值或者为空值。● COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。
SUM()函数
AVG()函数
AVG()函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。
MAX()函数
MIN()函数
连接查询
连接是关系数据库模型的主要特点。连接查询是关系数据库中最主要的查询,主要包括内连接、外连接等。通过连接运算符可以实现多个表查询。
