-- mysql命令大全
运维常用三种数据库命令类型
数据库定义语言DDL: Data Defination Lanuage
Show 查看系统数据库,查看数据库中的表, 查看用户授权
Desc 查看数据库中数据表结构
Select 查看数据库中表的数据内容
create 创建数据库,创建表,创建数据库访问用户
Drop 删除数据库,删除表
Alter 修改表
数据库操作语言DML Data Manapulate Language
insert 对表插入新的内容
update 更新数据表内原有的数据内容
delete 删除表内已存在的数据内容
数据库控制语言DCL Data Control Language
Create 建立数据库访问用户
Delete 删除数据库访问用户
Grant 建立或修改用户权限
Revoke 取消用户数据库权限
Show 查看用户授权
其他类型数据库关键字:
flush privileges
刷新数据库,将新配置的数据库信息同步到数据库
use 库名
定义使用数据库,所有未明确指定被操作对象的库时的mysql语句,都对use指定的对象库进行执行
database
用于定义被操作对象类型 database表示操作对象为库
table
表示定义被操作对象类型 table表示操作对象为表
where
指定匹配条件的关键字,在sql语句中where关键字跟匹配条件
and
一般出现在where条件筛选中进行条件组合,and和, 满足条件1和条件2
or
或 使用格式:条件1 OR 条件2 满足条件1或条件2
not
非 使用格式: not条件,此条件以外的都算满足
*
所有字段,一般在SELECT查数据内容语句中,在未明确指定查看字段中代表需要查看的所有列
like
指定模糊查询条件关键字
%
百分号 任意字符
_
下划线 单个任意字符
is null
值为null
is not null
值不为null
in(值1,值3)
在集合中
not in(值1,值3)
不在集合中
比较符
=
等于号
!=
不等于
>
大于号
<
小于号
>=
大于等于
<=
小于等于
运算符
+
加号 select 1 + 2
-
减号 select 2 + 1
/
除法 select 6 / 2
*
乘法 select 3 * 2
%
取余
--查看当前所有数据库
show databases;
-- 查看指定数据库下所有的表名称
show tables from 库名;
-- 查看表信息
show table status like '表名'
show table status like '表名'\G; //整理输出信息格式,有利于查看
-- 查看用户授权
show grants for 用户名@允许登录主机;
-- 创建用户信息登记表
create database 库名 CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 创建用户表并定义用户表字段信息
USE space_test;
CREATE TABLE USER (
Uid int(11) UNSIGNED NOT NULL auto_increment PRIMARY KEY,
Username VARCHAR(30) NOT NULL,
Passwd VARCHAR(255) NOT NULL,
Age TINYINT UNSIGNED NOT NULL,
High decimal(5,2) Not Null,
Gender enum('男','女','保密') default '保密',
Occupation VARCHAR(20),
Tel int(11) NOT NULL,
Datetime date
);
命令格式:
CREATE TABLE 库名.表名(
字段1 定义字段类型 约束 条件,
字段2 定义条件 约束 类型,
字段n 定义条件)
针对字段条件功能约束如下:
int(数值) 定义字段能够写入的值的类型 int为整数 int(2)最多支持两位数的整数
VARCHAR(数值) 定义字段能够写入的值的类型 VARCHAR为字符串 VARCHAR(30)最能能写多少个字符串
UNSIGNED 将数字类型无符号化,如-1为整数,此选项不支持负数
primary key 设置为主键,主键必须包含唯一的值,每个表都应该有一个主键,并且每个表只能有一个主键。
NOT NULL 不允许自动内容为空,约束该字段值不允许为空
auto_increment 定义该字段值在未明确输入时,会自动增长
enum('值1','值2','值n') 枚举,让用户选择
default 值 插入数据该字段如果未写入就自动加默认值
decimal(5,2) 指定总共5位数,2位是小数
date 3字节,日期,格式:2014-09-18
time 3字节,时间,格式:08:42:30
datetime 8字节,日期时间,格式:2014-09-18 08:42:30
-- 查看数据创建命令
show create database 库名
-- 查看数据表创建命令
show create table 表名称;
-- 修改数据表名称
ALTER TABLE 库.原表名 RENAME TO 库.新表名;
-- 删除数据表
drop table 表名称;
-- 修改数据库字段信息
分为四种:(执行操作关键字)
⑴ modify 修改数据表字段属性,约束,类型,条件;
⑵ change 修改数据表字段名称
⑶ drop 删除已存在的字段
⑷ add 添加新的字段
命令格式:
alter table 数据库名.表名 执行操作 被操作字段 [被操作对象字段属性定义];
-- 修改数据库字段属性
modify 修改原有字段属性 (直接对已存在字段通过modify传递新的属性,新属性会覆盖原有,不会叠加)
alter table space_test.USER modify Tel CHAR(11) NOT NULL ;
-- 修改数据表字段名称 change
alter table space_test.USER change Datetime Date date not null;
格式: alter table 库.表 change 原字段名 新字段名 新字段属性;
-- 删除数据表字段 drop
alter table space_test.USER drop Date;
格式: alter table 库.表名 drop 被删除字段名;
-- 添加数据表新字段;
alter table space_test.USER add Date date NOT NULL;
格式: alter table 库.表名 add 新增字段名 属性;
-- 将数据写入数据表 insert into
insert into space_test. USER (Username,Passwd,Age,High,Gender,Occupation,Tel,Date)
values('taro','taro321',30,'男','180.00','系统安全','13531229832','2017-07-02');
命令格式: insert into 库.表名(写入值的字段名1,写入值的字段名2) values(字段1值,字段2值)
-- 当所有字段都需要插入新数据时,省略写法格式:
insert into 库.表 values(字段1值,值段2值,...)
-- 往数据表同时插入多条数据
insert into space_test.USER(Username,Passwd,Age,High,Gender,Occupation,Tel,Date)
values('space','Abcd1234',19,165.53,1,'IT','13611229876','2018-01-01'),
('wu','123456',22,171.17,1,'IT','13511229876','2018-07-02'),
('taro','taro321',30,180.01,2,'系统安全','13531229832','2017-07-02');
命令格式:
insert into 库.表名(写入值的字段名1,写入值的字段名2)
values(字段1值,字段2值),(字段1值,字段2值),(字段1值,字段2值);
-- 修改数据库表中字段内容 update
update space_test.USER set High=170.01 where Uid=1;
命令格式: update 库名.表名 set 字段名='新内容' where 字段名='满足的条件';
-- 删除数据表中的内容 delete
delete from space_test.USER where Uid=2;
命令格式: delete from 库名.表名 where 字段名='满足的条件值';