MySql 学习(一)

时间:2023-03-09 15:56:13
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:SSMySql 学习(一)
  • YEAR : 用4位数字表示,范围是 1901~2155年