数据库快速入门

1. 入门命令

数据库快速入门 - 图1
— 1. DOS 命令行连接数据库 (运行 cmd)
mysql -uroot -proot

— 2. 展示出数据库服务器中所有的仓库
show databases;

— 3. 创建数据库(新建的仓库默认是存储在data文件夹内部的)
create database tc57;

— 4. 删除数据库
drop database tc57;

— 5. 切换并使用数据库
use tc57;

— 6. 展示出数据库中所有的表名
show tables;

— 7. 退出数据库
quit; exit;

2. 创建表

2.1 建表流程

数据库快速入门 - 图2

2.2 数据类型

数据库快速入门 - 图3
数据库快速入门 - 图4
数据库快速入门 - 图5

2.3 建表的入门

  1. 选择数据库
    use tc57;

  2. 复制粘贴建表SQL语句
    create table t_book(
    id int(5),
    name varchar(20),
    author varchar(20),
    price decimal(5,1),
    type varchar(20),
    stock int(4)
    );
    数据库快速入门 - 图6
    数据库快速入门 - 图7
    — 创建表(学生表 t_student)
    — 编号id, 学号sno, 姓名sname, 性别gender, 生日birthday,手机 mobile
    create table t_student(
    id int(5),
    sno char(8),
    sname varchar(20),
    gender char(1),
    birthday date,
    mobile char(11)
    );

    2.4 数据库表设计的三范式

    数据库快速入门 - 图8
    数据库快速入门 - 图9
    数据库快速入门 - 图10

    2.5 三范式规范建表

    create table t_book(
    id int(5) primary key, — 给id这一列设置主键(非空且唯一)
    name varchar(20),
    author varchar(20),
    price decimal(5,1),
    type varchar(20),
    stock int(4)
    );
    ERROR 1050 (42S01): Table ‘t_book’ already exists 表已经存在了

— 删除表的SQL : drop table if exists 表名;
drop table if exists t_book; — 如果t_book存在的情况下删除
规范的创建流程
drop table if exists t_book;
create table t_book(
id int(5) primary key, — 给id这一列设置主键(非空且唯一)
name varchar(20),
author varchar(20),
price decimal(5,1),
type varchar(20),
stock int(4)
);
主键还有另外一种写法: 企业推荐的写法
drop table if exists t_book;
create table t_book(
id int(5) not null,
name varchar(20),
author varchar(20),
price decimal(5,1),
type varchar(20),
stock int(4),
primary key(id) — 给这张表的id列设置主键
);
以上建表满足3F(三范式的规范)

3. 表的CRUD操作

3.1 插入数据

1) 向表中插入数据的通用SQL语法一:
单行: insert into 表(列1,列2,…) value(值1,值2,….);
说明 : 在数据库中字符串使用单引号来表示
insert into t_book(id,name,author,price,type,stock)
value(1,’西游记’,’吴承恩’,’56.8’,’四大名著’,10);

Query OK, 1 row affected (0.00 sec); 成功插入了一行数据
2) 主键在插入过程中的作用
insert into t_book(id,name,author,price,type,stock)
value(1,’西游记’,’吴承恩’,’56.8’,’四大名著’,10);
数据库快速入门 - 图11
数据库中已经存在这个主键为1的数据了,不能插入重复的记录
解决方法 :
insert into t_book(id,name,author,price,type,stock)
value(2,’西游记’,’吴承恩’,’56.8’,’四大名著’,10);
3)非空约束演示
insert into t_book(id,author) value(3,’曹雪芹’);
数据库快速入门 - 图12
为了避免不必要的NULL值出现,我们需要给特定的列设置非空约束
数据库快速入门 - 图13
4) 唯一约束
数据库快速入门 - 图14
假如给一个列添加了唯一约束,则这个列的值不能重复
5) 主键的自动递增
需要给主键列设置自动递增的约束 : auto_increment
create table t_book( id int(5) not null auto_incrementprimary key(id));
这时主键id列会默认从1开始依次递增
一旦给表的主键设置了自动递增后,在插入数据时可以忽略主键列的数据(自动插入值)
insert into t_book(name,author,price,type,stock)
value(‘西游记’,’吴承恩’,’56.8’,’四大名著’,10);
insert into t_book(name,author,price,type,stock)
value(‘红楼梦’,’曹雪芹’,’66.8’,’四大名著’,5);
insert into t_book(name,author,price,type,stock)
value(‘三国演义’,’罗贯中’,’88.8’,’四大名著’,100);

insert into t_book(id,name,author,price,type,stock)
value(4,’小说’,’吴承恩’,’56.8’,’四大名著’,10);
6) 多行插入
多行插入:
insert into 表(列1,列2,…)
values(值1,值2,….),(值1,值2,….),(值1,值2,….);
insert into t_book(name,author,price,type,stock)
values(‘水浒传’,’施耐庵’,’58.8’,’四大名著’,4),
(‘Java从入门到放弃’,’詹姆斯’,’55.8’,’技能类’,1),
(‘Java从入门到入土’,’码神’,’66.8’,’技能类’,1);
数据库快速入门 - 图15

3.2 删除数据

3.3 修改数据

3.4 查询数据

查询所有数据 : select from 表
select
from t_book; — * 表示这个表的所有列
数据库快速入门 - 图16

4. 列的约束限制

我们可以在创建表的时候为表的列设置一个特定条件的约束

  • 主键约束 (第二范式:一张表只能设置一个唯一的主键)
    • primary key
  • 非空约束
    • not null
  • 唯一约束
    • unique
  • 外键(后面补充)
    • foreign key

越来越标准的建表SQL

drop table if exists t_book;
create table t_book(
id int(5) not null auto_increment, — 设置主键自动递增
name varchar(20) not null, — 非空且唯一的
author varchar(20) not null,
price decimal(5,1) not null,
type varchar(20),
stock int(4),
primary key(id), — 给这张表的id列设置主键
unique(name)
);
数据库快速入门 - 图17

5. 表的相关操作