Mysql语句

215 阅读2分钟

创建表

格式:

creat table [if not exists] tablename(
 `列名` 类型 [属性] [索引] [注释],
 `列名` 类型 [属性] [索引] [注释]
)engine= [innodb|myisam] [字符集类型][注释]

样例:

CREATE TABLE IF NOT EXISTS table_name(
 `id`  INT(5) NOT NULL AUTO_INCREMENT COMMENT '学号',
 `name` VARCHAR(20)  NOT NULL DEFAULT '匿名' COMMENT '姓名',
  PRIMARY KEY ( `id` ),
)ENGINE=INNODB DEFAULT CHARSET=utf8

引擎

innodbmysiam
事务支持支持不支持
数据行锁定支持不支持
外键约束支持不支持
全文索引不支持支持
表空间较小较大 约2倍
物理存放*.frm和上级目录下的iddata表定义文件(.frm)、数据文件(.MDY)、索引文件(*.MDI)
参考

修改表

样例:

ALTER TABLE table_name RENAME AS table_name2 重命名表 
ALTER TABLE table_name2 ADD age INT(3) 添加属性
ALTER TABLE table_name2 MODIFY age VARCHAR(3) 修改约束
ALTER TABLE table_name2 CHANGE age age1 INT(3) 重命名属性
ALTER TABLE table_name2 DROP age1 删除属性
DROP TABLE IF EXISTS table_name2 删除表

ps: modify 不能修改列名,change可以

外键

格式:

[CONSTRAINT 约束名]foreign key('cloumn_name') references out_table("out_cloumn_name")

样例:

方式一:
create table if not exists table_name(
 `id`  int(5) not null auto_increment comment '学号',
 `name` varchar(20)  not null default '匿名' comment '姓名',
  PRIMARY KEY ( `id` ),
  foreign key (`id`) references admin_user(admin_id)
)engine=innodb default charset=utf8
方式二:
ALTER TABLE table_name
ADD foreign key (`id`) references admin_user(admin_id)

Insert

格式:

insert into table([字段][字段][字段]..) values('值1''值2'...),(...)
insert into table  values('值'....)

样例:

INSERT INTO table_name VALUES(2,'zhangsan')
INSERT INTO table_name (id) VALUES(3)

Update

格式:

update table set 字段='',字段=''.... where 条件

样例:

UPDATE table_name SET `name`='hello' WHERE id=2

ps :没有where条件则修改所有的表数据

where条件

  • 条件之间可以通过and or 连接
  • > < = >= <= between... and
  • 模糊查询like % 任意 _ 单个字符 (例: where name like '刘%' 查询姓刘的)

join

src=http___img-blog.csdnimg.cn_20210207162217619.png_x-oss-process=image_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzY1NzI2NA==,size_16,color_FFFFFF,t_70&refer=http___i.jfif

Select

格式:

select [distinct] 字段名 as 别名 
from table1 as 别名,table2
left|right|inner join tablename2 on
where 条件
group by 分组字段
having  条件
order by  根据字段排序
limit   x 第x页 y 一页y条数据

样例:

select * from student 查询学生表的全部信息
select sno from student 查询学生表的学号(sno)字段
select sno as 学号 from student  取别名
select distinct sno from result 去重 
select version() 查数据库版本
select 100*3-1 as 计算结果  用于计算
select @@auto_increment_increment 查自增步长

Delete

格式:

delete from table where 条件

样例

delete from table where id=1;

ps:

  • innodb 删除后自增从1开始
  • myisam 删除后从上一个自增量开始

Truncate

格式: 清空数据,保留表结构

truncate table

ps: 重置计数器

函数

concat 拼接字符

select concat("姓名:",stuname) as 学生姓名 from stu