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 | 采用字符方式存储,有排序规则和字符集。 |
作者:×不知该怎么√ 收藏一直进行,学习从未开始!地址https://www.cnblogs.com/hqh2021/p/16582031.html