VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > MySQL >
  • MySQL教程之mysql入门知识

 
数据库

什么是数据库
就是存储数据的仓库(容器)

存储数据的方式
1.变量  无法永久存储
2.文件处理 ,可以永久存储

文件处理存在的弊端:
    1.文件处理速度慢
    2.文件只能在自己的计算机上读写  无法被共享(局域网除外)

单台计算机的性能终归是有限的
1.升级你的硬件设备   提升幅度有限  垂直扩展
2.服务器集群 分布式       横向扩展

一旦把服务器拆分开后,数据就必须能够被不同计算机共享
必须通过网络,也就是socket

数据库软件的本质 也就是一个 基于socket(TCP)的C/S结构的程序

如果自己实现一个数据软件 需要解决的几个问题
1.一旦数据共享 就存在竞争问题,需要处理锁
2.不是所有的TCP连接请求都要接受,得加上安全验证
3.文件处理带来的效率问题, 需要想办法来提高处理速度  (索引)

有很多现成数据库软件可以直接使用,又分为两大类
1.关系型数据库
    该类型的数据 提供某种机制 可以帮你维护 数据与数据之间的关系
    例如 学员数据 和 班级数据 可以通过其中一方 找到另外一方
    一般都是基于文件实现的
    优点:容量大 可以永久存储
    mysql     免费开源,开源支持中小型企业并发

    oracle    商用收费,学习免费,功能比mysql强大,用户管理和集群
    SQLServer 属于微软生态圈,只能运行于 windows上
    mariaDB   mysql创始人:韦德纽斯  担心 mysql的前程 于是基于mysql开发了mariaDB  用起来是一模一样
    DB2       IBM  360
    sqllite   非常轻量级的数据库


共同特征都支持SQL
    结构化 查询语言
    学习数据库的重点也就是SQL语句




2.非关系型数据库
    数据与数据之间是独立 不存在任何关联关系
    以key:value的形式来存储数据
    一般基于内存
    优点:速度快
    问题:断电丢失

    MongoDB
    redis
    memcache


该使用哪一类数据库?
    应该搭配使用,把数据量大的 存到关系型中 把经常访问的放到非关系型中
    提高访问速度

数据库相关的概念

数据  本质上一堆带有含义的符号
name = jack

数据记录
    多个数据组成了一条完整记录
    name,age,sex
    jack,38,man
    rose,20,woman

表 本质就是一个文件
    里面存储一堆数据记录

库 本质就是一个文件夹
    里面放一堆表文件

DBMS
    data base manager system
    数据库管理系统 (TCP的服务器)
    负责管理一堆文件夹(即数据库)

数据库服务器
    指的是运行有TCP服务器的程序 的计算机

DBMS和服务器  一般运维管
    到公司之后会分给你一个账号密码  以及服务器地址



mysqld 是服务器主程序
    mysqld 警告说:创建文件失败  由于权限不足  用管理员权限运行即可
mysql 是无界面的客户端 需要在CMD运行
mysql连接服务器 需要指定以下参数
-h 主机地址(ip)
-P 端口号
-u 用户名
-p 密码

服务器和客户端在同一台电脑  可以省略主机地址  端口号默认3306 可以省略
如果不指定用户名和密码 以游客模式登陆 什么都看不到



mysql 的安装:
1.带界面  一路next
2.压缩包 直接解压
    2.1 添加环境变量
    2.2 注册系统服务


修改管理员密码
    1.如果知道原始密码 mysqladmin  -uroot -p password 123
    2.不知道原密码    可以在启动服务器时 跳过 授权表
        mysqld --skip-grant-tables
        无密码登录服务器  执行修改密码的指令
        update mysql.user set password = password("新密码") where user = "root" and host = "localhost";


关于库的 语句
创建库
create database 库名称
删除库
drop database 库名称
修改库的属性
alter database 库名称 charset = "新的编码"
查看创建库详细信息
show create database mydb;
查看所有数据库
show databases
选择一个数据库
use 库名称


关于表
增
create table 表名称(name char,age int);
create table 库.表名(name char,age int);

查看所有表
show tables;
查看表的详细信息
show create table t1;
查看表结构 (字段)
desc t1;

改
alter table t1 charset = "gbk";    改编码
alter table t1 add sex char;    添加字段
alter table t1 drop sex;   删除字段
alter table t1 modify age char;   修改字段的类型
alter table t1 change age ages int;  修改字段的名字和类型
rename table t1 to table1;  修改表的名称

删除
drop table table1;



数据记录相关操作是重点学习对象
# 一次性插入多条记录
insert into table_name values("陈麻子",20);
# 一次性插入多条记录
insert into table_name values(值1,值2),(值2,值2),...;
上述语法  值的个数必须与字段的个数相同

# 指定要插入数据的字段
insert into t2(name) values("我只有姓名啊")


查看数据
select * from t2;  * 表示查看所有字段  多个字段用逗号隔开

修改
update t2 set age = 100; 没有条件则全部修改
update t2 set age = 100 where name = "陈";
update t2 set age = 100,name = "刘铁柱" where name = "陈" ;

删除数据
delete from t2 where name = "刘铁柱";
相关教程