Mysql数据库 各种操作
程序员文章站
2022-06-04 11:13:41
...
Mysql 数据库操作 命令
1. 新建数据库
CREATE DATABASE 数据库名
这种直接创建的命令我们一般不采用,你也不知道你创建的数据库名称存不存在
方法二
CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET 字符集
推荐使用这种
2. 新建数据库表
CREATE TABLE IF NOT EXISTS 表名 (
id bigint primary key auto_increment comment '备注',
字段名 date DEFAULT null comment 备注',
字段名 varchar(字段长度) DEFAULT null comment '备注',
字段名 数据类型(字段长度) DEFAULT null comment '备注',
)
数据类型有很多,根据需要选择不同的数据类型
3. 查询语句
3.1. 查询全部
SELECT * FROM 表名
3.2 where条件
SELECT * FROM 表名 WHERE 字段名 = 参数
3.3 GROUP BY
SELECT * FROM 表名 WHERE 字段名 = 参数 GROUP BY 字段名,字段名
在使用GROUP BY的时候,如果你使用的是高于Mysql5.7版本的,就会遇到一些报错
ERROR 1055 (42000): Expression ... this is incompatible with sql_mode=only_full_group_by
当遇到这种情况的时候就需要设置一些东西了
SELECT @@GLOBAL.sql_mode;
sql_mode ="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
需要将ONLY_FULL_GROUP_BY删除,然后将剩下的set回去
set GLOBAL sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION ';
但是重启就会失效哦 ,所以最好是在GROUP BY后面加上你查询的字段
3.4 HAVING
SELECT * FROM 表名 WHERE 字段名 = 参数 GROUP BY 字段名,字段名 HAVING 字段 > 参数
这个方法是对WHERE筛选之后的数据进行再次筛选
3.5 ORDER BY
SELECT * FROM 表名 WHERE 字段名 = 参数 GROUP BY 字段名,字段名 HAVING 字段 > 参数 ORDER BY 字段 DESC
SELECT * FROM 表名 WHERE 字段名 = 参数 GROUP BY 字段名,字段名 HAVING 字段 > 参数 ORDER BY 字段 ASC
ORDER BY 是对数据按照某个字段进行排序 有两种排序方式 ASC(升序) 和 DESC(降序), 系统默认是你存入数据的顺序
整个判断循序就是 WHERE , GROUP BY ,HAVING ,ORDER BY
4. 查询关联
4.1 左关联,右关联
SELECT a.*,b.* FROM a_table a LEFT JOIN b_table b ON a.字段 = b.字段
SELECT a.*,b.* FROM a_table a RIGHT JOIN b_table b ON a.字段 = b.字段
左关联,关联的桥梁必须是这两张表相对应的字段进行连接,并且数据条数以主表为基础进行关联,主表有多少数据,就会关联多少,我个人比较喜欢用左关联,两种效果一样,选择一种就可以了
4.2 内连接
select * from a_table a inner join b_table b on a.a_id = b.b_id;
内连接就是两张表通过关联桥梁取相交部分
5. 添加语句
方法一
Inset into 表名 values(值1,值2)
需要注意的是,values()括号里面的值必须与数据库字段顺序一一对应
方法二(推荐使用)
Inset into 表名(字段1,字段2) values(值1,值2)
这种方法只需要将字段名与值对应就可以了
6. 更新语句
UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ][ORDER BY 子句] [LIMIT 子句]
7. 删除语句
- 删除单条
delete from 表名 where 字段 = 参数
- 删除所有
delete from 表名
在使用删除语句的时候,一定要慎用,一旦删除就无法恢复,最好是删除前,做好备份
小结一下:这些都是简单的CRUD,但是有些地方需要慎用,需要注意的都备注了,多多注意下。对于初学者来说,简单够用,后期会更新复杂一些的,多多关注,多多支持