您的位置:首页 > 数据库 > MySQL

【MySQL】基本操作&约束

2018-01-03 14:04 423 查看

注释

#这是一个单行注释

- - select * from player;

- - 这也是一个单行注释

/*

这是一个

多行

注释*/

数据库操作

/显示所有数据库/

show databases;

/创建新的数据库/

create database onlinegame;

/使用某个数据库/

use onlinegame;

/查看创建好的数据库信息/

show create database onlinegame;

/删除某个数据库/

drop database onlinegame;

表操作

/*在对表进行操作前一定要先使用数据库*/
use onlinegame;
/*创建表*/
CREATE TABLE tb_employee1
(
id  INT(11),
name    VARCHAR(25),
deptId  INT(11),
salary  FLOAT
)
/*显示当前数据库中所有表*/
SHOW TABLES;
/*删除数据库中的表*/
CREATE TABLE tb_dept01
(
id  INT(11),
name    VARCHAR(25),
deptId  INT(11),
salary  FLOAT
);
CREATE TABLE tb_dept02
(
id  INT(11),
name    VARCHAR(25),
deptId  INT(11),
salary  FLOAT
);
CREATE TABLE tb_dept03
(
id  INT(11),
name    VARCHAR(25),
deptId  INT(11),
salary  FLOAT
);
DROP TABLE IF EXISTS tb_dept01, tb_dept02, tb_dept03;


约束

/*主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空。
主键能够唯一标识表中的一条记录,可以结合外键来定义不同的数据表之间的关系,
还可以加快数据库查询速度。主键为分两种*/
#1.单字段主键,指的是主键仅由一个字段构成。
(1)在定义列的同时指定主键
CREATE TABLE tb_employee2
(
id  INT(11) PRIMARY KEY,
name    VARCHAR(25),
depId   INT(11),
salary  FLOAT
);
(2)定义完所有列之后指定主键
CREATE TABLE tb_employee3
(
id  INT(11),
name    VARCHAR(25),
depId   INT(11),
salary  FLOAT,
PRIMARY KEY(id)
);
#2.多字段联合主键,指的是主键由多个字段联合组成。
CREATE TABLE tb_employee4
(
name    VARCHAR(25),
deptId  INT(11),
salary  FLOAT,
PRIMARY KEY(name, deptId)
);

/*外键约束(Foreign Key Constraints)用来在两个表的数据之间建立联系,它可以是一列或者多列,
一个表可以有一个或者多个外键。一个表的外键可以为空值,若非空值,则其
必须等于另一个表中主键的某个值。
注意事项:1.外键是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。
2.定义外键后,不允许删除在另一个表中具有关联关系的行。
3.主表(父表)是指关联字段中主键所在的表,从表(子表)是指关联字段中外键所在的表。*/
#创建部门表
/*部门表 tb_dept1
字段名称    数据类型        备注
id          INT(11)         部门编号
name        VARCHAR(22)     部门名称
location    VARCHAR(50)     部门位置
*/
CREATE TABLE tb_dept1
(
id   INT(11) PRIMARY KEY,
NAME    VARCHAR(22) NOT NULL,
location    VARCHAR(50)
);
#定义表tb_employee5,让它的deptId字段作为外键关联到tb_dept1的主键id
CREATE TABLE tb_employee5
(
id      INT(11) PRIMARY KEY,
name    VARCHAR(25),
deptId  INT(11),
salary  FLOAT,
CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
);


/*非空约束(NOT NULL Constraint)是指字段的值不能为空。对于使用了非空约束的字段
,如果用户在添加数据时没有指定值,数据库系统会报错。*/
CREATE TABLE tb_employee6
(
id       INT(11) PRIMARY KEY,
name    VARCHAR(25) NOT NULL,
deptId  INT(11),
salary  FLOAT
);

/*唯一性约束(Unique Constraint)要求该列唯一,允许为空,但只能出现一个空值。
唯一约束可以确保一列或者几列都不出现重复值。*/
-- (1)在定义列的同时指定唯一性约束
CREATE TABLE tb_dept2
(
id  INT(11) PRIMARY KEY,
NAME    VARCHAR(22) UNIQUE,
location    VARCHAR(50)
);
-- (2)定义完所有列之后指定唯一性约束
CREATE TABLE tb_dept3
(
id  INT(11) PRIMARY KEY,
NAME    VARCHAR(22),
location    VARCHAR(50),
CONSTRAINT  STH UNIQUE(name)
);
/*唯一性约束和主键的区别
1.UNIQUE的字段可以有多个,PRIMARY KEY只能有一个。
2.PRIMARY KEY不能有空值,UNIQUE允许有空值。*/

/*默认约束(Default Constraint)是指定某列的默认值。*/
CREATE TABLE tb_employee7
(
id      INT(11) PRIMARY KEY,
name    VARCHAR(25) NOT NULL,
deptId  INT(11) DEFAULT 1111,
salary  FLOAT
);

/*设置数据表的属性值自动增加
插入记录时,经常希望系统自动生成字段的主键值,可以通过为表主键添加
AUTO_INCREMENT关键字来实现。默认情况下,AUTO_INCREMENT初始值为1,每
增加一条记录,字段自动加1。一个表只能有一个字段使用AUTO_INCREMENT约束,
且该字段必须为主键的一部分。*/
CREATE TABLE tb_employee8
(
id      INT(11) PRIMARY KEY AUTO_INCREMENT,
name    VARCHAR(25) NOT NULL,
deptId  INT(11) DEFAULT 1111,
salary  FLOAT
);
INSERT INTO tb_employee8(name, salary) VALUES('Lucy', 1000),('Lura', 1200),('Kevin', 1500);
SELECT * FROM tb_employee8;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: