数据库mysql常用命令
0、登录数据库
cmd下
mysql -u用户名 -p密码;
用户名可以用root
密码没有可以不设
1、数据库级的命令
-
显示数据库
show databases;
-
查看当前使用的数据库
select database();
-
创建数据库:
create database 数据库名 character set utf8(字符集) collate utf8_general_ci (字符集排序规则);
collate utf8_general_ci
ci 不区分大小写
collate utf8_general_cs
cs 区分大小写
从登录到建好一个数据库
mysql -uroot
create database onedatabase character set utf8
- 选择数据库:
use 数据库名;
查看当前数据库信息:
status或\s
修改数据库编码格式:
alter database 数据库名 character set 编码格式;
直接登录数据库:
mysql -D数据库名 -h主机名 -u用户名 -p
删除数据库:
drop database 数据库名;
查看数据库版本与时间:
select version();
select now();
退出数据库或服务端:
exit或quit或\q
2、数据表级操作
创建数据表:
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) default '',
age tinyint unsigned default 0,
height decimal(5,2),
gender enum('男','女','保密')
)character set #字符集;
# (字符集可以默认,也可以重新设置);
查看创建的数据表:
show create table 表名;
desc 表名;
增加数据表字段:
alter table 表名 add 列名 类型;
使用change修改数据表字段:
alter table 表名 change 原名 新名 类型及约束;
使用modify修改数据表字段:
alter table 表明 modify 列名 类型及约束;
(不能修改列名)
删除数据表字段:
alter table 表名 drop 字段名;
删除数据表:
drop table 表名;
显示字段的全部信息:
show full columns from 表名;
3、约束条件
primary key
(主键):物理上存储的顺序not null
(非空):此字段不允许填写空值unique
(唯一):此字段的值不允许重复default
(默认):当不填写此值时会使用默认值,如果填写时以填写为准foreign key
(外键):对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常- 不为负
unsigned
- 自增长
auto_increment
附:数据类型
1、数值
(1)整数
tinyint:(-128,127)(0,255)小整数值
smallint:(-32768,32767)(0,65535)大整数值
midiument:(-8388608,8388607)(0,16777215)大整数值
int:(-2147483648,2147483647)(0,4294967285)大整数值
bigint:(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
(2)浮点型
float:(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38);0,(1.175 494 351 E-38,3.402 823 466 E+38);单精度浮点数值
double:(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308);0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308);双精度浮点数值
decimal:DECIMAL(M,D) ,依赖于M和D的值;小数值
2、字符串
char:0-225字节;定长字符串
varchar:0-65535字节;变长字符串
tinyblob:0-255字节;不超过255个字符的二进制字符串
mediumblob:0-16777215字节;二进制形式的中等长度文本数据
blob:0-65 535字节;二进制形式的长文本数据
longblob:0-4 294 967 295字节;二进制形式的极大文本数据
tinytext:0-255字节;短文本字符串
mediumtext:0-16 777 215字节;中等长度文本数据
text:0-65 535字节;长文本数据
longtext:0-4 294 967 295字节;极大文本数据
enum:字节长度1或2;最大可达65535个不同的枚举值
set:可达8字节;最大可达64个不同的值
char和varchar的区别
char:255个字节;固定长度;相比varchar效率高;保存char值时,在它们的右边填充空格以达到指定的长度。
varchar:65535字节;不固定长度;保存varchar值时只保存需要的字符数,另加一个字节来记录长度
3、时间日期
date:1000-01-01/9999-12-31;YYYY-MM-DD;日期值
time:’-838:59:59’/‘838:59:59’;HH:MM:SS;时间值或持续时间
year:1901/2155;YYYY;年份值
datetime:1000-01-01 00:00:00/9999-12-31 23:59:59;YYYY-MM-DD HH:MM:SS;混合日期和时间值
timestamp:1970-01-01 00:00:00/2038;YYYYMMDDHHMMSS;混合日期和时间值,时间戳