数据库启动,连接,创建表
# 启动mysql服务
suto service mysql start
# 连接mysql
mysql -u root
# 显示所有数据库
show databases;
# 选择数据库,显示数据库 所有表
use 数据库名
show tables;
# 创建一个表
CREATE TABLE employee(
id int(10),
name char(20),
phone int(12));
CREATE TABLE department(
dpt_name CHAR(20), dpt_phone INT(12));
# 删除数据库
drop database 数据库名;
数据常用类型
数据类型 | 大小(字节) | 用途 | 格式 |
---|---|---|---|
INT | 4 | 整数 | |
FLOAT | 4 | 单精度浮点型 | |
DOUBLE | 8 | 双精度浮点型 | |
ENUM | -- | 单选,比如性别 | ENUM(‘a', 'b','c') |
SET | -- | 多选 | SET('1', '2', '3') |
DATA | 3 | 日期 | YYYY-MM-DD |
TIME | 3 | 时间 | HH:MM:SS |
YEAR | 1 | 年份值 | YYYY |
CHAR | 0~255 | 定长字符串 | |
VARCHAR | 0~255 | 变长字符串 | |
TEXT | 0~ 65535 | 长文本数据 |
- 整数除了 INT 外,还有 TINYINT、SMALLINT、MEDIUMINT、BIGINT。
- CHAR 和 VARCHAR 的区别: CHAR 的长度是固定的,而VARCHAR 的长度是可以变化的,比如,存储字符串 “abc",对于VHAR(10),表示存储的字符将占 10 个字节(包括 7 个空字符),而同样的 VARCHAR(12) 则只占用 4 个字节的长度,增加一个额外字节来存储字符串本身的长度,12 只是最大值,当你存储的字符小于 12 时,按实际长度存储。
- ENUM 和 SET 的区别: ENUM 类型的数据的值,必须是定义时枚举的值的其中之一,即单选,而 SET 类型的值则可以多选。
插入数据
INSERT INTO employee (id,name,phone) VALUES(01,'Tom",110110110)
INSERT INTO employee VALUES(02,'Jack' 119119119);
INSERT INTO employee(id,name) VALUES(03,'Rose');
- 创建数据库,表实例
# 加载文件中的数据
source /home/XXXXX.sql;
CREATE DATABASE mysql_shiyan;
use mysql_shiyan;
CREATE TABLE department
(
dpt_name CHAR(20) NOT NULL,
# 设定约束值 default
people_num INT(10) DEFAULT '10',
CONSTRAINT dpt_pk PRIMARY KEY (dpt_name)
);
CREATE TABLE employee
(# PRIMARY KEY 主键 或者 CONSTRAINT
id INT(10) PRIMARY KEY,
name CHAR(20),
age INT(10),
salary INT(10) NOT NULL,
phone INT(12) NOT NULL,
in_dpt CHAR(20) NOT NULL,
UNIQUE (phone),
CONSTRAINT emp_fk FOREIGN KEY (in_dpt) REFERENCES department(dpt_name)
);
CREATE TABLE project
(
proj_num INT(10) NOT NULL,
proj_name CHAR(20) NOT NULL,
start_date DATE NOT NULL,
end_date DATE DEFAULT '2015-04-01',
of_dpt CHAR(20) REFERENCES department(dpt_name),
# 定义复合 主键
CONSTRAINT proj_pk PRIMARY KEY (proj_num,proj_name)
);
- 默认值约束 DEFAULT
定义约束值
people_num INT(10) DEFAULT '10',
DEFAULT 会在INSERT 语句提现出来
# 正常插入数据
INSERT INTO department(dpt_name,people_num) VALUES('dpt1',11);
# 新数据 people_num为空,使用默认值
INSERT INTO department(dpt_name) Values('dpt2');
查询表,select * from department ,可见第二行,people_num被默认值填充