数据库基础操作(mysql)

SQL的执行顺序:
–第一步:执行FROM [JOIN ON]
–第二步:WHERE条件过滤
–第三步:GROUP BY分组
–第四步:执行SELECT投影列
–第五步:HAVING条件过滤
–第六步:执行ORDER BY 排序

SQL语言分类:

DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE)

DDL: create、drop、alter

DML:

insert

格式:INSERT INTO 表名(字段1,字段2[,…]) VALUES (字段1的值,字段2的值,…);
update

格式:UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
delete

格式:DELETE FROM 表名 [WHERE 条件表达式];

DQL:

select

格式:SELECT 字段名1,字段名2[,…] FROM 表名[WHERE 条件表达式];

DCL:

alter

格式:ALTER TABLE 旧表名 RENAME 新表名;

清空表,删除表内的所有数据
方法一:
delete from yyy3;
#DELETE清空表后,返回的结果内有删除的记录条目;
DELETE 工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除
所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录。

方法二:
truncate table test01;
#TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,
因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,
ID会从1开始重新记录

#删除
速度
drop> truncate > delete
安全性
delete 最好
创建临时表
临时表创建成功之后,使用SHOWTABLES命令是看不到创建的临时表的,临时表会在连接退出
后被销毁。
如果在退出连接之前,也可以可执行增删改查等操作,比如使用DROP TABLE语句手动直接删除
临时表。
PS:无法创建外键
CREATE TEMPORARY TABLE 表名 (字段1 数据类型,字段2 数据类型[, …]
[, PRIMARY KEY (主键名)]);

示例:
create temporary table xxx (
id int(4) zerofill primary key auto_ increment,
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));
insert into xxx values (1,‘zhangsan’,123456,‘running’) ;
select * from test03;
show tables;
quit
select * from test03;

场景
1.可做测试环境使用 比如删除大量数据的时候,可以创建临时表 做一个复杂删除

2、需求要今天所有的注册王者荣耀的新号码
MySQL中6种常见的约束
主键约束(primary key)
外键约束(foreign key)
非空约束(not null)
唯一性约束(unique [key|index])
默认值约束(default)
自增约束(auto_increment)
外键的定义:如果同一个属性字段x在表一中是主键,而在表二中不是主键,
则字段x称为表二的外键。
创建外键约束作用(误删,修改),保证数据的完整性和一致性。
主键表和外键表的理解
(1)以公共关键字作主键的表为主键表(父表、主表)
(2)以公共关键字作外键的表为外键表(从表、外表)
注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,
主表外键字段和从表的字段具备相同的数据类型、字符长度和约束。

数据类型:

数值类型:

 日期类型:

 字符串类型:

 关于int 长度问题:

如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值的长度都会与设置的显示宽度一致,比如插入1,显示为00000000001,左边补了 10 个零直至长度达到 11 位
设置字段的显示宽度并不限制字段存储值的范围,如果你设置int(6),但是仍然可以存储99999999
设置的字符宽度只对数值长度不满足宽度时有效,比如设置int(6),插入1时,长度不足6,因此在左边补充5个零,如果你插入888888888,那个显示宽度就不起作用了

基础语句:

查询

SHOW DATABASES;

创建

CREATE DATABASE 数据库名称;

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

CREATE DATABASE IF NOT EXISTS 数据库名称; (推荐使用)

 删库(跑路)

DROP DATABASE 数据库名;

DROP DATABASE IF EXISTS 数据库名; (推荐使用(一般情况下别用,除非二般情况))

使用

SHOW DATABASE();

USE 数据库名;

desc xxx;

如图:

高级语句:

按关键字排序
1.1、使用ORDER BY语句来实现排序

1.2、排序可针对一个或多个字段

1.3、ASC:升序,默认排序方式

1.4、DESC:降序

1.5、ORDER BY的语法结构

语法:
1 select column1,column2,… from 库名 order by column1,column,… asc|desc;

条件查询:where 后面可以跟

 连接查询:

聚合函数:

WHERE和HAVING区别

  • WHERE:是在分组之前使用(可以没有GROUP BY),不允许使用统计函数;

  • HAVING:是在分组之后使用(必须结合GROUP BY),允许使用统计函数。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值