mysql的基本使用

阅读数:45 评论数:0

跳转到新版页面

分类

数据库

正文

1、登录mysql

mysql -h hostname -u username -p
-h:运行mysql服务器的机器,如果正在该机器上运行此命令,可以忽略hostname参数
-u:连接数据库的用户名,如果不指定,默认值是登录该操作系统的用户名
或者
mysql -D dbname -h hostname -u username -p

2、创建数据库

create database dbname;

3、创建表

create table tablename(
    columns
)
每一列应该有一个名字,后面跟着数据类型和约束

(1)常见约束

not null:此属性必须有值。

auto_increment:在表中插入行时,如果此字段为空,会自动生成一个唯一标识,该值比本列中现存在最大值更大,每个表中只能有一个这样的值,指定auto_increment的列必须是索引列。

primary key:主键。

整数后面的unsigned表示它只能是0或者一个正数。

(2)数字类型

类型 取值范围 存储空间(字节) 描述
tinyint -127...128或0...255 1 非常 小的数
bit     同tinyint
bool     同tinyint
smallint[(M)]   2  
mediumint[(M)]   3  
int[(M)]   4  
integer[(M)]     int同义词
bitint[(M)]   8  

M表示zerofill属性,当显示zerofill字段中的值时,空余部分用前导0来补充,自动变为unsigned数据类型,如int(4) 显示为0003,int(7)显示为0000003。

类型 存储空间(字节) 描述
float(精度) 可变 可以指定单精度和双精度浮点数
float[(M,D)] 4 单精度浮点数,等同于float(4),可以指定显示宽度和小数位数
double[(M,D)] 8 双精度浮点数,等同于float(8),可以指定显示宽度和小数位数
double   double[(M,D)]的同义词
precision[(M,D)]   double[(M,D)]的同义词
real[(M,D)]   double[(M,D)]的同义词
decimal[(M[,D]] M+2 浮点数,以char存储
numberic[(M,D)]   decimal同义词
dec[(M,D)]   decimal同义词
fixed[(M,D)]   decimal同义词

(3)日期与时间类型

类型 取值范围 描述
date 1000-01-01~9999-12-31 一个日期,以YYYY-MM-DD格式显示
time -838:59:59~838:59:59 一个时间,以HH:MM:SS形式显示
datetime 1000-01-01 00:00:00~9999-12-31 23:59:59 日期时间,以YYYY-MM-DD HH:MM:SS显示
timestamp[(M)] 1970-01-01 00:00:00~2037年的某个时间

时间标签,显示格式取决于M的值

timestamp YYYMMDDHHMMSS

timestamp(14) YYYYMMDDHHMMSS

timestamp(12) YYMMDDHHMMSS

timestamp(10) YYMMDDHHMM

timestamp(8) YYYYMMDD

timestamp(6) YYMMDD

timestamp(4) YYMM

timestamp(2) YY

year[(2/4)] (70~69)1970~2069, 1901~2155 年份

(4)字符串类型

类型 取值范围 描述
[national] char(M)[binary|ascii|unicode] 0~255个字符 固定长度为M的字符串,national关键字指定应该使用的默认字符集,binary指定了数据是区分大小写的(默认也是区分大小写的),ascii指定使用latin1字符集,unicode指使用usc字符集
char   char(1)
[national] varchar(M) [binary] 1~255 除可变长度外,其他与char相同

 

类型 最大长度 描述
tinyblob 255  
tinytext 255 text区分大小写,blob不区分
blob 65535 65K
text 65535  
mediumblob $2^{24}-1$ 16M
mediumtext $2^{24}-1$  
longblob $2^{32}-1$ 4G
longtext $2^{32}-1$  

 

类型 集合中的最大值 描述
enum('value1','value2',...) 65535 该类型只可以容纳所列值之一或null
set(‘value1','value2',...) 64 可以容纳一组值或null

4、切换数据库

use dbname;

5、show和describe

show tables; --查看数据库中所有的表
show databases; --查看数据库列表
describe tablename; --查看某特定表的详细信息

6、创建索引

如果需要对一个不是主键的列运行许多查询,可以在该列上添加索引来改善性能

create [unique|fulltext] index index_name
    on table_name (index_column_name [(length)] [ASC|DESC],...)
fulltext索引用来索引文本字段
length表示只有该字段的前length个字段将被 索引

7、表的删除

drop table table_name

8、数据库的删除

drop database dbname;

9、通过在查询语句末尾添加\G可以实现以垂直模式显示结果(如果表行的宽度太大)