mysql基础语法,常用方法和数据类型

mysql数据库基础语法、常用方法和数据类型

一、mysql基础语法,数据库database、数据表table以及数据data的基础语法

  1、数据库

# 创建数据库
create database hqh_mysql default character set utf8;
# 查看数据库代码
show create database hqh_mysql;
# 查看创建的数据库,查看创建的所有数据库
show databases; 
# 修改数据库的编码 
alter database hqh_mysql character set utf8; 
alter database hqh_mysql charset='utf8'; 
# 删除数据库
drop database hqh_mysql;
# 进入指定的数据库 
use hqh_mysql;

  2、数据表

# 创建数据表
create table hqh_table( id int primary key, name varchar(30) not null, sex char(1), birthday date ); 
# 查看创建数据表的代码 
show create table hqh_table; 
# 查看表结构 
desc hqh_table; 
desc hqh_table 列名; 查看列的结构 
# 删除数据表 
drop table hqh_table; 
# 修改数据表 
alter table hqh_table add age int;   # 增加属性 
alter table hqh_table add age int after name;  # 指定位置增加属性 
alter table hqh_table drop age;  # 删除属性 
alter table hqh_table modify name varchar(20)  # 改变属性 
alter table hqh_table change id not int;  # 改变属性 
alter table hqh_table rename hqh_table1;  # 改表名 
rename table hqh_table to hqh_table1;  # 将hqh_table改名为hqh_table1

  3、数据

# 增加表数据
insert into 表名(属性1,属性2)  values(值1,值2);  # 表示在对应的属性增加对应的值。
insert into 表名 values(值1,值2....);  # 表示在表中添加值,有多少个属性就有多少个值。
# 删除表数据
delete from 表名;  # 表示删除表中所有的数据。
delete from 表名 where 条件;  # 表示基于条件删除表的数据。
# 修改表数据
update 表名 set 属性=where 条件;   # 表示根据条件修改表中对应属性的值
# 查找表数据
select 属性 from 表名 where 条件;

二、mysql常用方法

  创建数据表时,设置自增长的语法auto_increment,表示让对应的列自动增加,通常和primary key auto_increament组合使用。

  计算时间差,datediff(now(),time) 或者timestampdiff(year,time,now()),比如:

    给emp表中入职时间大于1年的员工工资加1000. datediff() timestampdiff() now()
    update emp set salary = salary + 1000 where datediff(now(),time) > 365;
    update emp set salary = salary + 1000 where timestampdiff(year,time,now()) > 0;

  最小值min(),最大值max(),平均值avg(),count()记数

  分组group by +属性名

  排序order by+属性名,asc:升序,desc:降序

三、mysql基本数据类型

名称 数据类型 属性 解释 实例
整型 int   整型(包含正数,负数)。 12
tinyint unsigned属性,表示不允许负值。 tinyint的存储范围-128-127,tinyint unsigned可以存储的范围是0~255,unsigned可以使正数的上限提示一倍。  
smallint   存储范围0-255。  
实数浮点类型(带有小数部分的数字)     实数:带有小数部分的数字。  
float/float(x,y)  

使用4个字节存储,单精度浮点型,小数,x表示几位数,y表示小数点后位数。

float(2,1)表示1.2
double(x,y)   使用8个字节存储,双精度浮点型,小数。  double比float有更高的精度和更大的范围。
decimal(x,y)   精确型,小数,通常在存储财务数据时使用,但在数据量比较大的时候,可以使用bigint代替decimal,将需要存储的货币单位根据小数的位数乘以相应的倍数即可,这样可以避免浮点数存储计算不精度和decimal精度计算代价高的问题。 decimal(3,1)表示21.1
时间类型 date   表时间,年月日,YYYY-MM-DD。 只表示1601-01-01到9999-01-01
time   表时间,时分秒,HH:mm:ss。 表示00:00:00到23:59:59
datetime   表时间,年月日时分秒,YYYY-MM-DD HH:mm:ss。  
timestamp   表时间,可以精确到毫秒。  
字符串类型 char   定长类型,MySQL总是根据定义的字符串长度分配足够的空间,char值会根据需要采用空格进行长度填充。

char适合存储很短的字符串或者都是一个长度的字符串,比如MD5值;

对于经常变更的数据,char也比varchar更友好,定长的char类型不容易产生碎片;

对于较短的列,char也比varchar更有效率,因为不用额外的1字节记录长度。

  varchar   可变类型,比char更节省空间,因为它仅适用必要的空间。varchar需要使用1~2个额外字节记录字符串的长度,如果列的最大长度小于等于255字节,使用1个字节表示,否则使用2个字节。  
  blob   采用二进制存储,没有排序规则和字符集。 MySQL会把每个blob和text值当做一个独立的对象处理。存储引擎在存储是通常会做特殊处理。当blob或text的值太大时,InnoDB会使用专门的外部存储空间进行存储,此时每个值在行内需要1~4个字节存储一个指针,然后在外部存储区域存储实际的值。
  text   采用字符方式存储,有排序规则和字符集。

posted on 2022-08-13 15:39  ×不知该怎么√  阅读(87)  评论(0编辑  收藏  举报

导航