创建数据库
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行
删除某一列:alter table 表名 drop column 列名;
select语句
select * from 表名;
select 列名,列名 from 表名;
select 列名 from 表名 where 列=值;
select * from 表名 order by 列;
group by 分组(可以在group by id后面加having 限制语句 如 having min(score) > 60)
create view 储存查找到的数据的引用(视图)
查找完毕后,若原表增加数据,对该引用无影响,若原表删除查找到的数据,再操作该引用时会报错。
create or replace view 视图名 as select * from 表名;
or replace指若该引用已有,则替换掉原来的内容。//和alter view有相同作用
create index 创建索引
create index 索引名 on 表名(列名); //创建普通索引
create index 索引名 on 表名(列名,列名); //创建复合索引
create unique index 索引名 on 表名(列名); //创建唯一索引
其他常用语法
alter database 修改数据库属性
drop database 删除数据库
drop index 删除索引 //drop index 索引名 on 表名;
drop table 删除表 //drop table if exists 表名;
drop view 删除视图 //drop view if exists 引用名;
rename table 重命名 //rename table 旧表名 to 新表名; 视图和原表权限不会转换到新表
truncate table 清空表 //只留下原表名的空表,比drop table 性能更快
alter table 修改表 //alter table 表名 add column 列名; alter table 表名 drop 列名;