MySQL数据库的一些基本操作命令

创建数据库: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';

如果要哪里写错的希望大家指出,这些都是我上学的时候记得笔记难免会有一些地方有错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值