学习日记0911数据库基础
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 = utf8 collation-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 表名 (查看所有字段下的数据)