[mysql]数据库基础知识
数据库管理系统DBMS
软件
bin
config
db (保存数据)
写程序:
数据库在本地
找到目录
添加数据
数据库在远程
socket连接上远程机器
socket发送命令
需要做的事情
程序
socket客户端
数据
socket服务端
规则
add |内容
delete | 内容
........
socket服务端和客户端用户认证,授权,限制
远程连接数据库要做的这些事情被一些人整合成一个软件,这些软件就是数据库软件,例如:
oracle,mysql,sqlerver,sqlite,access......
下载安装
1.下载
2.解压
3.运行服务器端
4.客户端连接
#将mysql服务器端制作成一个 windows服务
net start mysql
net stop mysql
===, 打开服务管理
×××××××××××正题××××××××××××××××××××××××××××××××××××××××
××××××××××××mysql×××××××××××××
1.概念
数据库 >> 文件夹
数据库表 >> 文件夹里的文本文件
数据行 >> 文件中的一行数据
2.启动服务器
net start mysql
或者
/etc/init.d/mysql start
客户端连接
mysql -u root -p
3. 基础操作命令
show databases; # 查看当前mysql都有哪些数据,根目录里有哪些文件夹
create database 数据库名; #创建文件夹
use 数据库名; #使用选中的数据库,进入数据库目录
show tables; #查看当前数据库下都有哪些表
create table 表名 (nid int,name varchar(22),pwd varchar(64)); #创建数据库表
select × from 表名; # 查看表中的所有数据
insert into 表名(nid,name,pwd) values(1,'zhangw','1234'); # 插入数据
4.用户授权
用户管理特殊命令:
创建用户
create user '用户名'@' ip地址' identfied by '密码';
删除用户
drop user '用户名'@'IP地址';
修改用户
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
修改密码
set user '用户名'@'ip地址' = Password('新密码')
权限
默认,没有任何权限
grant 权限 on 数据库.表 to '用户'@'ip地址' ---授权
5.远程连接
不再重复操作,直接发送命令给服务器
远程操作的内容:数据库,表,行
开户和授权
密码,必须用
其他,推荐用
客户端连接
mysql -u root -h 192.168.1.1 -p #-h 指定主机
6.SQL语句
数据库
show databases;
create database 数据库名称 ;
create database 数据库名称 default charset utf8 collate utf8_general_ci;
use 数据库名称;
drop database 数据库名称;
表
show tables;
desc tb1;
create table tb1(nid int,name varchar(10));
# 主键
不能为null,
不能重复,
一张表只有一个主键(可以多列组成主键)
#用法
nid int auto_increment primary key
# 创建tb5, nid做主键,name 变长16,age 默认19,选用innode引擎,默认编码utf8
create table tb5
(
nid int not null auto_inctement primary key,
name varchar(16),
age int default 19
)engine = innodb default charset=utf8;
# 外键foreign key
7.字符串
定长 char(22)
查找速度快,浪费空间
变长 varchar(22)
查找速度慢,节省空间
8.二进制数据
TinyBlob,Blob,MediumBlob,LongBlob
上传文件
Blob, 强制二进制方式
varchar(65)
9. 时间
DATE
YYYY-MM-DD(1000-01-01/9999-12-31)
TIME
HH:MM:SS('-838:59:59'/'838:59:59')
YEAR
YYYY(1901/2155)
DATETIME
YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)
TIMESTAMP
YYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
10.连表操作
select * form a,b where a.x = b.o
join
left join
select * from a LEFT OUTER JOIN b ON a.x = b.o
inner join
select * from a inner JOIN b ON a.x = b.o