一、安装和连接
1.启动mysql服务器
sudo service mysql start
2.尝试MySQL
(1)连接与断开服务器
mysql -u root
quit或exit
(2)查看数据库
show databases;
(3)连接数据库
use information_schema
(4)查看表
show tables;
(5)查询
亦可用作简单的计算器
取消输入
二、创建数据库并插入数据
1.创建数据库
大多数系统不区分大小写,一般保留字大写,变量和数据小写。
CREATE DATABASE mysql_shiyan;
2.连接数据库
3.新建数据表
数据库只是一个框架,表才是实质内容。
CREATE TABLE 表名
(
列名a 数据类型(数据长度),
列名b 数据类型(数据长度),
列名c 数据类型(数据长度)
);
4.数据类型
INT(4)
FLOAT(4)
DOUBLE(8)
5.插入数据
INSERT INTO 表的名字
(列名a,列名b,列名c)VALUES(值1,值2,值3);
三、SQL的约束
1.约束分类
主键(PRIMARY KEY)
默认值(DEFAULT)
唯一(UNIQUE)
外键(FOREIGH KEY)
非空(NOT NULL)
2.主键
定义:
CREATE TABLE employee
(
id INT(10) PRIMARY KEY,
name CHAR(20),
....
);
或者
CREATE TABLE department
(
dpt_name CHAR(20) NOT NULL,
CONSTRAINT dpt_pk PRIMARY KEY (dpt_name)
);
复合主键
CREATE TABLE project
(
proj_num INT(10) NOT NULL,
proj_name CHAR(20) NOT NULL,
CONSTRAINT proj_pk PRIMARY KEY (proj_num,proj_name)
);
3.默认值约束
有DEFALULT约束的列。插入数据为空时,将使用默认值
people_num INT(10) DEFAULT '10',
在使用INSERT语句时体现出来
正常插入
INSERT INTO department(dpt_name,people_num) VALUES('dpt1',11);
people_num 为空,使用默认值
INSERT INTO department(dpt_name) VALUES('dpt2');
4.唯一约束
规定的列的每个值唯一
phone INT(12) NOT NULL,
UNIQUE (phone),
5.外键约束
确保数据完整性,表现表之间的关系
CONSTRAINT emp_fk FOREIGN KEY(in_dpt) REFERENCES department(dpt_name)
6.非空约束
被非空约束的列,在插入时必须非空
age INT(10),
salary INT(10) NOT NULL,
违反非空约束,不会报错,只有警告,salary被记为0
四、其它基本操作
1.索引
加快查询速度
ALTER TABLE 表名 ADD INDEX 索引名 (列名);
CREATE INDEX 索引名 ON 表名 (列名);
2.视图
虚拟存在的表,只看到关心的数据
CREATE VIEW 视图名(列1,列2,列3)AS SELECT 列a,列b,列c FROM 表名字;`这里写代码片`
3.导入
LOAD DATA INFILE '文件名路径名' INTO TABLE 表名字;
txt文件用TAB键作为空格
4.导出
SELECT 列名1,列名2 INTO OUTFILE '文件名及路径名' FROM 表名字;
5.备份
mysqldump -u root 数据库名>备份文件名;//备份整个数据库
mysqldump -u root 数据库名 表名>备份文件名;//备份整个表
6.恢复
1. source 文件;
2. 新建空的数据库test
mysql -u root test < 备份文件名;