数据库

数据库

数据库的分类

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='哈哈';
原文地址:https://www.cnblogs.com/yunluo/p/11573435.html