增删改查mysql语句
增(在表中插入多行数据)
一次插入多行数据方法一:
insert into mydb.kword(field1,field2,field3) values
(value1,vaule2,value3),
(value1,vaule2,value3);
一次插入多行数据方法二(列都互相对应的情况下。字段名可以省略)
insert into tables_name values
(value1,vaule2,value3),
(value1,vaule2,value3);
删(删除行数据)
delete from table_name where id=1;
改(更新行数据)
update table_name set field1='value1',field2=value2 where id=1
查(查询行数据)
select * from table_name where id>=2;
表管理mysql语句(可以在cmd查看mysql)
选择库:use 库名称;
创建表:mysql数据类型详解,mysql创建表sql语句
查看所有表:show tables;//直接show tables 是分不出哪些是物理表,哪些是视图来的
查看所有表详细信息:show table status G; //后面加一个G,可以纵向显示,不加则横向显示
查看某张表详细信息:show table status where name='表名' G;//后面加一个G,可以纵向显示,不加则横向显示
查看表结构:desc 表名称;
查看建表过程:show create table 表名称;//查看创建此表的sql语句
查看建视图过程:show create view 视图名;//查看创建此视图的sql语句
删除表:drop table 表名 // DROP TABLE IF EXISTS 表名 (如果存在则删除表)
删除视图表:drop view 视图名称;
改表名:rename table 表名称 to 表新名称;
清空表数据:truncate 表名称;(sqlite无效)//与“delete from 表名称”一样可以达到删除全部数据的效果,但是清空表后,自增id从0开始。而删除数据自增id不会从0开始,相当于删除表后又重建,。比delete速度快。
mysql创建表语句格式:
格式:
create table tablename(
列1 列类型 列属性 默认值,
列2 列类型 列属性 默认值,
列3 列类型 列属性 默认值
)engine=储存引擎 default charset=utf8
//储存引擎可选值与各个值的特点:点击查看
高级查询:limit是mysql的语法
有两个参数:(第一个参数可以省略)
参数一:从结果的第几行开始取
参数二:要取出多少行。
select * from table limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。
例:
select * from tablename limit 2,4
即取出第3条至第6条,4条记录
主键与索引
主键:PRIMARY KEY
主键列不重复,能够区分每一行,主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
声明方法:PRIMARY KEY
方式一:
create table tablename(
id INT(11) PRIMARY KEY,
)
方式二:
create table tablename(
id INT(11),
PRIMARY KEY(id)
)
设置自增:auto_increment
一张表只能有一列为自增,且此列必须加索引(index/key)
create table tablename(
id INT(11) PRIMARY KEY auto_increment,
)
索引概念:
索引是数据的目录,能快速定位行数据在磁盘的位置。
索引提高了查询的速度,降低了增删改查的速度,并非加的越多越好。
一般在查询频率较高的列上加索引,并且重复度低的列上加。
索引:
key 普通索引
unique key 唯一索引
primary key 主键索引
fulltext key 全文索引//全文索引在中文下无效,分词+索引才有效,一般用第三方解决方案,如sphinx
创建表时索引用法:
方式一:
create table tablename(
id INT(11) PRIMARY KEY,
)
方式二:
create table tablename(
id INT(11),
PRIMARY KEY(id)
)
创建表时多列索引用法
create table tablename(
id INT(11),
姓 char(2),
名 char(10),
KEY 姓名(姓,名)
)
索引操作语法:
查看表索引 show index from 表名称;
删除索引 :alter table 表名 drop index 索引名;
或:drop index 索引名 on 表名;
mysql表结构的修改,mysql列的增删改查
在列最后增加一个列:
alter table 表名 add 列名称 列类型 列参数;
例:alter table tablename add birth date not null default '0000-00-00';
在某列后面添加列
alter table 表名 add 列名称 列类型 列参数 after 某列
例:alter table tablename add birth date not null default '0000-00-00' after 某列;
删除某列
alter table 表名 drop 列名
(sqlite不支持删除列,sqlite可以查询原表来创建新表.然后删除旧表 再重命名新表的方式来删除列)
修改某列属性
alter table 表名 modify 列名 新属性
修改某列列名
alter table 表名 change 列名 新列名 属性
其他类
修复语句:
当mysql出现 ismarkedascrashedandshouldberepaired 的时候(索引损坏的时候)
可用下列修复语句来修复
repair table 表名