首页 > 数据库技术 > 详细

MySQL常见操作

时间:2018-05-28 00:17:46      阅读:236      评论:0      收藏:0      [点我收藏+]

转载请注明转载地址:https://www.cnblogs.com/mr-zhao/p/9097980.html

一、SQL语句分类

  • 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等
  • 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等
  • 数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户
  • 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等

二、数据库操作

  • 创建数据库(create)
    • 直接创建:
      • create database 数据库名;
    • 创建特定编码的数据库:
      • create database 数据库名 character set 字符集;
  • 查看数据库
    • 查看数据库中:
      • show databases;
    • 查看数据库定义信息:
      • show create database 数据库名;
  • 使用数据库
    • 查看正在使用的数据库:
      • select database();
    • 其他的数据库操作命令:
      • use 数据库名;

三、表的操作

  • 创建表:
  • create table 表名(字段名 类型(长度) [约束], 字段名 类型(长度) [约束],
    ...);
  • 查看表:
    • 查看数据库中的所有表:
      • show tables;
    • 查看表结构:
      • desc 表名;
  • 删除表:
    • drop table 表名;
  • 修改表结构格式:
    • 修改表添加列:
    • alter table 表名 add 列名 类型(长度) [约束];
    • 修改表修改列的类型长度及约束:
      • alter table 表名 modify 列名 类型(长度) 约束;
    • 修改表修改列名:
      • alter table 表名 change 旧列名 新列名 类型(长度) 约束;
    • 修改表删除列:
      • alter table 表名 drop 列名;
    • 修改表名:
      • rename table 表名 to 新表名;
    • 修改表的字符集:
      • alter table 表名 character set 字符集(了解);
  • 插入表记录:
    • 向表中插入某些字段:
      • insert into 表 (字段1,字段2,字段3..) values (值1,值2,值3..);
      • insert into 表 values (值1,值2,值3..);
  • 注意:
    • 值与字段必须对应,个数相同,类型相同
    • 值的数据大小必须在字段的长度范围内
    • 除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
    • 如果要插入空值,可以不写字段,或者插入 null。
  • 修改表
    • 更新所有记录的指定字段
      • update 表名 set 字段名=值,字段名=值,...;
    • 注意:
      • 列名的类型与修改的值要一致.
      • 修改值得时候不能超过最大长度.
      • 除了数值类型外,其它的字段类型的值必须使用引号引起.
  • 删除记录
    • 单单删除记录
      • delete from 表名 [where 条件];
    • 初始化表
      • truncate table 表名;

四、约束

  • 主键约束
    • PRIMARY KEY
      • 主键必须包含唯一的值。
      • 主键列不能包含 NULL 值。
      • 每个表都应该有一个主键,并且每个表只能有一个主键。
    • 添加主键约束
      • 创建表时,在字段描述处,声明指定字段为主键
        • crtea table 表名 (字段名 字段类型 primary key,字段名 字段类型 ....);
      • 创建表时,在constraint约束区域,声明指定字段为主键
        • crtea table 表名 (字段名 字段类型,字段名 字段类型 .... ,constraint 主键名 primary key(字段1,字段2...));
      • 创建表之后,通过修改表结构,声明指定字段为主键
        • alter table 表名 add primary key(字段1,字段2...);
    • 删除主键约束
      • alter table 表名 drop primary key;
  • 自动增长列
    • auto_increment
    • 一般是主键
    • create table 表名 (字段1 字段类型 primary key auto_increment,字段2 字段类型 .....);
  • 非空约束
    • not null
    • create table 表名 (字段1 字段类型 nut null,字段2 字段类型 .....);
  • 唯一约束
    • unique
    • 方式一
      • create table 表名 (字段1 字段类型 unique,字段2 字段类型 .....);
    • 方式二
      • create table 表名 (字段1 字段类型 ,字段2 字段类型 ..... , constranit 约束名 unique(字段));
    • 方式三
      • alter table 表名 add constraint 约束名 unique(字段);
    • 删除唯一约束
      • alter table 表名 drop index 约束名;
  • 外键约束
    • 从表外键的值是对主表主键的引用。
    • 从表外键类型,必须与主表主键类型一致。
    • 声明外键约束
      • alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);
      • [外键名称] 用于删除外键约束的,一般建议“_fk”结尾
    • 使用外键目的:
      • 保证数据完整性

五、表数据的查询

  • 简单查询
    • select [distinct] * | 列名[as 别名],列名 from 表名 [as 别名] where 条件;
      • distinct 去重
      • as 别名 也可以省略 as
      • 查询字段可以当做参数进行运算(字段+1...)
  • 条件查询
  • 比较运算符
    • 大于、小于、大于(小于)等于、不等于
      • < <= >= = <> !=

    • 显示在某一区间的值(含头含尾)
      • BETWEEN ...AND...
    • 显示在in列表中的值
      • IN(值1,值2,...)
    • 模糊查询,Like语句中,%代表零个或多个任意字符,_代表一个字符
      • LIKE ‘....‘
    • 判断是否为空
      • IS NULL
  • 逻辑运算符
    • 多个条件同时成立
      • and
    • 多个条件任一成立
      • or
    • 不成立
      • not
  • 排序查询
    • SELECT * FROM 表名 ORDER BY 排序字段 ASC|DESC;
      • ASC 升序 (默认) |
        DESC 降序
  • 聚合查询
    • count:统计指定列不为NULL的记录行数;
    • sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
    • max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
    • min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
    • avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
    • SELECT 聚合函数名(字段名) FROM 表名;
  • 分组查询
    • SELECT 字段1,字段2… FROM 表名 GROUP BY分组字段 HAVING 分组条件;
    • having与where的区别:
      • having是在分组后对数据进行过滤
      • where是在分组前对数据进行过滤
      • having后面可以使用分组函数(统计函数)
      • where后面不可以使用分组函数
  • 多表查询
    • 交叉连接查询(基本不会使用-得到的是两个表的乘积)
      • select * from A,B;
    • 内连接查询(使用的关键字 inner join , inner可以省略)
      • 隐式内连接:select * from A,B where 条件;
      • 显示内连接:select * from A inner join B on 条件;
    • 左外连接:
      • left outer join
        select * from A left outer join B on 条件;
    • 右外连接:
      • right outer join
        select * from A right outer join B on 条件;

MySQL常见操作

原文:https://www.cnblogs.com/mr-zhao/p/9097980.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!