创建数据库:CREATE DATABASE 库名
选择数据库:USE 库名
查看所有数据库: SHOW DATABASES;
删除数据库:DROP DATABASE 库名
新建表:CREATE TABLE 表名(
(字段名,字段类型,约束条件),
(字段名,字段类型,约束条件),
(字段名,字段类型,约束条件),
(字段名,字段类型,约束条件) ;
字段类型:
Numeric (数值型)
TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
Date and Time (日期和时间)
DATE
DATETIME
TIMESTAMP
TIME
YEAR
String (字符串)
CHAR
VARCHAR
TEXT
ENUM
SET
约束条件:
主键约束 (PRIMARY KEY): 用于唯一标识表中的每一行记录,不允许有重复值和NULL值。
唯一约束 (UNIQUE): 确保列中所有值是唯一的,但允许有一个NULL值。可以应用于一列或多列组合。
非空约束 (NOT NULL): 指定某列不能包含NULL值,必须有有效的数据。
默认值约束 (DEFAULT): 当插入新记录时,如果没有为该列指定值,则自动赋予默认值。
外键约束 (FOREIGN KEY): 用于建立两个表之间的关联,确保一个表中的数据匹配另一个表中的值,维护数据的一致性和完整性。
检查约束 (CHECK): 虽然标准的SQL支持CHECK约束来限制列中的值,但MySQL在5.7.8之前不支持该约束的直接定义,通常通过触发器等机制实现类似功能。自MySQL 8.0.16起,InnoDB存储引擎开始支持CHECK约束。
自增约束 (AUTO_INCREMENT): 主要用于整数类型列,当插入新记录时,如果该列为NULL,MySQL会自动为其生成一个唯一的整数值,常与主键一起使用
查看所有表: SHOW TABLES;
修改表名字: ALTER TABLE 旧表名 RENAME 新表名
查看表结构:DESC 表名
插入字段:
在表头插入:ALTER TABLE 表名 ADD 字段名 字段类型 FIRST
在什么字段之后: ALTER TABLE 表名 ADD 字段名 字段类型 AFTER 什么字段之后
在表尾插入:ALTER TABLE 表名 ADD 字段名 字段类型
修改字段名:ALTER TABLE 表名 CHANGE 旧名字 新名字 字段类型;'如果不修改字段类型则可以不写'
删除字段:ALTER TABLE 表名 DROP 字段名
插入数据:
INSERT INTO 表名
VALUES
(数据),
(数据),
(数据);
更新表中数据:UPDATE 表名 SET 要更新的数据 ‘如果只修改一个则要在后面加入 ‘WHERE 条件 ’’
查看表内容: SELECT * FROM 表名
快速复制表结构包含内容:CREATE TABLE 新表名 AS SELECT * FROM 要复制的表名
备份一份数据:CREATE TABLE 新表名 AS SELECT * FROM 要复制的表 HWERE 要备份的数据
复制表结构: CREATE TABLE 新表名 AS SELECT * FROM 要复制的表名 WHERE 1=0
单表查询:
SELECT * FROM 表名 WHERE 条件; ‘星号表示输出查询数据的全部内容’
< 大于
>小于
<= 大于等于
>= 小于等于
<>不等于
!=不等于
使用关键字查询
AND 和的意思
SELECT * FROM 表名 WHERE BETWEEN 值1 AND 值2 ‘如果是查询数据之间的则大于条件1并且小于条件2’
SELECT * FROM 表名 WHERE 条件1 AND 条件2 '同时满足条件1和条件2'
OR 或的意思
SELECT * FROM 表名 WHERE 条件 OR 条件 ‘查询两个条件满足一个就行’
IN 包含的意思
SELECT * FROM 表名 WHERE 字段名 IN (内容,内容) ‘查询字段中包含的内容’
SELECT * FROM 表名 WHERE 字段名 NOT IN (内容,内容) ‘查询字段中不包含的内容’
跨表查询数据: SELECT * FROM 库名.表名
查询结果去重:SELECT DISTINCT 字段名 FROM 表名
模糊查询:
select * from 表名 where 字段名 like '内容%' '百分号%可以匹配多字符'
'第一个字%' 查询开头
'%最后一个字' 查询结尾
'内容%内容' 查询中间的
select * from 表名 where 字段名 like '内容_' '_只能匹配一个字符'
排序查询
降序排序
select * from 表名 order by 字段名字 desc
升序排序
select * from 表名 order by 字段名字 asc
限制查询结果
select * from 表名 limit 跟上要显示的行数 ”'SELECT * from goods limit 3,4'从3+1开始数4行“
函数查询
SELECT COUNT(*) FROM 表名 '查询表中共有多少行数据'
SELECT SUM(字段) FROM 表名 '查询字段数据的总和'
SELECT AVG(字段) FROM 表名 '查询字段数据的平均值'
SELECT MAX(字段) FROM 表名 '查询字段数据的最大值'
SELECT MIN(字段) FROM 表名 '查询字段数据的最小值'
多表查询
内连接:SELECT COLUMNS 字段名 FROM 表名1 LEFT JOIN 表名2 ON 表名1.相同的字段=表名2.相同的字段;
左连接:SELECT COLUMNS 字段名 FROM 表名1 LEFT JOIN 表名2ON 表名1.相同的字段=表名2.相同的字段;
右链接:SELECT COLUMNS 字段名 FROM 表名1 RIGHT JOIN 表名2 ON 表名1.相同的字段=表名2.相同的字段 ;
子查询
'只要在查询这张表加上括号就可引用查询结果'
使用IN关键字的子查询
SELECT 字段 FROM 表1 WHERE 字段 IN (SELECT 字段 FROM 表2 [WHERE 条件]);
'包含的意思'
使用ANY、SOME关键字的子查询
SELECT * FROM 表1 WHERE 字段<any (SELECT 字段 FROM 表2 [WHERE 条件]);
'或的意思'
使用ALL关键字的子查询
SELECT 字段 FROM 表1 WHERE 字段>All (SELECT 字段 FROM 表2 [WHERE 条件]);
'并且的意思'
使用EXISTS关键字
SELECT * FROM 表1 WHERE EXISTS (SELECT * FROM 表2);
'只有当表2有查询结果时整个查询语句才会执行'
使用条件判断符的子查询
SELECT 字段 FROM 表 1 WHERE 字段 条件判断 (SELECT 字段 FROM 表2);
合并查询
SELECT 字段 FROM 表1 UNION SELECT 字段 FROM 表2;
查询两张表并把两张表结合起来显示'表结构要相同'会把重复的结果合并
SELECT 字段 FROM 表1 UNION ALL SELECT 字段 FROM 表2;
不会合并重复值
索引
索引主要用于对数据表中一列或多列的值进行排序,使用它可以有效提高数据库中特定数据的查询速度
ALTER TABLE 语句
单列索引:ALTER TABLE 表 ADD INDEX 索引名(字段);
多列索引:ALTER TABLE 表名 ADD INDEX 索引名字 (字段1, 字段2);
CREATE INDEX语句
单列索引:CREATE INDEX 索引名 ON 表名(字段名);
多列索引:CREATE INDEX 索引名 ON 表名(字段名1, 字段名2);
创建唯一索引
CREATE UNIQUE INDEX 索引名 ON 表名(字段名);
使用ALTER TABLE语句删除索引
ALTER TABLE 表名 DROP INDEX 索引名;
使用DROP INDEX语句删除索引
DROP INDEX 索引名 ON 表名;
分组查询
SELECT 字段2,COUNT(字段2) FROM 表 GROUP BY 字段1
按照字段1进行分组求字段2的总和 其他函数也可以使用
SELECT 字段名2,GROUP_CONCAT(字段2) FROM 表 GROUP BY 字段1;
按照字段1进行分组显示字段2的详细信息'比如COUNT显示的是10,那么GROUP_CONCAT则是2,1,2,5'
视图
视图是从数据库中的一张或多张表中导出的表,对视图的操作与对表的操作一样,可以对其进行查询、修改和删除等操作。在对视图中的数据进行修改时,相应的基本表中的数据也会发生变化;
1、 定义中引用的任何表或视图都必须存在。如果在创建视图后,删除定义时引用的表或视图,则使用视图时将导致错误。
2、创建视图不能引用临时表。
3、SELECT语句中最大列名长度为64个字符。
创建视图
CREATE VIEW 视图名(视图字段1,视图字段2,.......) AS SELECT 字段,字段 FROM 源表
'视图字段可以不写它直接引用原表的字段名'
查看视图
SELECT * FROM 视图名
查看视图结构
DESC 视图名;
修改视图
使用CREATE OR REPLACE VIEW和ALTER语句来修改视图。
CREATE OR REPLACE VIEW 视图名(视图字段1,视图字段2,.......) AS SELECT 字段,字段 FROM 源表
ALTER VIEW 视图 AS SELECT 字段,字段 FROM 源表
使用SHOW CREATE VIEW语句可以查看视图定义语句
SHOW CREATE VIEW 视图名;
'就是查看你创建这张视图的语句通常用于查看视图的原表是哪个'
DROP VIEW 视图名
'可以一次删除多张视图用逗号隔开即可'
查看库里所有视图
SELECT * FROM information_schema.views 或
SHOW FULL TABLES WHERE Table_type = 'VIEW';
如果要哪里写错的希望大家指出,这些都是我上学的时候记得笔记难免会有一些地方有错误。