启动mysql:
sudo service mysql start
登陆mysql
mysql -u root
查看有哪些数据库
show databases;
查看数据库中有那些表
show tables;
mysql配置文件
/etc/mysql/my.conf
创建数据库
create database sqlname;
创建数据表
CREATE TABLE 表的名字
(
列名a 数据类型(数据长度),
列名b 数据类型(数据长度),
列名c 数据类型(数据长度)
);
mysql常用数据类型
数据类型 | 大小(字节) | 用途 | 格式 |
---|---|---|---|
INT | 4 | 整数 | |
FLOAT | 4 | 单精度浮点数 | |
DOUBLE | 8 | 双精度浮点数 | |
ENUM | -- | 单选,比如性别 | ENUM('a','b','c') |
SET | -- | 多选 | SET('1','2','3') |
DATE | 3 | 日期 | YYYY-MM-DD |
TIME | 3 | 时间点或持续时间 | HH:MM:SS |
YEAR | 1 | 年份值 | YYYY |
CHAR | 0~255 | 定长字符串 | |
VARCHAR | 0~255 | 变长字符串 | |
TEXT | 0~65535 | 长文本数据 |
char和varchar的区别
CHAR 的长度是固定的,而 VARCHAR 的长度是可以变化的,比如,存储字符串 “abc",对于 CHAR(10),表示存储的字符将占 10 个字节(包括 7 个空字符),而同样的 VARCHAR(12) 则只占用4个字节的长度,增加一个额外字节来存储字符串本身的长度,12 只是最大值,当你存储的字符小于 12 时,按实际长度存储。
插入数据
INSERT INTO 表的名字(列名a,列名b,列名c) VALUES(值1,值2,值3);
INSERT INTO VALUES(值1,值2);
自动对应列,如果缺少则为null,不可缺少
CHAR,VARCHAR,TEXT,DATE,TIME,ENUM 等类型的数据也需要单引号修饰,而 INT,FLOAT,DOUBLE等则不需要。
mysql约束
在MySQL中,通常有这几种约束:
约束类型: | 主键 | 默认值 | 唯一 | 外键 | 非空 |
---|---|---|---|---|---|
关键字: | PRIMARY KEY | DEFAULT | UNIQUE | FOREIGN KEY | NOT NULL |
主键 (PRIMARY KEY
)是用于约束表中的一行,作为这一行的唯一标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要,主键不能有重复记录且不能为空。
主键约束:
关键词:primary key
create table table_name(id int(10) primary key, name char(10));
默认值约束:
关键词:default 'default value'
create table table_name(id int(10) primary key, name char(16) default 'default_name');
唯一约束:
关键字:UNIQUE (field)
唯一约束 (UNIQUE
) 比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。
create table table_name(id int(10) primary key, name char(20) default 'default_name', phone int(13), UNIQUE (phone))
外键约束:
关键字:FOREIGN KEY (oid) REFERENCES table1(pid));
table 1:
pid | name |
---|---|
1 | name1 |
2 | name2 |
table 2:
oid | num | pid |
---|---|---|
1 | 001 | 1 |
2 | 002 | 2 |
create table table2(oid int(10) primary key, num int(8), pid int(10), FOREIGN KEY (oid) REFERENCES table1(pid));
非空约束:
关键字: NOT NULL
create table table_name(id int(10) primary key, name varchar(10) NOT NULL);
设置自增:
关键字:auto_increment
create table table_name(id int(10) primary key auto_increment, name varchar(10) not null);