Mysql 数据类型及数据库权限

1. 数据列四大数据类型

  1. 数值类数据列类型
    1. tinyint 1字节 非常小的整数 可以表示0-255(无符号)和-128~127
    2. int 4字节 标准整型 分为”无符号”和”有符号”
    3. flhoat(6,1)总共6位数,小数点后面保留1位数
    4. decimal(5,2) 表示数值总共5位,小数占2位 以字符串形式表示的浮点数
      ==溢出: 数值过大,超出要求范围,会显示范围内的最大值==
  2. 字符串类数据列类型
    1. char 定长字符串 char(7)不管实际插入多少字符,它都会占用7位字符位置 传入的实际的值的长度大于指定的长度,字符串会被截取到指定长度
    2. varchar 变长变符串 varchar(7)如果实际插入4个字符,那么它占4位字符位置
    3. TINYBLOB TINYTEXT 用来存放超大文本
    4. ENUM 枚举:多个选一 sex enum(‘w’,’m’,’x’) 1 2 4 可以取’w’,’m’,’x’中的一个值
    5. set city set(‘a’,’b’,’c’,’d’) 同时选择多个,values(13)会选择a,b,d
      ==char要比varchar效率更高,但占用空间较大==
  3. 日期和时间类数据列类型
    1. type:date/time/datetime/timestamp/year
    2. 项目中用 int整数类型 记录时间戳 保存时间 birthday int
  4. NULL值 select * from t1 where name is null;

2. 字段约束

  1. unsigned(无符号) 只能用于设置数值类型,不允许出现负数
  2. zerofill(用零填充)只能用于设置数值类型,在数值之前会自动用0补齐不足的位数
  3. auto_incremen(自增)用于设置字段的自动增长属性,每增加一条记录,该字段的值会自动加
  4. null not null (字符型的特殊情况) 默认为NULL,即插入值时没有在此字段插入值,默认为NULL值,如果指定了NOT NULL,则必须在插入值时在此字段填入值
  5. primary key(主键) default(系统默认值)

3. 字段的增删改查

  • 修改表名 alter table 旧表名rename as 新表名;
  • 添加字段 alter table 表名 add 字段名 字段属性[first/after 插入原有字段名];
  • 删除字段 alter table 表名 drop 字段名;
  • 修改字段
    • 仅属性 alter table 表名 modify 字段名 新属性;
    • 名称+属性 alter table 表名 change 字段原名 字段新名字 新属性;

4. 给其他访问本数据库权限

授权        具体权限  ON       库.表  TO '谁'@'在哪儿登录' IDENTIFIED BY 密码   
grant  select,insert on lamp.stu to 'xxoo'@'%' identified by '密码'

create table stu(   创建stu表
    sid int unsigned primary key auto_increment,    sid id号 无符号  主键 自增
    uname varchar(20) default '未知',               uname 名称 默认值为'未知'
    upwd char(32),                                  upwd 密码 定长32位,因为要用md5
    sex enum('w','m','x') default 'w',              sex 性别 枚举类型,默认'w'
    age tinyint unsigned,                           age 年龄 小整型 无符号
    regtime int unsigned,                           regtime 注册时间 无符号
    lasttime int unsigned,                          lasttime 最后登录时间 
    tel varchar(11),                                tel 电话
    addr varchar(100)                               addr 收货地址
)engine=innodb default charset=utf8;