天天看点

数据库MySQL-2-数据类型、SQL语言、DDL、DML、DQL、TCL、DCLMySQL数据类型数据库中数据的使用

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 table 表名;				//清空表中所有数据
    
      面试题:
      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';		//不带条件,修改表中所有数据