mysql简单实用命令

数据库结构相关SQL语句

  • 创建数据库
create database my_demo_db;
  • 查看当前数据库编码集
show create database my_demo_db;
  • 查看全局编码
show variables like 'character%';
  • 快速的设置client端编码集(临时设置,窗口关闭后失效)
set names gbk;
set names utf8;
  • 删除数据库
drop database my_demo_db;
  • 修改数据编码
alter database my_demo_db character set utf8;
  • 查看当前使用数据库
select database();

表结构相关的SQL语句

  • 创建表
create table tablename(
    列名 类型(长度),
    列名 类型(长度),
    列名 类型(长度),
    列名 类型(长度)
) character set utf8;
  • 查看表结构
desc tablename;
  • 主键约束
primary key auto_increment
  • 唯一约束
unique
  • 非空约束
not null
  • 向已有的数据表添加一列
alter table tablename add 列名 类型(长度) 约束;
  • 改变已有数据表一列的类型 长度
alter table tablename modify 列名 类型(长度) 约束;
  • 改变已有数据表的列名
alter table tablename chage 旧列名 新列名 类型(长度) 约束;
  • 删除已有的一列
alter table tablename drop 列名;
  • 修改表名
rename table 旧表名 to 新表名;
  • 删除数据表
drop table tablename;
  • 查看当前数据库中所有表
show tables;

表数据操作

  • 插入数据
insert into tablename (列名1,列名2,....) values('值1','值2',....);//数字不要加 '
insert into tablename values(所有值);//自动增长的列写null
  • 更新数据
update tablename set 列名=值,列名=值 where binary 条件;
  • 删除数据
delete from tablename where 条件;
delete from tablename;//原理是一行一行的删
  • 事务回滚
start transaction;//开启事物

rollback;//回滚
  • 删除一个表中所有数据
//原理是.先删除表结构,再创建表结构,删除后不可回滚,性能高于delete from tablename;
truncate tablename;

select数据查询操作

  • 查询所有数据
select * from tablename;
select 列名,列名 from tablename;
  • distinct指定一个列名查询排重
select 列名,distinct列名 from tablename;
  • 查询时进行运算
select 列名运算表达式 from 表名;
  • 列取别名
select 列名 as 别名 from 表名;//as可以省略
  • where条件查询
 select * from where 条件;
  • 等于 <>
select * from tablename where 列名 <> 100;//列名不等于100
  • 之间 between - and -
select * from tablename where 列名 between 80 and 100;//列名>80 and 列名<100
  • in
select * from tablename where 列名 in(70,80,90);//列名值是70或80或90的条目
  • like
select * from tablename where 列名 like 'a%';//a开始,后面多位任意
select * from tablename where 列名 like 'a_b';//a _一位任意
  • is null
select * from tablename where 列名 is null;
//查询列名是null的所有数据;null取值1/2 位于1(true)和0(false)之间
//任何表达式在与null进行逻辑运算就是null
  • and or not
//and先执行
  • order by 排序
select * from tabelname order by 列名 asc|desc;//默认asc升序
  • count 统计查询结果的条数
select count(*) from tablename;
select count(*) from tablename where 条件;
  • 计算 列 和
select sum(列名) from tablename;//sum在进行求和时  null不进行运算
  • avg 求 一列数据的平均值
select avg(列) from tablename;//null也是不参与运算
  • max/min 求一列数据的最大值/最小值
select max(列) from tablename;
  • ground by
select 列名 from tabelname group by 列名;
  • having
    where having
    where 是在分组之前执行
    having 是在分组之后执行
    having可以替换where

数据库的备份和恢复

  • 备份
cmd>mysqldump -u root -p 数据库名字 > c:\mydatabase.bak
  • 恢复
//1.首先创建一个空数据库
mysql>create database mydb;
//方法一
mysql>source 备份文件;
//方法二
cmd>mysql -u root -p 数据库名 < 数据库备份文件

多表设计

外键约束,一张表一个字段引用另一张表的主键

  • 给表添加外键
alter table tablename add foreign key (字段) references 另一张表(id);

你可能感兴趣的:(mysql简单实用命令)