1 认识数据库
目前常见的数据库
关系型数据库
数据与数据之间可以建立关联关系(用户数据和购买信息)
SQLServer
仅支持windows
MySQL
免费 开源 性能也不差 mysql 先后被sun 和 oracle收购
mariaDB
mysql的创始人 担忧mysql的未来 于是推出mariaDB 使用起来完全一致
Oracle
目前最牛逼的数据库 收费很高
DB2 IMB
收费的 一般与计算机绑定销售非
关系型数据库
速度贼快key value 存取
MongoDB redis memcache
数据库相关概念 数据 用于记录某事物状态的符号 或 别的形式 数字 音频 age = 20 记录 就是一个事物的典型特征的组合 在文件中体现为一行文本 yyh,20,man,180 表 就是一个一个的文件 库 就是一个文件夹 数据库管理系统(DBMS) 就是一个软件用来管理库的 C/S程序 数据库服务器 运行着DBMS的计算机称为数据库服务器
3 启动服务器 注册系统服务 (以mysql为例) 启动服务器: 先将mysql添加到系统变量 在path中加入你的mysql的安装目录 注册系统服务 在前面完成的前提下在命令行中输入: mysqld --install 4 修改与破解密码 修改密码 在命令行中输入: mysqladmin -uroot -p旧密码 password新密码 破解密码 1 在服务端输入 mysql --skip-grant-tables(效果是让客户端登录时跳过注册表,可以不使用账号密码登录) 2 在客户端无密码登录 3 更新注册表 update mysql.user set password = password("321") where user = "root" and host="localhost"; 安装mysql得到两个程序
1.服务器程序 存取数据时服务器的工作 2.客户端程序 命令服务器来完成存取工作 客户端将命令发送给服务器 服务器解析执行命令 返回客户端要的数据 服务器为了保证数据安全需要进行用户验证 默认有一个root 账户 默认没有密码 不安全 需要修改密码: 在服务器的终端中执行 mysqladmin.exe -u要改的用户名 -p旧密码 password 新密码 在服务器上执行命令时 如果看到Install/Remove of the Service Denied! 说明权限不够 得用管理员身份运行 如果忘记密码 要破解 也需要在服务器终端启动mysql服务 并且需要添加跳过授权表的参数 mysql -uroot -padmin 用mysql自带的客户端登录服务器 -u 用户名 -p 密码 -h 服务器的ip -P端口号 在本机上执行客户端不需要指的 -h -P 常见sql命令 show databases; 查看所有数据库名称 use 数据库名称 选择某个数据库 就是进入文件夹 quit or exit 退出客户端 以上的指令 只有两个是在服务器端执行 mysqld mysqladmin 5 编码设置
在mysql的根目录下设置配置表 my.ini 内容为
[mysqld]character-set-server = utf8collation-server = utf8_general_ci[mysql]default-character-set = utf8 [client]default-character-set = utf8
再重启服务端
6 数据库基础
库相关 添加库 create database 数据库名 charset utf8; 查 show databases; (查看所有的数据库) show create database 数据库名 (查看建库语句) 改 (在mysql中库的修改只能改编码) alter database 库名 charset 编码; 删 drop datebase 数据库名 表相关 要修改表需要建立在进入库的基础下,操作语句: use 库名 增 create table 表名(字段名 属性,字段名 属性,......) 删 drop table 表名 truncate table 表名 (重建表会清空数据) 查 show tables;(查看有几个表) besc 表名; (查看表中的字段) show create 表名; (查看建表语句) 改 alter table 表名 add | modify |drop | change add 后面跟 字段名 类型 (添加字段) modify 后面跟 字段名 要修改成的类型 (修改字段的数据类型) drop 后面跟 字段名 (删除字段) change 后面跟 旧字段名 新字段名 新字段的数据类型 (修改字段名和数据类型) 记录相关 记录是基于表和库的所以也要先进入库才可以进行相关操作 use 库名 增 insert into 表名 values(值1,....),(值2,....) 删 delete from 表名 where 条件 改 update 表名 set 字段 = 值 where 条件(字段 = 值) 查 select 字段名 from 表名 select * from 表名 (查看所有字段下的数据)