数据库
1.什么是数据库:管理数据的系统(安装某种管理数据的系统,管理的对象本质是文件)
2.存数据的位置:内存,硬盘
3.什么是系统:运行在硬件基础上,管理其他软件
数据库的组成:
库:存放多张表(文件夹)
表:包含多条相同结构的记录
记录:包含多个key-value(键值对)的一条数据
字段:描述信息 -- 信息本身 == key -- value(键值对)
表:
id name age gender
1 BOB 18 男
2 TOM 17 女
数据库的分类
关系与非关系
关系:数据库中表与表有联系,mysql,
非关系:没有表概念,(只有记录)redis,mongodb(介于关系与非关系)
内存与硬盘:
硬盘:数据可以永久存储,mysql,mongodb
内存:数据的存取效率极高,redis,memcache
sql与nosql
sql:数据库操作通过sql语句
nosql:数据库操作通过key-value形式(value就是一条记录)
stu - {'name':'BOB','age':'18'}
连接数据库
游客登录
mysql 直接回车,不一定能登录,登录也无法操作
账号密码登录
mysql -u(空格可有可无)root -p 回车,
密码,无提示 没有密码直接回车
连接指定服务器的mysql:
mysql -h -P -u -p 依次是IP地址,端口号(默认3306),账号密码
例:
mysql -hlocalhost -P3306 -u root -p
(localhost表示本地),端口号错误会连接超时
连接远程服务器时 -h ip地址 -P3306 -u(账号) -p(密码)
退出:quit exit
用户操作
用户信息查看
查看当前用户:select user();
root权限下查看所有用户信息:select * from mysql.user; (当前数据库的user表)
后加G 纵向排列
select user,password,host from mysql.user; 查看账户,密码,端口,空的user是游客,没有权限
root登录下,删除游客(需要重启mysql服务)
delete from mysql.user where user='';
root登录下,修改密码(需要重启)
update mysql.user set password=password('123456') where host='127.0.0.1'
没有登录
musqladmin -用户名 -p旧密码 -h域名 password"密码"
例:mysqladmin -uroot -p123456 -h'127.0.0.1' password'12345678'
root登录下,创建用户
grant 权限们 on 数据库名.表名 to 用户名@主机名 identified by '密码';
数据库基本操作
前提:登录
查看已有数据库
show databases
选择使用的数据库
use 数据库名
查看当前所在数据库
select database();
创建数据库
create database 数据库名[charset = 编码格式];
(都在目录data下面)
创建数据库的详细内容
show create database 数据库名;
删除数据库
drop database 数据库名;
表的基本操作
前提:选取过了数据库
查看已有表
show tables;
创建表
create table 表名(字段们);
例:create table student(name varchar(16),age int);
(字段,长度,类型,约束)
查看创建表的sql
show create table student;
查看创建表的结构
desc 表名
删除表
drop table 表名;
记录的基本操作
查看某个数据库中的某个表的所有记录,如果在对应数据库中,可以直接查找表
select * from [数据库名.]表名;
给表的所有字段插入数据
insert [into] [数据库名.]表名 values(值1,,,,值n);
如果给有name和age两个字段的student表插入数据
例:insert into student values('Bob',18);
insert into student values(),(),() 多个时
指定库:insert 数据库名.student values();
修改
update from [数据库名.]表名 set 字段1=新值1,字段2=新值2,,, where 字段=旧值
例:update student set name='',age='' where name='';
根据条件删除记录
delete from [数据库名].表明 where 条件;
例:delete from student where age<30;