您的位置:首页 > 数据库 > MySQL

数据库MySQL-2-数据类型、SQL语言、DDL、DML、DQL、TCL、DCL

2019-08-08 09:13 423 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/mk1843109092/article/details/98760005

MySQL数据类型

  • MySQL数据库中支持多种数据类型:数值型、字符型、日期型

    常用的数据类型:
    1. 整型
    int:整型,存储整数
    int(M):M表示预期值,与存储大小和数值范围无关
    id int			10000
    id int(3) zerofill	10000
    zerofill 零填充		会在左侧补零
    
    2. 浮点数
    flaot[(M, D)]: 浮点型,存储小数
    salary float(6, 2):表示最多6位,小数占2位,最大存储数值为:9999.99
    double: 浮点型,小数
    
    3. 字符型
    char(M):固定长度的字符串类型
    varchar(M):可变长度的字符串类型(推荐)
    text:大的字符串类型,4G文字
    blob:字节类型
    
    4. 日期
    date:日期类型,年月日			YYYY-MM-DD
    time:事件类型,时分秒			HH:mm:ss
    year:年份				YYYY格式的年份值
    timestamp:年月日 时分秒		时间戳2037年某一时刻 YYYYMMDDHHmmss
    datetime:年月日 时分秒			YY-MM-DD hh: mm: ss
    
    5. 整型
    tinyint			1		-128~127
    smallint		2		32767/65535
    int			4		21亿
    bigint			8		兆
    mediumint		3		八百多万/一千六百多万
    
    注意:选择合适的数据类型,是数据库优化的一部分,short it better原则

数据库中数据的使用

如何操作:编程语言

  • SQL概述 结构化查询语言,可以用于查询和修改关系数据库的语言
  • SQL语言,是数据库的核心语言,被ISO采纳为数据库语言的国际标准,几乎所有的数据库都支持
  • 组成

      数据定义语言(Data Definition Language,DDL):用于管理和定义数据库,包括数据库,数据表等

      create:创建数据库和表
    • drop:删除表对象
    • alter:修改表结果
  • 数据操作语言(Data Manipulation Language,DML):用于操作数据库中所包含的数据

      insert:添加数据
    • delete:删除数据
    • update:修改数据
  • 数据查询语言(Data Query Language,DQL):用于查询数据库对象中所包含的数据

      select:查询数据
  • 事务控制语言(Transaction Control Language,TCL):包括提交事务、事务回滚

      commit:提交事物
    • rollback:事务回滚
    • savepoint:事物节点
  • 数据控制语言(Data Control Language,DCL):用来管理数据库中,包括管理权限以及数据更改

      grant:授权
    • revoke:收回权限

    数据定义语言(DDL)

    数据库的操作

    创建数据库
    • 语言格式:

      create database [if not exists] 数据库名称 [character set [=] 编码名称];
      
      例如
      create database mk;
      create database if not exists mk;		//忽视错误,显示警告
      show warnings					//查看警告
      
      create database db character set gbk;		//创建指定字符集的数据库
    查询数据库
    • 语言格式:

      show databases; 				//查看所有的数据库
      show create database 数据库名称;		// 查询某一个已经创建的数据库
    修改数据库
    • 语言格式:

      alter database [if not exists] 数据库名称 [character set 新的编码名称];
      
      例如
      alter database db character set = utf8;
    删除数据库
    • 语法格式:

      drop database 数据库名称;
      
      例如:
      drop database db;

    数据表的操作

    创建数据表
    • 选择一个数据库

      use 数据库名称;
      eg:
      use mk;
      
      select database();	//查看当前正在使用的数据库
    • 创建数据表语言:

      create table 表名(
      字段名 字段类型 约束,
      字段名 字段类型 约束,
      ....
      );
      
      例如:创建用户表
      create table user(
      uid int,
      username varchar(32),
      password varchar(32),
      birthday date,
      sex enum('男','女')
      );
    查询数据表
    • 语法:

      show tables;			//显示当前数据库中所有的表
      show columns from 表名;	//查询某一张表表结构
      desc 表名;			//查询某张表表结构
    修改数据表
    • 修改表名

      alter  table 表名 rename [to | as] 新表名;
      
      eg:
      alter table user rename us;
      alter table 旧表名 to 新表名 [, 旧表名 to 新表名........];
      
      eg:
      alter table us to user;
    • 添加列

      alter table 表名 add [columns] 列名 列定义 [first | after 列名];
      
      例如:
      alter table user add sal double after paasword;		//在指定的列后面添加新的列
      alter table user add phone varchar(32);			//默认在列的最后面添加新的列
      alter table user add hobby varchar(32) first;			//在列的最前面添加新的列
    • 修改列定义

      alter table 表名 modify 列名 列定义 [first | after 列名];
      
      例如
      alter table user madify sex varchar(32) first;
    • 修改列名

      alter table 表名 change 列名 新列名 新的列定义 [first | after 列名];
      
      例如
      alter table user change hobby address varchar(20) after sal;
    • 删除列

      alter table 表名 drop [columns] 列名;
      
      例如:
      alter table user drop phone;
    删除数据表
    • 语法

      drop table 表名;
      
      例如:
      drop table user;

    数据操作语言(DML)

    插入操作

    • 语法格式

      基本的额查询语句:select * from 表名;
      
      insert [into] 表名 [(列名1,  列名2,.........)] values|value (数值1|表达式, 数值2|表达式,......);
      
      例如:
      insert into teacher (id, note) values ('1', '先争它一个亿');
      insert into teacher value (2, 'wangjianlin', 'xian zheng ta yi ge yi');

    删除操作

    • 语法操作

      delete from 表名 [where 条件];
      
      例如:
      delete from teacher where id=1;	//指定条件删除记录
      delete from teacher;			//不带条件删除所有记录
      
      扩充:
      truncate ta
      3ff7
      ble 表名;			//清空表中所有数据
      
      面试题:
      delete删除于truncate有什么区别??
      删除方式:
      delete:一条一条的删除,不清空auto_increment 记录数
      truncate:直接将表中数据进行清空,auto_increment 自增 将被重置,重新开始

    修改操作

    • 语法:

      update 表名 set 列名1=数值, 列名2=数值,........ where 条件;
      
      例如:
      update teacher set name='xiaosan', note='ming nian zai lai yi ge' where id=1;//修改指定记录
      update teacher set name='xiaosi';		//不带条件,修改表中所有数据
  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: