首页 > 技术文章 > 1、数据库概述与基本语句

poco 2021-05-01 15:34 原文

一、数据库概述

文字、图片、声音...任何描述事物的符号记录,经过数字化后存入计算机,可以称之为数据(Data),而数据库(DB)介绍存放这些数据的仓库

1、数据库相关软件

关系型数据库:固定表结构并且表与表之间可以建关系
常见软件:MySQL、PostgreSQL、sqlite,db2,oracle,access,sql server

非关系型数据库:没有固定表结构,存储数据以kv键值对形式
常见软件:mongodb,redis,memcache

二、MySQL介绍

本质也是一款基于socket编写的C/S架构的软件

1、重要概念介绍

"""
库		>>>		文件夹
表		>>>		文件夹里面的文件
记录	 	>>>		文件内一行行的数据

表头		>>>		表格的第一行数据
字段		>>>		字段名+字段类型
"""

2、下载与安装

具体请百度,pass

3、系统服务

1.环境变量添加
# 具体请百度,pass

2.系统服务制作(全部在管理员身份下操作)
    # 查看系统服务
    services.msc
    # 制作成系统服务
    mysqld --install
    # 启动服务
    net start mysql
3.取消系统服务(需要先停止服务,再取消系统服务)
    # 停止服务
    net stop mysql
    # 取消系统服务
    mysqld --remove

4、用户登录、设置密码

mysql -u用户名 -p密码  # 管理员初次登录无需密码

mysqladmin -uroot -p原密码 password 新密码  # 修改管理员密码
# 如果是只输入mysql,那就是以游客模式登录

# 忘记密码
    1.跳过授权表启动
	mysqld --skip-grant-tables
    2.无密码登录
    	mysql -uroot -p
    3.修改用户密码
    	update mysql.user set password=password(123) where user="root" and host="localhost";  # 修改对应用户的密码
    4.退出正常启动

5、配置文件

因为MySQL的字符编码不一定统一,我们需要自己配置文件,保持编码统一。MySQL默认配置文件my-default.ini,这个文件不能修改!!!
我们把这个文件拷贝一份并重命名my.ini 即可

# 把文件内容拷贝进my.ini里
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

6、基本SQL语句

(1) 操作文件夹(库)

# 增
create database 数据库名称 charset='utf8';

# 删
drop database 数据库名称;

# 改
alter database 数据库名称 charset='gbk';

# 查
show databases;  # 整体查看
show create database 数据库名称;  # 指名道姓的查看

(2) 操作文件(表)

use 库名;  # 切换文件夹
select database();  # 查看当前所在的库

# 增
create table 表名(id int,name char(4));  # 创建出来的可能是多个文件,解耦管理

# 改
alter table 表名 modify name char(16);

# 查
show tables;  # 查看当前库下所有的表名
show create table 表名; # 查看表的详细信息
describe 表名;   # 查看表结构(字段),支持简写desc t1;

# 删
drop table 表名;

(3) 操作文件中的内容(记录)

# 增
insert into 库名.表名 values (1,'tom');  # 传单个
insert into 库名.表名 values (2,'tom'),(3,'tony'),(4,'jason');  # 传多个

# 改
update 库名.表名 set name='DSB' where id > 1;  # where后面是添加改的条件
update 库名.表名 set name='DSB' where id = 2 or id = 3;  # 添加多个条件

# 查
select id,name from 库名.表名;  # 库名可不指定,默认当前库下
select * from 表名;  # *表示所有

# 删
delete from 库名.表名 where id >3;  #将表里记录下 id大于3的统统删除
delete from 库名.表名 where name='jason'; 
delete from 库名.表名;  # 将表所有的数据都删除

推荐阅读