数据库(上)

数据库

一、初识数据库

# 什么是数据库?
	管理数据的系统
# 存数据的位置
	内存、硬盘(文件、数据库)
# 什么是系统?
	运行在硬件基础上,管理其他软件

二、数据库的组成

数据库由库、表、记录、字段组成

  • 库:存放多张表(文件夹)
  • 表:包含多条相同结构的记录(文件)
  • 记录:包含多个key—value键值对的一条数据(二进制数据)
  • 字段:描述信息+信息本身=key+value(二进制数据)

三、数据库的分类

3.1 关系与非关系

关系:数据库中表与表有联系 eg:mysql

非关系:没有表概念(体现的都是记录) eg:redis

3.2 内存与硬盘

硬盘:数据可以永久存储 eg:mysql

内存:数据的存储效率极高 eg:redis

3.3 sql与nosql

sql:数据库操作通过sql语句

​ eg:stu--{'name':'yjy','age':18}

nosql:数据库操作就是key-value形式(value就是一条记录)

​ eg:name--'yjy'(短小的记录)

四、连接数据库

'''游客登录'''(不一定能登录,登入了什么也干不了)
>: mysql
'''账号密码登录'''
>: mysql -u root -p
    再输入密码,没有任何提示,没有密码直接回车

'''连接指定服务器的mysql'''
>:mysql -h ip地址 -p 端口号 -u 账号 -p
回车后输入密码
eg:
>:mysql -hlocalhost -p3306 -uroot -p
 
'''退出数据库'''
>:quit
>:exit

五、用户信息查看

'''查看当前登陆的用户'''
mysql>:select user();
    
'''root权限下可以查看所有用户信息'''
mysql>:select * from mysql.user;
mysql>:select * from mysql.user G(纵向排列)
mysql>:select user,password,host from mysql.uaer;
    
'''root登录下,删除游客(操作后要重启mysql服务)'''
mysql>:delete from mysql.user where user= ' '

'''root登录下,修改密码(操作后要重启mysql服务)'''
mysql>:update mysql.user set password=password('12345678') where host='localhost';

'''没有登录'''
>: mysqladmin -u用户名 -p旧密码 -h域名 password "新密码"
eg>: mysql admin -uroot -p123 -hlocalhost password "root"
    
'''root登录下,创建用户'''
mysql>:grant 权限们 on 数据库.表名 to 用户名@主机 identified by '密码';

六、数据库的基本操作

'''查看已有数据库'''
mysql>:show databases;

'''选择某个数据库'''
mysql>:use 数据库名

'''查看当前所在的数据库'''
mysql>:select database();

'''创建数据库'''
mysql>:create database 数据库名[charset=编码格式]
eg:create database yjy;
eg:create database wwb charset = utf8;

'''查看数据库的详细内容'''
mysql>:show create database 数据库名;
eg:show create database yjy

'''删除数据库'''
mysql>:drop database 数据库名;
eg:drop database yjy;
'''将db2数据库编码修改为utf-8编码格式'''
 mysql>:alter database db2 charset="utf8";

七、表的基本操作

前提:先选取要操作的数据库

'''查看已有表'''
mysql>:show tables;

'''创建表'''
mysql>:create table 表名(字段们);
eg:create table boyfriends(name varchar(16), age int);
'''查看创建的sql'''
mysql>:show create table 表名;
show create table boyfriends; 

'''查看创建表的结构'''
mysql>:desc 表名;

'''删除表'''
mysql>:drop table 表名;
eg:drop table boyfriends

'''修改db1库t1表的name字段char类型长度为20'''
alter table db1.t1 modify name char(20);

八、记录的基本操作

'''查看某个数据库中的某个标的所有记录,如果在对应数据库中,可以直接查找表'''
mysql>:select * from [数据库名.]表名;
# *代表查询所有字段
'''给表的所有字段插入数据'''
mysql>:insert [into] [数据库名.]表名 values (值1,...,值n);
eg:如果给有name和age两个字段的boyfriends表插入数据
1条:insert into boyfriends values ('wwb', 22);
多条:insert into boyfriends values ('wwb', 22),('ypp', 22);
指定数据库:insert yjy.boyfriends values ('wwb', 22)

'''根据条件修改指定内容'''
mysql>:update [数据库名.]表名 set 字段1 = 新值1,字段n = 新值n where 字段 = 旧值;
eg:update boyfriends set age = '18' where name = 'wwb';
#1)可以只修改部分字段
#2)没有条件下,所有记录都会被更新
eg:update boyfriends set name = 'sb';

'''根据条件删除记录'''
mysql>:delete from [数据库名.]表名 where 条件;
eg:delete from boyfriends where age>20;
原文地址:https://www.cnblogs.com/yanjiayi098-001/p/11558234.html