mySQL简明教程(一) | 青训营

86 阅读3分钟

#mysql

1.增删改查

1.连接数据库

#打开mysql
sudo service mysql start
#使用root登录,密码为空
mysql -u root

2.新建数据库

CREATE DATABASE mysql_shiyan;

3.连接数据库

use mysql_shiyan;

4.查看数据库中的表

show tables;

5.新建数据表

CREATE TABLE 表的名字
(
列名a 数据类型(数据长度),
列名b 数据类型(数据长度)
);
CREATE TABLE employee
(
id int(10),
name char(20),
phone int(12)
);

除了常用的数据类型之外,还有各种其他类型的数据类型 CAHR和VARCHAR 对于“abc”字符串而言 CAHR(10) 的长度是固定的,表示存储的字符将占10个字节,包括7个空字符 VARCHAR(12)则只占用4个字节,增加一个字节存储字符串本身的长度

ENUM类型数据的值,必须是定义时枚举的值的其中之一,即是单选 SET的值可以是多选

6.插入数据

SELECT *FROM employee;
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');

7.显示表中数据

SELECT *FROM employee;

8.删除数据库

drop database mysql_shiyan;

9.加载文件中的数据库

source /home/shiyan/desktop/mysql.sql;

2.mySQL约束

约束是一种限制,通过对表的行或者列的数据作出限制,确保表的数据的完整性和唯一性

约束类型:主键默认值唯一外键非空
关键字:PRIMARY KEYDEFAULTUNIQUEFOREIGN KEYNOT NULL

1.主键:PRIMARY KEY

区分完全一样的数据的唯一标识符

2.默认值约束:DEFAULT

people_num INT(10) DEFAULT 10,

INSERT 语句中如果DEFAULT 约束的位置没有值,那么这个位置就会被DEFAULT的数值填充

#正常插入的语句
INSERT INTO department(dpt_name,people_num) VALUES('dpt1',11);

#插入新的数据
INSERT INTO department(dpt_name) VALUES('dpt2');
+--------+----------+
|dpt_name|people_num|
+--------+----------+
|dpt1    +        11|
|dpt2    +        10|
+--------+----------+

3.唯一约束:UNIQUE

规定一张表的某一列是不能有重复值的,即每一个值唯一

UNIQUE(phone),

4.外键约束:FOREIGN KEY

既能保证数据的完整性,也能表现表之间的关系

比如,现在有用户表和文章表,给文章表中添加一个指向用户 id 的外键,表示这篇文章所属的用户 id,外键将确保这个外键指向的记录是存在的,如果你尝试删除一个用户,而这个用户还有文章存在于数据库中,那么操作将无法完成并报错。因为你删除了该用户过后,他发布的文章都没有所属用户了,而这样的情况是不被允许的。同理,你在创建一篇文章的时候也不能为它指定一个不存在的用户 id。

一个表能有多个外键,但是每个外键必须REFERENCES另一个表的主键,取值必须在它的参考列中有对应值

CONSTRAINT emp_fk FOREIGN KEY(in_dpt) REFERENCES department(dpt_name);
#       外键名字(自定义)     in_dpt为外键    参考列是department表的dpt_name列 

在 INSERT 时,如果被外键约束的值没有在参考列中有对应,比如以下命令,参考列 (department 表的 dpt_name) 中没有 dpt3,则 INSERT 失败:

INSERT INTO employee VALUES(02,'Jack',30,3500,114114,'dpt3');

可见之后将 dpt3 改为 dpt2(department 表中有 dpt2),则插入成功:

5.非空约束:NOT NULL

被非空约束着的列,插入值的时候必须非空

CREATE TABLE Persons (  
    ID int NOT NULL,  
    LastName varchar(255) NOT NULL,  
    FirstName varchar(255) NOT NULL,  
    Age int  
);