初始数据库
1. 概念介绍
数据:
描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机
数据库(DataBase,简称DB):
-
数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的
-
数据库是长期存放在计算机内、有组织、可共享的数据集合。
-
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享
数据库管理系统(DataBase Management System 简称DBMS):
一个可以科学地组织和存储数据,高效获取和维护数据的系统软件就是数据库软件
分类:
-
关系型数据管理系统;存取效率相对低,数据与数据之间关系紧密
-
非关系型数据管理系统;存取效率相对高,数据与数据之间通过kv建立联系
成员介绍:
-
数据库服务器-:运行数据库管理软件
-
数据库管理软件:管理-数据库
-
数据库:即文件夹,用来组织文件/表
-
表:即文件,用来存放多行内容/多条记录
2. 数据库的优点
-
程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务。
-
数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象
-
并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket
-
效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多
二、数据库语句
1. mysql 的账号操作
#进入mysql客户端
$mysql
mysql> select user(); #查看当前用户
mysql> exit # 也可以用q quit退出
# 默认用户登陆之后并没有实际操作的权限
# 需要使用管理员root用户登陆
$ mysql -uroot -p # mysql5.6默认是没有密码的
#遇到password直接按回车键
mysql> set password = password('root'); # 给当前数据库设置密码
# 创建账号
mysql> create user 'eva'@'192.168.10.%' IDENTIFIED BY '123';# 指示网段
mysql> create user 'eva'@'192.168.10.5' # 指示某机器可以连接
mysql> create user 'eva'@'%' #指示所有机器都可以连接
mysql> show grants for 'eva'@'192.168.10.5';查看某个用户的权限
# 远程登陆
$ mysql -uroot -p123 -h 192.168.10.3
# 给账号授权
mysql> grant all on *.* to 'eva'@'%';
mysql> flush privileges; # 刷新使授权立即生效
# 创建账号并授权
mysql> grant all on *.* to 'eva'@'%' identified by '123'
2. 库、表、记录的增删改查
1. 操作文件夹(库)
增:create database db1 charset utf8;
查:show databases;
select database() # 查看当前库
删除: drop database db1;
2. 操作文件(表)
先切换到文件夹下:use db1
增:create table t1(字段 数据类型(宽度) 约束);
ALTER TABLE 表名 ADD 属性名 属性类型; # 增加属性
查:show tables; # 查看当前库中有多少张表
desc userinfo(表的名字) # 查看表的结构
show create table userinfo(表的名字)# 查看表的详细结构
改:alter table t1 modify name char(3); # 将name属性的长度改为3 也可以用first和after
alter table t1 change name name1 char(2); # 将name属性改为name1,长度改为2 也可以用first和after
alter table 表名 rename 新名字
alter table 表名 add 新字段 类型 约束 # 默认出入到最后一列
add 新字段 类型 约束 after id # 插入到id后面
add 新字段 类型 约束 first # 在第一个位置插入该属性
删:drop table t1(表名);
alter table t1(表名) drop 字段名; # drop在表名和字段名之间
3. 操作文件中的内容(记录)
增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
insert into 表名(name,gender) values ('alex','female'); # id为自动增加
# 数据的插入操作
# insert into class3 select * from class;
# insert into class3(id,name) select id,cname from class;
查:select *(字段) from t1;
改:update t1 set name='sb' where id=2;
update t1 set name='ss',id=3 where id=1; # 可以一次修改国歌数值
删:delete from t1 where id=1;
清空表:
delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
truncate table t1;数据量大,删除速度比上一条快,且直接从零开始,
*auto_increment 表示:自增
*primary key 表示:约束(不能重复且不能为空);加速查找
返回顶部