- 查询数据库
show databases ; - 创建使用默认的数据库
create database test_demo; - 删除数据库
drop database test_demo;
基本操作练习
- 登录
mysql -h localhost -u root -p - 创建test
create database test ; - 使用当前
use test; - 删除当前
drop database test; - 查看创建数据库信息
show create database test;
创建一张员工表
- use test
- 建立表
CREATE TABLE tb_empl (
id INT (11),
NAME VARCHAR (22),
depid INT (11),
salary FLOAT
);
- 使用主键
什么是主键 - 主键约束要求 列数据是唯一的,并且不允许为空null;
主要作用 用来表示数据的唯一性,结合外键用来描述不同表的关系 , - 主键 可以分为单一 主键 与联合主键 联合 主键在一个表中存在多个主键,他们之间是一一对应关系,
- 带有主键的描述
CREATE TABLE tb_empl (
id INT (11) PRIMARY KEY,
NAME VARCHAR (22),
depid INT (11),
salary FLOAT
);
- 带有多个主键的描述
CREATE TABLE tb_empl (
id INT (11) ,
name VARCHAR (22),
depid INT (11),
salary FLOAT,
PRIMARY KEY(id,name)
);
外键
什么是外键
- 简单的说外键用来描述 表与表之间的关系,子表 父表
一对多,多对一的关系 多对多 描述完整性关系 - 外键可以为空 外键可以不是主键
- 当外键不为空时,应该对应另一个表的主键值
- 保持数据库一致性,当子表对应的值发生改变,那么父表的值,可以进行改变 设置为null 或者进行更新操作
- 关系描述,相关联字段中主键所在的为主表,
-相关联字段中做为外键的所在表为从表 - ** 使用外键 主表与次表 关联的数据类型必须是一致 的 否者错**
DROP TABLE IF EXISTS `tb_empl`;
CREATE TABLE `tb_empl` (
`id` int(11) NOT NULL,
`name` varchar(22) NOT NULL,
`depid` int(11) DEFAULT NULL,
`salary` float DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `depid` (`depid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
---------------------------------------------------次表
DROP TABLE IF EXISTS `tb_empl2`;
CREATE TABLE `tb_empl2` (
`id` int(11) NOT NULL,
`idcardid` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `emp1_2` (`idcardid`),
CONSTRAINT `emp1_2` FOREIGN KEY (`idcardid`) REFERENCES `tb_empl` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
非空约束
- 即为 NOT NULL 使用非空约束 当对表插入空数据时,将会抛出异常
create table empl
( id int(11) primary key,
name varchar(22) NOT NULL)
使用唯一性约束
- 即为 unique 使用唯一性约束的字段只允许出现一次null值,不会出现相同值的情况存在
create table empl
( id int(11) primary key,
name varchar(22) NOT NULL UNIQUE)
----------------------------------------------------------
写法2
CREATE TABLE qqq
( id int(11) PRIMARY key,
cardid int(18) NOT NULL,
CONSTRAINT tld UNIQUE(cardid)
)
主键与唯一约束的区别
- 设置为主键不允许插入值为空 ,是唯一的
- 设置为唯一性约束允许插入一次null值,其他结果也是唯一的
默认约束
- 意义:当插入值没有时,则自动为他填上写好了的语句
- method default "",
CREATE TABLE qqq
( id int(11) PRIMARY key,
username VARCHAR(22) DEFAULT "二维",
cardid int(18) NOT NULL,
CONSTRAINT tld UNIQUE(cardid)
)
在设置id值 ,一直会设置自动增长
- AUTO_INCREMENT, 不需要插入值,即可自动增长
CREATE TABLE qqq
( id int(11) PRIMARY key AUTO_INCREMENT,
username VARCHAR(22) DEFAULT "二维",
cardid int(18) NOT NULL,
CONSTRAINT tld UNIQUE(cardid)
)