MySQL基础语法【库、表的增删改查】
1.链接与断开
链接:mysql -h127.0.0.1 -P3306 -uroot -proot
-h 主机地址 -P 端口号
-u 用户名 -p 用户密码
断开:
- 1.exit;
- 2.quit;
- 3.\q;
2.数据库
2.1、 显示:show databases;
1、information_schema
保存着关于MySQL服务器所维护的所有其他数据库的信息。 如数据库名,数据库的表,表栏的数据类型与访问权限等。一般不会修改这个库
2、mysql
MySQL的系统数据库, 保存了登录用户名,密码,以及每个用户的权限等等。一般不会修改这个库
3、performance_schema
保存数据库服务器性能的参数。有可能会修改这个库
4、sys
通过视图的形式把information_schema和performance_schema结合起来,查询出更加令人容易理解的数据
2.2、查看数据库全局默认的编码
show variables like ‘character_set_%’;
2.3、创建:
create database [if not exists] 数据库名称 [charset=字符集];
2.4、删除:
drop database [if exists] 数据库名称;
2.5、修改:只能修改字符集
alter database 数据库名称 charset=字符集;
2.6、查看:
查看所有库:show databases;
查看单个库及字符集:show create database 数据库名称;
3、表
3.1、创建表:
1.use 数据库名称; 进入数据库
2.show tables; 查看数据库中有哪些表
3.创建表
create table 表名(
字段名称 数据类型,
字段名称 数据类型,
);
3.2、删除表:
drop table [if exists] 表名;
3.3、修改
1)、修改表名:
rename table 原始名称 to 新的名称;
2)、添加字段:
alter table 表名 add 新增字段名称 新增字段数据类型 [位置];
示例1: alter table person add age int;
- 注意点:默认情况下会将新增的字段放到原有字段的后面
示例2:alter table person add score float first;
- 注意点:我们可以通过指定first将新增的字段放到原有字段的前面
示例3:alter table person add phone int after name;
- 注意点:我们可以通过after指定将新增的字段放到哪个字段的后面。
3)、删除字段:
alter table 表名 drop 字段名称;
4)、修改字段:
1.修改字段的数据类型
alter table 表名 modify 需要修改的字段名称 新的数据类型
2.修改字段的名称和数据类型
alter table 表名 change 原始字段名称 新的字段名称 新的数据结构
3.4、查看表:
1.use 数据库名称; 进入数据库
2.show tables; 查看数据库中有哪些表
3.5、存储引擎:
- MyISAM: 安全性低, 不支持事务和外键, 适合频繁插入和查询的应用【.sdi文件保存表结构; .MYD文件保存表数据; .MYI文件保存表索引】
- InnoDB(默认存储引擎): 安全性高, 支持事务和外键, 适合对安全性, 数据完整性要求较高的应用【.ibd文件保存表结构,ibdata1文件保存表数据】
- Memory: 访问速度极快, 但不会永久存储数据, 适合对读写速度要求较高的应用【.sdi文件保存表结构,表数据在内存中】
修改表的存储引擎:
alter table 表名 engine=引擎名称;
4、数据
4.1、新增/插入:
insert into 表名 (字段名称1, 字段名称2) values (值1, 值2), (值1, 值2);
4.2、删除:
delete from 表名 [where 条件]
4.3、修改/更新:
update 表名 set 字段名称=值 [where 条件]
【如果在更新数据的时候没有指定条件,那么就会更新整张表中的指定字段的数据。】
实例:
update stu set score = 88 where name = 'gege4';(只会更新满足条件的数据)
update stu set score = 100 where name = 'gege1' AND id=2;(逻辑与)
pdate stu set score = 110 where name = 'gege5' OR name ='gege6';(逻辑或)
update stu set name='jj', score=20 where id=5;(修改多个字段)
4.4、查询:
select 字段名称1, 字段名称2 from 表名 [where 条件];
5、其他
5.1、where支持的运算符
1、=(等于)、!=(不等于)、<>(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于);
2、IN(set);固定的范围值
3、BETWEEN…AND;值在什么范围
4、IS NULL;(为空) IS NOT NULL(不为空)
5、AND;与; —— OR;或; —— NOT;非; —— LIKE: 模糊查询
5.2、数据类型:
- 整型类型
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值 - 浮点类型
FLOAT(m, d) 4 字节 单精度
DOUBLE(m, d) 8 字节 双精度
m总位数, d小数位数 - 定点类型
也是用于存储小数的,存储的比浮点类型精确
decimal(M, D)
是将数据分为两个部分来存储【整数、小数部分分开存储】, 每个部分都是整数。
所以定点数不要滥用, 因为非常消耗资源 - 字符类型
CHAR(size) 0-255 字节 定长字符串
VARCHAR(size) 0-65535字节 变长字符串 - 文本类型
TINYTEXT 0-255字节 短文本字符串
> TEXT 0-65535字节 长文本数据
> MEDIUMTEXT 0-16777215字节 中等长度文本数据
> LONGTEXT 0-4294967295字节 极大文本数据 - 枚举类型
和其它编程语言一样, 如果某个字段的取值只能是几个固定值中的一个, 那么就可以使用枚举
enum(值1, 值2, …); - 集合类型
和编程开发中一样, 如果某个字段的取值只能是几个固定值中的几个【枚举是几个固定值中的一个】, 那么就可以使用集合类型
set(值1, 值2, …) - 日期类型
DATE 3字节 YYYY-MM-DD 日期值
TIME 3字节 HH:MM:SS 时间值或持续时间
DATETIME 8字节 YYYY-MM-DD HH:MM:SS 混合日期和时间值 - 布尔类型
boolean