MySQL可以说是最常用的小型数据库,加上现在越来越流行的分布式架构,哪怕是一般的中大型项目也可以用MySQL来进行部署。
数据库的操作最常用的就是增删改查,还有一些切换数据库等操作。以下命令不加说明的,均是MySQL模式下命令,命令行模式下的命令要设置好系统环境变量才能使用。
增
创建数据库
create database if not exists 数据库名 default charset utf8 collate utf8_general_ci;
如果数据库不存在则创建数据库 使用utf-8默认字符集为utf8_general_ci
创建表
create table table_name
(字段名1 字段类型 not null,字段名2 字段类型,primary key(字段名2))
创建表的同时,为字段名1添加非空约束,设置字段名2为主键
插入数据
Insert into 表名 values(全部字段值)
Insert into 表名(字段名1,字段名2) values(字段1值,字段2值) //数据只有部分字段值
创建用户
create user “用户名”@”host” identified by “密码” //host为登录ip,可以是localhost或者其他ip地址,若是任意ip可登录,使用%
删
删除数据库
drop database if exists数据库名
删除表
drop table if exists表名
删除数据
delete from 表名 where 条件 //不加where 条件,则删除所有数据
删除用户
drop user “用户名”@”host”
改
更新数据
Update table_name set 字段名 = 属性新值 where 条件
授权用户
grant 权限 on 数据库.表名 to “用户名”@”host” with grant option
//权限包括select、update、insert、delete等等,可以使用all表示所有权限;后面的with grant option,表示该用户可以把自己的该权限赋予其他用户
撤销用户授权把grant改成revoke,其他格式一致
更改密码
set password for “用户名”@”host” = password(“新密码”)
在命令行模式下,可以使用mysqladmin 命令
mysqladmin -uroot -p旧密码 password 新密码 //仅可更改本地MySQL用户密码
查
select * from 表名 where条件 (groud by ,order by,having)
select可以说是数据库中最常用的命令了。
1.*可以使用表中指定字段代替,查询结果仅显示指定字段
2.select distinct 去重查询,distinct要紧接着select
3.select * into 表名2 from 表名1 //使用查询结果创建一个表2(表2之前不存在),into 表名要在from前面
4.groud by 字段1 ,查询结果以字段1分组,相同的为一组(查询字段中要包括字段1)
5.order by 字段 1 ,查询结果以字段1排序(默认升序),字段1后加上空格,desc排序为降序,升序用asc
6.having 条件,where与having同样是筛选条件,区别
where是直接筛选表中数据,不能使用函数
having是对筛选出来、分组了的数据再进行筛选,可以使用函数
如果使用having不使用函数的话,直接把条件放在where里就可以了
查询表结构
desc 表名
查询有哪些数据库
show database
查询当前使用数据库名
select datebase()
查询用户及对应登录权限host
select host,user from mysql.user
其他常用操作命令
切换数据库
use 数据库名
启动/停止mysql
net start/stop mysql
登录用户,命令行模式(不是mysql模式下)
mysql -u用户名 -p密码 -h目标地址
若是登录本地mysql可以不用-h
退出
exit
导入数据库
source path/*.sql
导出数据库,命令行模式下
mysqldump -u用户名 -p密码 -h目标ip >path/*.sql
最后
想使用图形化界面管理数据库,个人推荐使用navicat,一款很好用的数据库管理软件,功能十分强大。
————————————————