zoukankan      html  css  js  c++  java
  • 数据库

    数据库

    一、认识数据库

    1.1什么是数据(Data)

    描述事物的符号记录称为数据,在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:tank,不详,83,1935,广东,oldboy

    1.2 什么是数据库(DataBase,简称DB)

    数据库即存放数据的仓库,数据是按一定的格式存放的。数据库是长期存放在计算机内、有组织、可共享的数据集合。

    1.3 什么是数据库管理系统

    如何科学地组织和存储数据,如何高效获取和维护数据成了关键。这就用到了一个系统软件---数据库管理系统,如MySQL、Oracle、SQLite、Access、MS SQL Server。

    • mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
    • oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。
    • sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。

    而对数据库管理的人员一般称之为:数据库管理员 DBA(Database Administrator)

    1.4数据库服务器、数据管理系统、数据库、表与记录的关系(重点)

    表:userinfo,studentinfo,courseinfo(即文件)

    数据库:db(即文件夹)

    数据库管理系统:如mysql(是一个软件)

    数据库服务器:一台计算机(对内存要求比较高)

    总结:

    • 数据库服务器:运行数据库管理软件
    • 数据库管理软件:管理数据库
    • 数据库:即文件夹,用来组织文件/表
    • 表:即文件,用来存放多行内容/多条记录

    二、数据库的组成

    库:存放多张表 -- 文件夹

    表:包含多条相同结构的记录 -- 文件

    记录:包含多个 key - value键值对的一条数据 - 二进制数据

    字段:描述信息 - 信息本身 == key - value - 二进制数据

    三、数据库的分类

    1.关系与非关系

    关系:数据库中表与表之间有关系 - mysql

    非关系:没有表的概念 - Redis、mongodb

    2.内存与硬盘

    硬盘:数据可以永久存储 - mysql、mongodb

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

    3.sql 与nosql

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

    eg:stu--{'name':'wwb','age':18}

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

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

    MySQL

    MySQL是一个关系型数据库管理系统 ,MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码 这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

    连接数据库

    1.游客登录(不一定能登入、就算登陆啥也不能做)
    >:mysql
    2.账号密码登录
    >: mysql -u root -p
        再输入密码,没有任何提示,没有密码直接回车
    3.连接指定服务器的mysql
    >:mysql -h ip地址 -p 端口号 -u 账号 -p
    回车后敲入指定密码
    eg:
    >:mysql -hlocalhost -p306 -uroot -p
    4.退出数据库
    >:quit
    >:exit
    

    用户信息查看

    1.查看当前登录用户
    mysql>: select user();
    2.root权限下可以查看所有用户信息
    mysql>:select * from mysql.user
    mysql>select * from mysql.userG  #将数据竖排
    mysql>: select user,password,host from mysql.user;
    3.root登录下,删除游客(操作后要重启mysql服务)
    mysql>: delete from mysql.user where user='';
    4)root登录下,修改密码(操作后要重启mysql服务)
    mysql>:update mysql.user set password=password('12345678') where host='localhost';
    )没有登录
    >: mysqladmin -u用户名 -p旧密码 -h域名 password "新密码"
    eg>: mysqladmin -uroot -p12345678 -hlocalhost password "root"
    
    6)root登录下,创建用户
    mysql>:grant 权限们 on 数据库名.表名 to 用户名@主机名 identified by '密码';
    

    数据库基本操作

    1)查看已有数据库
    mysql>:show databases;
    
    2)选择某个数据库
    mysql>:use 数据库名
    
    3)查看当前所在数据库
    mysql>:select database();
    
    4)创建数据库
    mysql>:create database 数据库名 [charset=编码格式];
    eg>: create database owen;
    eg>: create database zero charset=utf8;
    eg>: create database tank;
    
    5)查看创建数据库的详细内容
    mysql>:show create database 数据库名;
    eg>: show create database owen;
    
    6)删除数据库
    mysql>: drop database 数据库名;
    eg>: drop database tank;
    

    表的基本操作

    前提:先选取要操作的数据库
    
    1)查看已有表
    mysql>:show tables;
    
    2)创建表
    mysql>:create table 表名(字段们);
    eg>: create table student(name varchar(16), age int);
    eg>: create table teacher(name varchar(16), age int);
    
    3)查看创建表的sql
    mysql>:show create table 表名;
    eg>: show create table student;
    
    
    4)查看创建表的结构
    mysql>:desc 表名;
    
    5)删除表
    mysql>: drop table 表名;
    eg>: drop table teacher;
    

    记录的基本操作

    1)查看某个数据库中的某个表的所有记录,如果在对应数据库中,可以直接查找表
    mysql>: select * from [数据库名.]表名;
    注:*代表查询所有字段
    
    2)给表的所有字段插入数据
    mysql>: insert [into] [数据库名.]表名 values (值1,...,值n);
    eg:如果给有name和age两个字段的student表插入数据
    1条>:insert into student values ('Bob', 18);
    多条>:insert into student values ('张三', 18), ('李四', 20);
    指定库>:insert owen.student values ('张三', 18), ('李四', 20);
    
    3)根据条件修改指定内容
    mysql>: update [数据库名.]表名 set 字段1=新值1, 字段n=新值n where 字段=旧值;
    eg:> update student set name='王五', age='100' where name='张三';
    注:i) 可以只修改部分字段 ii) 没有条件下,所有记录都会被更新
    eg:> update student set name='呵呵';
    
    4)根据条件删除记录
    mysql>: delete from [数据库名.]表名 where 条件;
    eg:> delete from student where age<30;
    
  • 相关阅读:
    PAT乙级1038
    PAT乙级1033
    PAT乙级1032
    memset初始化数组的坑
    C/C++小课之数组名是什么
    PAT乙级1031
    Alpha阶段 第一次Scrum Meeting
    技术规格说明书
    功能规格说明书
    团队项目选择
  • 原文地址:https://www.cnblogs.com/wwbplus/p/11634571.html
Copyright © 2011-2022 走看看