数据库
定义: 存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按照一定的格式存放的
优势:
1.程序稳定性. 任意一台服务所在的机器崩溃了都不会影响数据和另外的服务;
2.数据一致性. 所有的数据都存储在一起,所有程序操作的数据都是统一的,不会出现数据不一致的现象;
3.并发.数据库本身支持并发的网络操作,不需要我们自己写socket
4.效率. 使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多
分类:
关系型数据库 适合在存取数据的时候字段不确定的情况 mysql oracle sqlite sqlserver
非关系型数据库 总是用一个固定的字段来获取某些信息,并且对数据的存取速度要求都非常高 redis mongdb
sql语句
mysql客户端: mysql> select user(); # 查看当前用户 mysql> exit # 退出 mysql -uroot -p # 管理员身份登录 mysql -uroot -p123 -h192.168.16.3 # 远程登录 mysql> set password = password('123') # 给当前数据库设置密码 mysql> create user 'pystu'@'192.168.16.%' identified by '123'; # 指定网段 并且设置连接密码 mysql> create user 'pystu'@'192.168.16.4'; #指定某台机器可以连接 mysql> create user 'pystu'@'%'; # 所有机器都可以连接 mysql> show grants for 'pystu'@'192.168.16.4'; # 查看某个用户的权限 mysql> grant all on *.* to 'pystu'@'%'; # 给账号授权 *.*是 数据库名.表名 # 直接使用grant进行创建账号和授权 mysql> grant all on *.* to 'eva'@'%' identified by '123'; #创建一个新的账户'eva'并且授权给这个账户
sql语言分为三类:
DDL语句 数据库定义语言 数据库,表,视图,索引,存储过程 create drop alter
DML语句 数据库操纵语言 插入数据insert 删除数据delete 更新数据update 查询数据select
DCL语句 数据库控制语言 例如控制用户的访问权限 grant remove
操作文件夹(库): 新建一个文件夹名为db1 增: create database db1 (charset utf8); 查: show databases; 改: alter database db1 charset latin1; 删除: drop database db1; 操作文件(表): 创建文件t1 先切换到文件下: user db1 增: create table t1(id int,name char); # 新建t1文件 id和name后要指定数据类型 char相当于字符串 查: show tables; 改: alter table t1 modify name char(3); # 规定name字段的内容长度不超过3 alter table t1 change name name1 char(2); # 将name字段名改为name1,且规定name1字段的内容长度不超过2 删: drop table t1; 操作文件中的内容(记录) 增: insert into t1 values(1,'egon1'),(2,'egon2'),('3,'egon3'); 查: select * from t1; 改: update t1 set name='alex' where id=2; 删: delete from t1 where id=1;