数据库
数据库的分类
1. 关系与非关系
关系:数据库中表与表之间有联系 -- mysql
非关系:数据库中没有表的概念 -- Redis、MongoDB(介于关系与非关系之间)
2. 内存与硬盘
内存:数据可以永久存储 -- mysql、MongoDB
硬盘:数据的存取效率极高 -- Redis、memcache
3. sql与nosql
sql:数据库操作通过sql语句
nosql:数据库操作就是key-value形式(value就是一条记录)
连接数据库
1. 游客登录(不一定能登入,登入了也啥都不能干)
# 语法
> mysql
2. 账号密码登录
# 语法
> mysql -u root -p
再输入密码,没有任何提示,没有密码直接回车
3. 连接指定服务器的mysql
# 语法
> mysql -h ip地址 -p 端口号 -u 账号 -p
回车后输入密码
# 例子
> mysql -h localhost -p 3306 -u root -p
4. 退出数据库
# 语法
> quit
> exit
用户信息查看
1. 查看当前登录的用户
# 语法
mysql> select user();
2. root权限下可以查看所有用户信息
# 语法
mysql> select * from mysql.user;
mysql> select * from mysql.user G
mysql> select user,password,host from mysql.user;
3. root登录下,删除游客(操作后要重启mysql服务)
# 语法
mysql> delete from mysql.user where user='';
4. root登录下,修改密码(操作后要重启mysql服务)
# 语法
mysql> update mysql.user set password=password('123456') where host='localhost';
5. 没有登录,修改密码
# 语法
> mysqladmin -u 用户名 -p旧密码 -h 域名 password 新密码
# 例子
> mysqladmin -uroot -p123456 -hlocalhost password root
6. root登录下,创建用户
# 语法
mysql> grant 权限们 on 数据库名.表名 to 用户名@主机名 indentified by '密码';
数据库的基本操作
1. 查看已有的数据库
# 语法
mysql> show databases;
2. 选择某个数据库
# 语法
mysql> use 数据库名;
3. 查看当前所在数据库
# 语法
mysql> select database();
4. 创建数据库
# 语法
mysql> create database 数据库名 [charset=编码格式];
# 例子:
mysql> create database xiaowu;
5. 查看创建数据库的详细内容
# 语法
mysql> show create database 数据库名;
# 例子:
mysql> show create database xiaowu;
6. 删除数据库
# 语法
mysql> drop database 数据库名;
# 例子:
mysql: drop database xiaowu;
表的基本操作
前提:先选取要操作的数据库
1. 查看已有的表
# 语法
mysql> show tables;
2. 创建表
# 语法
mysql> create table 表名(字段们);
# 例子
mysql> create table student(name varchar(16), age int);
3. 查看创建表的sql
# 语法
mysql> show create table 表名;
# 例子
mysql> show create table student;
4. 查看创建表的结构
# 语法
mysql> desc 表名;
5. 删除表
# 语法
mysql> drop table 表名;
# 例子
mysql> drop table student;
记录的基本操作
1. 查看某个数据库中的某个表的所有记录,如果在对应数据库中,可以直接查找表
# 语法
mysql> select * from [数据库名.]表名;
注:*代表查看所有字段
2. 给表的所有字段插入数据
# 语法
mysql> insert [into] [数据库名.]表名 values (值1,...,值n);
# 例子:给有name和age两个字段的student表插入数据
(插入一条)mysql> insert into student values ('张三', 18);
(插入多条)mysql> insert into student values ('李四', 20), ('王五', 22);
(指定数据库)mysql> insert into dawu.student values ('赵六', 18), ('孙七', 19);
3. 根据条件修改指定内容
# 语法
mysql> update [数据库名.]表名 set 字段1=新值1, 字段2=新值2 where 字段=旧值;
注:i.可以只修改部分字段 ii.没有条件下,所有的记录都会被更新
# 例子
mysql> update student set name='小吴', age=19 where name='张三';
mysql> update student set name='哈哈';
4. 根据条件删除记录
# 语法
mysql> delete from [数据库名.]表名 where 条件;
# 例子
mysql> delete from student where name='哈哈';