1.登录
shell登录: mysql -u用户名 -p密码 -h服务器名称 -p端口号(默认是3306)
2.退出
exit;
quit;
3.常用命令
select version();//输出版本号
select now();//输出当前时间
select user();//输出当前用户
select database();输出当前数据库
4.常用的数据库管理:
a.创建数据库: create database [if not exists] 数据库名称 [[default] character set 编码方式];//gbk utf8
b.查看当前服务器下的所有数据库列表: show databases [like '表达式'];
c.查看刚创建的数据库: showcreate database 数据库名称;
d.修改数据库: alterdatabase 数据名称 default character set utf8;
e.删除数据库: dropdatabase [if exists] 数据库名;
f.使用数据库: use 数据库名称;
5.常用的数据库表管理
a.查看当前数据库中所有的表: showtables;
b.创建表: createtable 表名称(列定义,.....)ENGINE=InnoDB[MyISAM] DEFAULTCHARSET=UTF8;
列定义:列名和数据类型//数据表的字段
注意:数据库和数据表不能重名,不能为关键字,名称可以由任意字母、阿拉伯数字、下划线、$组成,可以使用前面的任意字符开头,但是不能用单独的数字;名称的最大长度可为64位字符;
在WINDOWS中,名称对大小写不敏感(不区分大小写),在linux中,严格区分大小写,一般用小写来定义。
6.数据类型:
1.整型 字节数 无符号范围 有符号范围
tinyint: 占一个字节 0-255 -128--127
smallint: 占两个字节 0-66635 -32768--32767
mediumint: 占三个字节
int: 占四位字节
bigint: 占八位字节
2.浮点型
float(M[,D])//占4字节,单精度浮点,-3.4e38--3.4e38,可以保留到小数点后7位
double(M[,D])//占8字节,双精度浮点,-1.79e308--1.79e308,可以保留到小数点后15位
M:小数点前后的数字的总位数;D:小数点后的位数
3.字符型:
char(N):定长的字符;
varchar(N):变长的字符
text:
tinytext:
mediumtext:
longtext:
enum(值,值,值....):枚举值,最多65535个选项
4.日期时间:
date():
7. ***扩展(列定义额外修饰):
列名 数据类型(长度) [unsigned] [not null | null][primary key] [auto_increment] [unique [key]] [default 默认值];
[unsigned]:无符号
[not null | null]:禁止为空|可以为空
[primary key]:主键约束,每张表中只能存在一个主键约束,保证数据记录的唯一性,自动禁止为空,自动在该字段上添加主键索引
[auto_increment]:自动自增编号,具有该属性的字段,必须是数值类型,必须在该字段上创建主键。
[unique [key]]:值唯一约束,保证数据记录的唯一性,每张表可有多个唯一约束
[default 默认值]:如果在插入数据记录时,没有明确给该字段赋值时,那么其值就是默认值
例子:
createtable user(
id int(8) unsigned not null primary keyauto_increment,
name varchar(20) not null,
sex enum('男','女','保密')null default '保密',
create_time int(10) null
)ENGINE=InnoDBdefault charset=utf8;
c.查看数据表的结构
show columns from 表名;
d.修改表:
alter table 表名 .....;
alter table user ADD COLUMN age int(4)default 20 AFTER name;
alter table user CHANGE age xingbieint(4) default 30;
alter table user CHANGE xingbie ageint(4) default 30,CHANGE sex sex smallint(2) NULL DEFAULT 3;
e.删除数据表
drop table 表名;//删除表,从数据库中移除
truncate table 表名;//清空表,数据内容清空,但是表依然在数据库中,并且AUTO_INCREMENT主键自增项会重置
delete from 表名;//清空表,数据内容清空,但是表依然在数据库中,但是AUTO_INCREMENT主键自增项不会重置