1-2.sql基本语句

库 操作

#增
create database 数据库名;
create database db01;

#删
drop database 数据库名;
drop database db01;

#查
show databases; #查看全部数据库
show create database 数据库名; #查看单个数据库
show create database db01;
#改
alter database 数据库名 charset='字符编码';
alter database db01 charset='utf8';

表 操作

表的基本操作

#切换数据库
use 数据库名;

#查看当前所在库
select database();

#增
create table 表名(字段名 字段类型);
create table 表名(字段名 字段类型),(字段名 字段类型);
#至少要有一个字段名和字段类型多个用逗号隔开
create table t01(id int),(name char);



#删

drop table 表名;
drop table t01;


#查
show tables; #查看当前数据库的所有表;
show create table 表名;#查看建表语句
show create table t1;
describe 表名; #查看表结构 可以缩写成desc
desc t1;


#改
# 1.修改表名称
alter table 表名 rename 新表名;
alter table t1 rename table01;





表结构字段修改

# 1.修改表名称
alter table t1 rename t2;
rename table t1 to t123;  # 关键字修改
rename table t2 to t20,
    		t3 to t30,
        	t4 to t40;

#2.添加表字段
add
alter table t9 add pwd int;
alter table t9 add hobby varchar(32) after age; #在age字段之后添加
alter table t9 add uid int first; #添加为第一个


# 3.删除表字段
alter table t9 drop name;


# 4.修改字段名和字段类型
modify #modify 只能修改字段类型
alter table t9 modify age varchar(3);

change # change能修改字段名和类型
alter table t9 pwd password int ;

复制表

了解即可

# 查询语句执行的结果也是一张表,可以看成虚拟表

# 复制表结构+记录 (key不会复制: 主键、外键和索引)
create table 新表名 select * from 被复制的表名;

# 只拷贝表结构(不包含键)条件不成立查不到数据
create table 新表名 select * from 被复制的表名 where 1=2;  

# 拷贝结构包含各种key
create table 新表名 like 被复制的表名;

记录 操作

#操作记录之前肯定得先有库和表

#增
insert into 表名 values('按照字段的顺序写值逗号隔开');

insert into t2 values (1,'tom'),(2,'jack'),(3,'tony');


# 删
delete from 表名 where 字段名=存在的值;  # where筛选条件
delete from t2 where id=2; 

#查
select * from 表名;# 查询所有字段数据
select 字段名1,字段名2 from 表名;  # 也可以通过库名.表名跨库
#如果字段过多导致展示错乱 还可以使用\G结尾分行展示
select * from t2;
select name from t2;


# 改
update 表名 set 字段名=新值 where 字段名=存在的值 
update t2 set name='liming' where id=1; 


创建表的完整语法

create table 表名(
	字段名1 字段类型(数字) 约束条件,
    字段名2 字段类型(数字) 约束条件,
    字段名3 字段类型(数字) 约束条件
);
# 注意事项
	1.字段名和字段类型是必须的 数字和约束条件是可选
    2.约束条件可以有多个
    3.最后一个字段结尾不能有逗号(不容易发现)

SQL_MODE

# 1.模糊查询
	show variables like '%mode%';
# 2.修改修改
	set session
    set global 
    直接修改配置文件
    sql_mode = 'strict_trans_tables'

存储引擎

"""
简单的理解为:存储引擎就是处理数据底层逻辑 不同的引擎底层处理方式有所不同
"""

# 如何查看存储引擎信息
	show engines;

# 需要掌握的有四个
	MyISAM
    	是MySQL5.5版本之前默认的存储引擎
        	该引擎存取数据的速度都很快
            但是安全性较低 不支持很多额外的功能
    InnoDB
    	是MySQL5.5版本之后默认的存储引擎
        	该引擎支持事务、行级锁、外键
            存取数据的速度没有MyISAM快但是功能和安全性更高
    memory
    	数据全部存储在内存中 速度很快但是断电立刻丢失
    blackhole
    	黑洞 任何放入其中的数据都会消失(类似于垃圾处理站)

# 比较存储引擎之间的差异
	'''创建表可以指定存储引擎
	create table t1(id int) engine=存储引擎;
	'''
create table t2(id int) engine=MyISAM;
create table t3(id int) engine=InnoDB;
create table t4(id int) engine=memory;
create table t5(id int) engine=blackhole;

# 不同存储引擎文件后缀名
	MyISAM
		三个文件
        	.frm	表结构
            .MYD	表数据
            .MYI	表索引
   InnoDB
		两个文件
    		.frm	表结构
        	.ibd     数据与索引
   memory
		.frm	表结构
   blackhole	
		.frm	表结构
posted @ 2021-11-12 11:10  OVO_3V3  阅读(36)  评论(0)    收藏  举报