文章目录
刘沛霞 皮皮霞 QQ:2250432165
一,数据库
–1,概述
作用就是用来存储数据和管理数据,本质上就是需要安装MySQL软件.
分类: 关系型数据库MySQL 和 非关系型数据库Redis ,主要观察数据之间的关系
–2,使用
1,安装服务器端: 存数据,管理数据
核心步骤: 设置字符集/编码成 utf-8 , 端口号3306 , 设置服务名称MySQL , 设置密码root
2,安装客户端: 连接服务器,操作服务器里的数据
1,小黑窗口/DOS窗口:
--从开始菜单里找MySQL/Mariadb,输入密码
--win+r 然后输入cmd
```
#发起MySQL的命令 -u是指定用户名(root) -p是指定密码(自定义的)
mysql -uroot -proot
```
2,图形化的工具:sqlyog
3,数据库的结构
数据库 -> 表(行和列) -> 数据
4,SQL语言
1,概述
结构化查询语言,用来操作数据库的语言,是一种标准.
增删改查里将来发生最多的业务就是: 查 !!!
2,分类:
DML是数据操纵语言
DDL是指数据定义语言
DCL是指数据控制语言
DQL是指数据查询语言
二,数据库的常见操作
增删改查 CRUD
–1,创建库
也可以简写成:create table cgb charset utf8 ;
–2,查询库
–4,删除库
三,表的常见操作
增删改查 CRUD
–1,使用指定的数据库
–2,创建表
语法:
create table 表名(字段名称 字段类型(字段长度),字段2,字段3,...)
练习:
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.02 sec)
–3,查看表
mysql> show tables;
+---------------------+
| Tables_in_cgb210901 |
+---------------------+
| tb_door |
| tb_order_detail |
+---------------------+
2 rows in set (0.00 sec)
–4,修改表
mysql> alter table tb_door add column money numeric(7,2);
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
–5,描述表结构
–6,删除表
mysql> drop table tb_door;
Query OK, 0 rows affected (0.00 sec)
四,数据的常见操作
增删改查 CRUD
–1,查询数据/记录
–2,插入数据/记录
语法:insert into 表名 values(1,2,3,4,5,6)
注意:
1, 需要设置几个值?要看表里有几个字段
2, 值的顺序要和字段的顺序保持一致
3, 如果字段是字符串类型,设置值时必须要有" " ’ '的标记
–3,修改数据/记录
–4,删除数据/记录
五,数据库的使用细节
–1,命名规范
1, 以字母开头,不要以数字开头
2, 不能使用保留字:select / from / update / delete / insert into
3, MySQL数据库不区分大小写,多个单词用下划线分开
–2,数据类型
1, 整型:int
2, 小数:double(不精确) / numeric(a,b) / decimal(a,b)–a是数字的位数b是小数位数
3, 时间: date(年月日) time(时分秒) datetime(年月日时分秒) timestamp(时间戳,毫秒数)
4, 字符串: char / varchar
区别:
char 是固定长度,浪费空间char(10)
varchar 是可变长度,节省空间varchar(10)
特殊场景: 数据长度如果就是固定的,优先选char,因为查的快
5, 图片: 如果想存入数据库,只会存文件的磁盘路径D:/abc/1.jpg,不是存文件本身
六, 字段约束
使用的时间: 通常在设计表创建表时就已经确定了
–1,非空约束
哪个字段添加了非空约束,从此,字段值不能为空,使用not null
mysql> create table b(
-> password varchar(100) not null #给字段添加非空约束
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> insert into b values('abc'); #password字段设置了值,执行OK
Query OK, 1 row affected (0.00 sec)
mysql> insert into b values(null); #password字段值不能设置成null,否则不符合非空约束啦,报错!
ERROR 1048 (23000): Column 'password' cannot be null
–2,主键约束
每个表都应该设计主键 , 主键是每条记录/数据的唯一标识.
现象是: 字段的值必须唯一且不能为空,使用primary key
–3,唯一约束
哪个字段添加了唯一约束,从此,字段值不能相同