MySql 学习(一)
入门使用
1 show databases; 2 3 //假设存在seckill 数据库 4 use seckill; 5 6 //查看所有表 7 show tables; 8 9 //查看某个表的字段,例如存在 student 表 10 desc student; 11 12 //查看student 数据 13 selet * from student 14 15 //接下来就可以对这个数据库(seckill)作各种操作了,select 啊,update ...%&*$^$^ 巴拉巴拉的
创建表格
1 //指定主键 2 create table permission ( 3 permission_id int(11) NOT NULL AUTO_INCREMENT, 4 available int NOT NULL, 5 description char(20) NULL, 6 permission int(20) NOT NULL, 7 url char(20) NOT NULL, 8 PRIMARY KEY(permission_id) 9 )ENGINE = InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
1 //指定外键 2 create table role_permission ( 3 role_id int(11) not null , 4 permission_id int(11) not null , 5 foreign key(permission_id) references permission(permission_id), 6 foreign key(role_id) references sys_role(role_id) 7 )ENGINE = InnoDB DEFAULT CHARSET=utf8 ; 8
数据结构
(1)串数据类型(如名字,地址,电话号码,邮政编码等)
分为定长串和变长串,CHAR : 定长, TEXT : 变长 ,MySQL处理定长数据快于处理变长数据,此外,MySQL不允许对变长列(或一个列的可变部分)进行索引,这也会极大地影响性能。
- CHAR: 1~255 个字符的定长字符串,未指定为CHAR(1)
- VARCHAR : 变长字符串,最多不超过255字节
- TEXT : 最大长度为 64字节的变长文本
- TINGTEXT : 与TEXT相同,最大长度为255字节
(2)数字数据类型
所有数据类型都有有符号和无符号之分(除BIT 和 BOOLEAN), 默认为有符号(即是可以表示负数),若是不想表示负数,可以使用UNSIGNED关键字。
- BIT : 1~64 位,位字段
- BOOLEAN : 布尔值
- DECIMAL : 精度可变的浮点值
- DOUBLE
- FLOAT
- INT
- REAL
- SMALLINT
- TINYINT
- MEDIUMINT
(3)时间和日期数据类型
- DATE : 格式为 YYYY-MM-DD ,例如:2018-08-06
- DATETIME :
- TIMESTAMP
- TIME :格式为HH:MM:SS
- YEAR : 用4位数字表示,范围是 1901~2155年