cgb2111-day01

刘沛霞/皮皮霞 : QQ : 2250432165

一,数据库

–1,概述

专门用来存储数据和管理数据库的一个仓库.英文叫database
分类: 关系型和非关系型
1, 关系型数据库: 存的数据都有关系,代表是:Mysql / Oracle…
2, 非关系型数据库: 存的数据之间有着松散的关系, 代表是: Redis

–2,安装

1, 服务端: 存储数据,管理数据
端口号默认是3306,设置密码,服务名叫MySQL,安装路径中不要包含中文!!!
2, 客户端: 连接服务端,操作服务端的数据
两种形式: DOS窗口 / 可视化工具sqlyog

–3,数据库的结构

数据库 -> 表(字段1…) -> 数据 / 记录

二,SQL语言

–1,概述

全称是结构化查询语言,专门用来操作数据库的语言.
而且是一个标准语言,可以操作任何数据库.

–2,SQL的分类

DML:是指数据库的操纵语言,就是对数据的操作(新增,修改,查询,删除CRUD)
DDL:是指数据库的定义语言,比如说创建表…
DCL:是指数据库的控制语言,比如说权限管理
DQL:是指数据库的查询语言,比如进行复杂的查询语句

三,数据库的常见操作

–1,查询

在这里插入图片描述

–2,新建

在这里插入图片描述
在这里插入图片描述

–3,删库 !!!

在这里插入图片描述

四,表的常见操作

–0,使用数据库

在这里插入图片描述

–1,查询

在这里插入图片描述

–2,创建

语法: create table 表名(字段名称 字段类型(字段长度),字段2,字段3)

mysql> create table student(
    -> id int(3),
    -> name varchar(10),
    -> age int(3)
    -> );
Query OK, 0 rows affected (0.01 sec)

在这里插入图片描述
在这里插入图片描述

练习:创建门店表
mysql> create table tb_door(
    -> id int(11),
    -> door_name varchar(100),
    -> tel varchar(20)
    -> );
Query OK, 0 rows affected (0.01 sec)

–3,修改

在这里插入图片描述

–4,删除

在这里插入图片描述

–5,描述表结构

在这里插入图片描述

–6,练习

mysql> create table tb_order_detail(
    -> id int(11),
    -> order_id int(11),
    -> num tinyint(4),
    -> item varchar(30),
    -> price double
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> desc tb_order_detail;

五,记录的常见操作

–1,查询

语法: select * from 表名
在这里插入图片描述

–2,插入

语法: insert into 表名 values(1,2,3)
注意:
1, values后面括号里,要写几个值? 参考表里字段的个数,要和字段的个数匹配
2, 值的意义是什么呢? 要和字段的顺序位置匹配.每个值交给每个对应字段来保存
3, 值的写法有一些细节??? 如果字段是varchar类型,值必须有字符串的标识(单引号 / 双引号)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

–3,修改

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

–4,删除

在这里插入图片描述

六,总结:

–1,常用命令:

查询所有数据库: show databases;
创建数据库: create database 库名 default character set utf8;
删库: drop database 库名;

查询所有表: show tables;
新建表: create table 表名(字段名称 字段类型(字段长度),2,3);
字段长度:整数限制不住,字符串必须在规定长度内否则报错
删除表: drop table 表名;
修改表: alter table 表名 add column 字段名 字段类型(长度)
描述表: desc 表名

查询所有记录: select * from 表名;
新增记录: insert into 表名 values(1,2,3);
要写几个值必须和表里字段的个数匹配. 值的顺序必须和字段顺序匹配.
删除记录: delete from 表名 ;
修改记录: update 表名 set 字段名=字段值;

七,数据类型

–1,细节

1,数字:
整型 tinyint / int 小数float / double 精确的小数 numeric(5,2) / decimal(5,2)–5是指有5位数字,2是指包含着的小数位数
2,日期:
年月日 date 时分秒 time 年月日时分秒 datetime 毫秒数 timestamp时间戳
3,字符串:
char和varchar的区别?
前者,长度固定,浪费空间,但查询高效.
后者,长度可变,节省空间,但查询相对低效.

八,字段约束

–1,概述

是通过不同的方式,给不同的字段添加不同的约束,实现不同效果
常见的字段约束: 非空约束/唯一约束/主键约束…
通常在设计表时,就已经设计好了表里一些字段的约束情况

–2,非空约束

哪个字段,添加了非空约束,哪个字段的值,从此,必须有值不能为空. 使用not null来实现.
在这里插入图片描述
在这里插入图片描述

–3,唯一约束

哪个字段,添加了唯一约束,哪个字段的值,从此,必须唯一不能重复. 使用unique来实现.
在这里插入图片描述
在这里插入图片描述

作业:

创建两个表 dept和emp表,并插入数据(参考课件的数据)

dept表

mysql> create table dept(
    -> deptno int,
    -> dname varchar(20),
    -> loc varchar(13)
    -> );
Query OK, 0 rows affected (0.02 sec)

mysql> set names gbk;
mysql> INSERT INTO dept VALUES(1,'accounting','一区');
mysql> INSERT INTO dept VALUES(2,'research','二区');
mysql> INSERT INTO dept VALUES(3,'operations','二区');


在这里插入图片描述

emp表

mysql> create table emp(
    -> empno int,
    -> ename varchar(10),
    -> job varchar(10),
    -> mgr int,
    -> hiredate datetime,
    -> sal double,
    -> comm numeric(8,2),
    -> deptno int
    -> );
Query OK, 0 rows affected (0.02 sec)

mysql> INSERT INTO emp VALUES(100,'jack','副总',NULL,'2002-05-1',90000,NULL,1);
mysql> INSERT INTO emp VALUES(200,'tony','总监',100,'2015-02-02',10000,2000,2);
mysql> INSERT INTO emp VALUES(300,'hana','经理',200,'2017-02-02',8000,1000,2);
mysql> INSERT INTO emp VALUES(400,'leo','员工',300,'2019-02-22',3000,200.12,2);
mysql> INSERT INTO emp VALUES(500,'liu','员工',300,'2019-03-19',3500,200.58,2);

在这里插入图片描述

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>