MySQL基础语法

创建数据库

create database 数据库名;

create database if not exists 数据库名;

切换到某个数据库

use 数据库名;

查看当前使用的数据库

select database();

创建表(至少要初始化一列)

create table 表名(列1 数据类型,列2 数据类型);

create table 数据库名.表名(列1 数据类型,列2 数据类型);

create table if not exists 表名(列1 数据类型,列2 数据类型);

创建临时表

临时表只对本连接可见,断开连接时自动被drop掉,其他数据库连接不可见,因此重名也没事。

create temporary table 表名(列名 数据类型);

模仿创建表

like用于模仿一个已存在的表,新表的字段属性和索引与原表一致,但是个空表。

create table 新表名 like 源表名;

as用于将查询到的结果复制到新表中,但索引和主外键信息不会复制过来

create table 新表名 as select * from 源表名;

其他常用属性

create table t1(id int primary key auto_increment,name varchar(10) default ‘祖国‘ not null);

primary key:表示该字段为主键

auto_increment:表示自增字段,默认从1开始,一个表中只能有一个自增字段,且该字段必须有key属性,不能有default属性,插入负值会被当成很大的正数。

default:默认值。

not null:不能为空。

key/index:表示索引字段。

foreign key:表示外键。

unique:表示该字段为唯一属性字段。

分享图片

Insert语句

向表中增加一列

alter table 表名 add column 列名 数据类型;

向表中插入值(into可以省略)

insert into 表名 values(列1,列2...); //向每一列插入一个数据

insert into 表名(列1名) values(列1); //向指定列插入数据

insert into 表名 set 列1名=值,列2名=值; //用set向对应列插入数据

insert into 表名 select * from 其他表名; //将从其他表查询出来的数据插入到表中,格式必须一致

insert into 表名 values(1,2,3),(4,5,6),(7,8,9); //可以同时插入多行数据

insert ignore into 表名 values(数据),(数据); //如果存在相同数据则忽略掉,达到间隙插入数据的作用。

insert into 表名(a,b,c) values(1,2,3) on duplicate key update c=c+1; //如果插入数据违反了主键或唯一键的唯一性约束,则insert会变成update语句。相当于update 表名 set c=c+1 where a=1;

update语句

update 表名 set 列1名=值,列2名=值 where 列3名=值 limit 2;

update 表1名,表2名 set 表1名.列1名=表2名.列1名 where 表1名.列2名= 表2名.列2名;

limit表示只修改首先找到的两行数据。

如果没有where,则所有列都会修改。

order by 指定update数据的顺序(desc是倒序,因为正序的话会报错)

分享图片

delete语句

delete from 表名; //删除所有数据

delete from 表名 where 列名=值; //删除指定行

delete from 表名 order by 列名 limit 5; //删除以指定列正序的前5行

select语句

select * from 表名;

select 列名,列名 from 表名;

select 列名 from 表名 where 列=值;

select * from 表名 order by 列;

group by 分组(可以在group by id后面加having 限制语句 如 having min(score) > 60)

分享图片

相关文章
相关标签/搜索