目录
一.数据库的操作
1.显示当前的数据库
sql
SHOW DATABASES;
2.创建数据库
sql
CREATE DATABASE database_name;
3.删除数据库
sql
DROP DATABASE database_name;
4.选择数据库
sql
USE database_name;
补充:
1.创建数据库的时候可以加上**[IF NOT EXISTS]** 关键字,表示此数据库没创建时才创建
sql
CREATE DATABASE IF NOT EXISTS database_name;
2.创建数据库的时候可以用**[SET]** 指定编码格式 ,没有指定用默认字符集:utf8
sql
CREATE DATABASE IF NOT EXISTS database_name SET utf8mb4;
二.表的基础操作
先了解表的常用数据类型
1.常用数据类型:
-
整数类型:
- INT/INTEGER: 标准大小的整数,通常使用INT,占用4字节。
- TINYINT: 很小的整数,占用1字节。
- SMALLINT: 小整数,占用2字节。
- BIGINT: 大整数,占用8字节。
-
浮点数类型:
- FLOAT: 单精度浮点数,占用4字节。
- DOUBLE: 双精度浮点数,占用8字节。
-
定点数类型:
- DECIMAL/NUMERIC: 用于存储精确的小数,需要指定精度和范围。
-
字符串类型:
- CHAR: 定长字符串,最多255个字符。
- VARCHAR: 变长字符串,最多65535个字符。
- TEXT: 长文本字符串,最多65535个字符。
- BLOB: 二进制数据,用于存储大型数据。
-
日期和时间类型:
- DATE: 日期,格式为'YYYY-MM-DD'。
- TIME: 时间,格式为'HH:MM:SS'。
- DATETIME: 日期和时间,格式为'YYYY-MM-DD HH:MM:SS'。
- TIMESTAMP: 时间戳,存储从1970年1月1日以来的秒数。
-
枚举和集合类型:
- ENUM: 用于存储枚举值,可从指定的值列表中选择一个。
- SET: 用于存储多个枚举值,可从指定的值列表中选择多个。
-
空间数据类型:
- GEOMETRY: 用于存储几何图形对象的数据类型。
2.查看表结构
sql
DESC table_name;
3.创建表
sql
CREATE TABLE table_name(
field1 datatype,
field2 datatype,
field3 datatype,
......
);
//field1 意思是字段,表示你为该字段取的名
//datatype 表示该字段的数据类型
注:可以使用[**comment]**增加字段说明,示例如下:
sql
create table student(
id int,
name varchar(20) comment '姓名',
password varchar(30) comment '密码',
age int,
sex varchar(1),
birthday timestamp,
resume text
);
4.删除表
sql
DROP TABLE table_name;
注:同样可以使用**[if exists]**,示例如下:
sql
drop table if exists student;
三.表的增删改查
1.新增(Create)
首先创造一张新表:
sql
DROP TABLE IF EXISTS student;
CREATE TABLE student (
id INT,
sn INT comment '学号',
name VARCHAR(20) comment '姓名',
qq_mail VARCHAR(20) comment 'QQ邮箱'
);
1)单行数据 + 全列插入
sql
INSERT INTO student VALUES(100,200,'小明',null);
2)多行数据 + 指定列插入
sql
INSERT INTO student (id,sn,name) VALUES
(100,200,'小明'),
(101,201,'小张');
2.查询(Retrieve)
首先创造一张新表
sql
DROP TABLE IF EXISTS student;
CREATE TABLE student (
id INT,
sn INT comment '学号',
name VARCHAR(20) comment '姓名',
math DECIMAL(3,1),
english DECIMAL(3,1),
chinese DECIMAL(3,1),
);
1)全列查询
sql
SELECT * FROM student;
2)指定列查询
sql
SELECT id, name, math FROM student;
3)别名
sql
SELECT name, math+chinese+english as 总分 from student;
//as可以省略
4)去重:DISTINCT
sql
SELECT DISTINCT math FROM student;
//对math这列数据进行去重处理
5)排序:ORDER BY
sql
SELECT * FROM student order by math;
-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
6)条件查询:WHERE
-
基本的条件查询 :
sqlSELECT * FROM table_name WHERE condition; //在这个查询中,table_name 是你要查询的表名,condition 是你指定的条件。查询将返回满足条件的所有列。
-
条件运算符 :
=
:等于!=
或<>
:不等于<
:小于>
:大于<=
:小于等于>=
:大于等于BETWEEN
:在指定范围内IN
:在指定值列表内LIKE
:模糊匹配
-
逻辑运算符 :
AND
:逻辑与OR
:逻辑或NOT
:逻辑非
-
模糊查询 :
%
:匹配零个或多个字符_
:匹配单个字符
-
限制结果集:LIMIT
sql
// 从 0 开始,筛选 n 条结果
SELECT * FROM student LIMIT n;
//从 s 开始,筛选 n 条结果
SELECT * FROM student LIMIT s,n;
//从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT * FROM student LIMIT n OFFSET s;
3.修改(Update)
sql
UPDATE student SET math=math*2;
UPDATE student SET english=88 where name='小明';
4.删除(Delete)
sql
// 删除小明的数据
DELETE FROM student WHERE name='小明';
// 删除整表数据
DELETE FROM student;