基本的SQL语句(重点)
1. 库 # 增 create database 数据库名; create database db1; create database db1 charset='utf-8'; # 查 show databases; show create database db1; # 改 alter database db1 charset='gbk'; # 删除 drop database db1;
表的增删改查
'''前提:先选择数据库''' 1. 如何查看当前所在的库 select database(); 2. 选择数据库: use db1; 3. 查看数据表 show tables; show create table t1; # 查看表的详细结构 desc t1; # 查看表的详细信息 4. 创建数据表 create table t1 (id int, name varchar(16)); 5. 修改 # modify只能修改数据类型, # change alter table t1 modify name varchar(32); alter table t1 change name name1 varchar(64); 6. 删除 drop table t1;
记录的增删改查
# 1. 查看 select * from t1; # 2. 插入数据 insert into t1 (id, name) values (1, 'ly'); # 单条数据 insert into t1 (id, name) values (2, 'tom'), (3, 'kevin'); # 批量插入数据 insert into t1 values (4); insert into t1 (name) value ('ly'); # 3. 修改数据 update t1 set name = 'LY' where id=1; # 4. 删除数据 delete from t1 where id=1; delete from t1; truncate t1; 清空表
存储引擎
# 存储数据的方式 # 存储引擎决定存储数据的方式不同 MySQL提供了多种数据引擎 # 查看所有的存储引擎 show engines; 1. MyISAM # 是mysql5.5及之前的版本默认的存储引擎 存储的速度快,相对于InnoDB '''不支持事务,支持表锁''' 2. InnoDB # 是mysql5.6之后的版本默认的存储引擎 存储速度慢,相对于MyISAM ''' 支持事务,行锁,外键''' 3. MEMORY # 数据存储在内存中,一旦断电,数据立马丢失,或者数据重启也丢失 # 验证 create table t2 (id int) engine=MyISAM; create table t3 (id int) engine=InnoDB; create table t4 (id int) engine=MEMORY; insert into t2(id) values(1); insert into t3(id) values(2); insert into t4(id) values(3); '''各个存储引擎的存储文件''' MyISAM的存储文件个数: 1. .frm # 存储数据的表结构 2. .MYI # 存索引 >>> 类似于书的目录 3. .MYD # 存储表数据 InnoDB的存储文件个数: 1. .frm # 存储表结构 2. .ibd # 存储数据和索引的 Memory的存储文件个数: 1. .frm # 存储表结构的
数据类型
1. 整型 tinyint, smallint, int, bigint # 区别是:存储数据的范围不一样 验证:默认情况带不带符号 create table t5 (id tinyint); create table t5 (id int); insert into t5 (id) values (-129), (128); '''结论:默认带符号''' # 整型的存储大小取决于类型,而不取决于括号里面的数字,而字符串的话是取决于括号里面的数字 varchar(32) 2. 浮点型 # 小数点 float(255, 30) # 代表总共255位,小数占30位 double(255, 30) # 代表总共255位,小数占30位 decimal(65, 30) # 代表总共65位,小数占30位 create table t6 (id float(255, 30)); create table t7 (id double(255, 30)); create table t8 (id decimal(65, 30)); # 插入数据 insert into t6 values (1.11111111111111111111111); insert into t7 values (1.11111111111111111111111); insert into t8 values (1.11111111111111111111111); 区别: 精度不一样 decimal > double > float 3. 字符串 char(4) # # 字符串类型,存储的范围是4个字符,超过了直接报错,不超过按照4个字符存 varchar(4) # 字符串类型,存储的范围是4个字符,超过了直接报错,不超过有几个存几个 create table t9 (id int, name char(4)); create table t10 (id int, name varchar(4)); # 插入数据 insert into t9 (id, name) values(1, 'kevin'); insert into t10 (id, name) values(1, 'kevin'); 4. 日期 datetime date time year 年月日,时分秒 年月日 时分秒 年份 create table t11 (id int, reg_time datetime, reg1_time date, reg2_time time, reg3_time year ); # 插入数据 insert into t11 values(1, '2022-1-1 11:11:11', '2022-01-02', '11:11:11', '2022'); 5. 枚举和集合 枚举:多个里面选一个 create table t12 ( id int, gender enum('男', '女', 'other') ); insert into t12 values (1, '男'); # 集合:多个里面选多个 create table t13 ( id int, hobby set('music', 'read', 'xj') ); insert into t13 values (1, 'music');
严格模式
# 查看mysql的sql_mode show variables like '%mode%'; # 设置严格模式 1. 直接使用命令修改 set global sql_mode='STRICT_TRANS_TABLES'; set global sql_mode='STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY'; 2. 配置文件修改
创建表的完整结构
create table 表名 ( 字段名1 数据类型 约束条件 约束条件 约束条件, 字段名2 数据类型 约束条件 约束条件 约束条件, 字段名3 数据类型 约束条件 约束条件 约束条件, 字段名4 数据类型 约束条件 约束条件 约束条件 ); ''' 注意事项: 1. 字段名和数据类型是必填项 2. 约束条件是可选的 3. 在最后一个字段的后面不能加逗号 '''
浙公网安备 33010602011771号