增:insert
删:delete
改:update
查:show或select
连接数据库
mysql -h[主机地址] -u[用户名] -p[用户密码]
修改密码
mysqladmin -u[用户名] -p[旧密码] -password[新密码]
增加新用户
grant select on 数据库. * to 用户名@登录主机 identified by /“密码/”;
windows启动MySQL
net start mysql
虚拟机启动MySQL
service start mysql
创建
- 创建数据库:
create database 库名;
- 创建数据表(先use要操作的数据库):
create table 表名(字段名 字段类型(字段要求) 字段参数);
- 创建临时表:
create temporary table 表名(字段名 字段类型(字段要求));
增
insert into 表名(id,name) values(0,'张三’)
删
删数据
delete from 表名;
delete from 表名 where id = 1;删结构
drop database 库名;
drop table 表名;
alter table 表名 drop column 列名;
改
修改所有
updata 表名 set 列名=‘新的值,非数字加单引号’;
带条件修改
updata 表名 set 列名=‘新的值,非数字加单引号’ where id = 6;
对表重新命名
alter table 旧表名 rename 新表名;
查
查看数据库
show databases;
查看表结构(先指定数据库)
desc 表名
查询所有数据
select * from 表名;
带条件查询
select * from 表名 where 列名=条件值;
select * from 表名 where 列名 not like (like) ‘字符值’;
分页查询
select * from 表名 limit 每页数量 offset 偏移量;
查询时间
select now();
查询当前用户
select user();
查询数据库版本
select version();
查询当前使用的数据库
select database();
复制
复制表结构及数据到新表
CREATE TABLE 新表SELECT * FROM 旧表
这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除。
不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性。需要自己用"alter"添加,而且容易搞错。
只复制表结构到新表
CREATE TABLE 新表SELECT * FROM 旧表WHERE 1=2
或CREATE TABLE 新表LIKE 旧表
复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表SELECT * FROM 旧表
复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,…) SELECT 字段1,字段2,… FROM 旧表
可以将表1结构复制到表2
SELECT * INTO 表2 FROM 表1 WHERE 1=2
可以将表1内容全部复制到表2
SELECT * INTO 表2 FROM 表1
备份
备份数据库:(将数据库test备份)
mysqldump -u[用户名] -p[密码] test>[备份的路径]
备份表格:(备份test数据库下的mytable表格)
mysqldump -u[用户名] -p[密码] test mytable>[备份的路径]
将备份数据导入到数据库:(导回test数据库)
mysql -u[用户名] -p[密码] test