美文网首页我爱编程
MySQL 常见操作

MySQL 常见操作

作者: 穿梭在围城 | 来源:发表于2018-05-27 21:59 被阅读0次

一、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 条件;

相关文章

  • python对mysql的操作

    python对mysql的操作 Mysql 常见操作 数据库操作 PS:用户权限相关数据保存在mysql数据库的u...

  • MySql笔记

    Mac安装并运行MySql MySql数据库、数据表的操作 MySql数据类型及常见约束 MySql表操作 MyS...

  • mysql 常见操作

    常见基本语法使用 HAVING 子句在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数...

  • MySQL 常见操作

    一、SQL语句分类 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对...

  • mysql常见操作

    1 mysql常用术语 1) 数据库 database (***) 2) 表 table (***) ...

  • mysql常见操作

    说明:本文旨在记录常见数据库操作 数据库相关 增加数据库;create database 数据库的名字 chars...

  • MySQL常见操作

    安装好数据库 1 . ##用命令行连接mysql server格式:mysql -u用户 -h主机 -p端口 -p...

  • MySQL常见操作

    Øselect user from mysql.user; Ø* mysql链接服务器mysql-h localh...

  • mysql常见操作

    函数:https://blog.csdn.net/sinat_38899493/article/details/7...

  • 用Python操作MySQL

    使用Python操作MySQL的常见方式有以下几种: MySQL-pythonMySQL-python 又叫MyS...

网友评论

    本文标题:MySQL 常见操作

    本文链接:https://www.haomeiwen.com/subject/tjmijftx.html