数据库从零开始的学习day01
2021/6/29 2:22:00
本文主要是介绍数据库从零开始的学习day01,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数据库
概念
存储数据和管理数据的仓库,主要分成两类:关系型数据库 和 非关系型数据库
关系型数据库:数据库建立在数据的紧密关系基础之上
非关系型数据库:数据库建立在数据的松散关系基础之上
安装
端口号默认3306,字符集改成UTF-8,密码root
配置环境变量
检查
mysql -u root -proot
mysql -u 用户名 -p密码
存储结构
表结构-行列—字段属性
SQL语句
SQL语言
概念:结构化查询语言,用来操作数据库,对库里的数据进行增删改查CRUD
是一种数据库查询和程序设计语言
数据库脚本文件的扩展名
分类
DML数据库操纵语言 CRUD manipulate
DDL:数据定义语言,创建库,创建表 definition
DCL:数据控制语言,分配具体数据操作权限 control
DQL数据查询语言,查询数据 query
如: insert, delete, select (插入,删除,膝盖,检索) 简称CRUD,新增Create、查询Retrieve、修改Delete
数据库常见操作
查询:show databases
新增:create database 库名
删除:drop database 库名(慎用)
注意:SQL不区分大小写
建库
创建数据库CGB2105并设置编码格式为utf8
MariaDB [(none)]> create database CGB2105 default character set utf8;
使用数据库:use CGB2105;
MariaDB [(none)]> use cgb2105; Database changed
表的常见操作
创建表
create table 表名(字段名 字段类型(字段长度),字段2,字段3...)
String -> Varchar
int -> int
double -> double
删除表
drop table 表名;
修改表
alter table 修改的表名 add column 属性名 类型(长度);
MariaDB [cgb2105]> alter table tb_door add column -> address varchar(100);
查看表
show tables;
MariaDB [cgb2105]> show tables; +-------------------+ | Tables_in_cgb2105 | +-------------------+ | house | | tb_door | +-------------------+ 2 rows in set (0.000 sec)
desc 表名; describe
查看表的属性。
表内的数据操作
添加数据
假设有四个属性1,2,3,4
insert into 表名 values("value 1","value 2"",value 3"",value 4");
MariaDB [cgb2105]> insert into tb_door values(1002,'Lineage','12345678','Lineage'); Query OK, 1 row affected (0.024 sec)
删除数据
delete from 表名;
MariaDB [cgb2105]> delete from tb_door; Query OK, 2 rows affected (0.023 sec) MariaDB [cgb2105]> select * from tb_door; Empty set (0.000 sec)
修改数据
update 表名 set 属性名=属性新的值;
MariaDB [cgb2105]> update tb_door set door_name = 'name'; Query OK, 3 rows affected (0.026 sec) Rows matched: 3 Changed: 3 Warnings: 0 MariaDB [cgb2105]> select * from tb_door; +------+-----------+--------+---------+ | id | door_name | tel | address | +------+-----------+--------+---------+ | 1001 | name | 123456 | asd | | 1002 | name | 123456 | asd | | 1002 | name | 123456 | asd | +------+-----------+--------+---------+ 3 rows in set (0.000 sec)
字符串类型一定要加 "" 或者 ‘ ‘,
int 类型加不加无所谓
查询数据
select 字段1,字段2,.../ * from 表名;
MariaDB [cgb2105]> select * from tb_door; +------+-----------+-----------+----------+ | id | door_name | tel | address | +------+-----------+-----------+----------+ | 1001 | hell | 123456789 | Infernal | | 1002 | Lineage | 12345678 | Lineage | +------+-----------+-----------+----------+ 2 rows in set (0.001 sec) MariaDB [cgb2105]> select id,door_name from tb_door; +------+-----------+ | id | door_name | +------+-----------+ | 1001 | hell | | 1002 | Lineage | +------+-----------+ 2 rows in set (0.000 sec)
客户端工具
操作数据库
创建库:库名和字符格式
操作表
创建表:设置属性值
操作表里数据
数据类型
命名规则
- 字段名必须以字母开头,尽量不要使用拼音
- 长度不能超过30个字符(不同数据库,不同版本会有不同)
- 不能使用SQL的保留字,如where,order,group
- 只能使用如下字符az、AZ、0~9、$ 等
- Oracle习惯全大写:USER_NAME,mysql习惯全小写:user_name
- 多个单词用下划线隔开,而非Java语言的驼峰规则
字符
- char长度固定,不足使用空格填充,最多容纳2000个字符char(11)存储abc,占11位。查询速度极快但浪费空间
- Varchar变长字符串,最多容纳4000个字符,Varchar(11)存储abc,只占3位。查询稍慢,但节省空间。Oracle为Varchar
- 大文本: 大量文字(不推荐使用,尽量使用Varchar替代)
数字
- tinyint,int整数类型
- float,double小数类型
- numberic(5,2) decimal(5,2)—也可以表示小数,表示总共5位,其中可以有两位小数
- decimal和numeric表示精确的整数数字
日期
- date 包含年月日
- time时分秒
- datetime包含年月日和时分秒
- timestamp时间戳,不是日期,而是从1970年1月1日到指定日期的毫秒数
图片
- blob 二进制数据,可以存放图片、声音,容量4G。早期有这样的设计。但其缺点非常明显,数据库庞大,备份缓慢,这些内容去备份多份价值不大。同时数据库迁移时过大,迁移时间过久。所以目前主流都不会直接存储这样的数据,而只存储其访问路径,文件则存放在磁盘上。
字段约束
*主键约束
主键约束:如果为一个列添加了主键约束,那么这个列就是主键,主键的特点是唯一且不能为空。通常情况下,每张表都会有主键。
添加主键约束,例如将id设置为主键:
#没有约束,id值可以重复,可以是null CREATE TABLE a(id int); #设置主键,id值不能重复,不能是null CREATE TABLE b(id int PRIMARY KEY); #设置主键,自动递增 CREATE TABLE c(id int PRIMARY KEY auto_increment); #非空约束:约束了字段的值不能为空 CREATE TABLE d(name VARCHAR(20)); CREATE TABLE e(name VARCHAR(20) NOT NULL); #唯一约束:字段值不能重复 CREATE TABLE f(name VARCHAR(20)); CREATE TABLE g(name VARCHAR(20) UNIQUE);
这篇关于数据库从零开始的学习day01的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27消息中间件底层原理资料详解
- 2024-11-27RocketMQ底层原理资料详解:新手入门教程
- 2024-11-27MQ底层原理资料详解:新手入门教程
- 2024-11-27MQ项目开发资料入门教程
- 2024-11-27RocketMQ源码资料详解:新手入门教程
- 2024-11-27本地多文件上传简易教程
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器