数据库的基本概念

数据库

数据库由表集合组成,它是以一定的组织方式存储的相互有关的数据集合。

表:记录:行,字段(属性):列,以行+列的形式就组成了表(数据存储在表中)。
关系数据库的表由记录组成,记录由字段组成,字段由字符或数字组成。它可以供各种用户共享,具有最小冗余度和较高的数据独立性,它是统一管理的相关数据的集合。

数据库工作模式

数据库的基本概念_第1张图片

 接收应用程序的数据请求和处理请求——》将用户的高级语言转换为低级语言,实现对数据库的操作——》从数据库的操作中接受查询结果——》对查询结果进行处理 (格式转换)将低级语言转换为高级语言——》将处理结果返回给用户

数据库管理

查看数据库信息        show databases
查看数据库中的表信息   show tables     
use 数据库名  切换到数据库中
show tables   show tables in mysql
显示数据表的结构 (字段 )      describe user;
Field:字段名称
type: 数据类型
Null :是否允许为空
Key :主键
Type:数据类型
Null :是否允许为空
key :主键
Default :默认值
Extra :扩展属性,例如:标志符列 (标识了种子,增量/步长) 1 2
id: 1 3 5 7

常用的数据类型

int:整型,用于定义整数类型的数据
float:单精度浮点4字节32位
double:双精度浮点8字节64位
char:固定长度的字符类型,用于定义字符类型数据。
varchar:可变长度的字符类型		
text:文本
image:图片
decimal(5,2):5个有效长度数字,小数点后面有2位,指定长度数组。

注:Char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错。
主键是唯一的,但主键可以由多个字段构成。

相关命令

创建表

进入数据库   mysql -u root -p
查看数据库   show databases;
查看表      show tables;
进入数据库   use 库名
创建数据库    create database 数据库名;
创建表       create table  表名 (字段1 数据类型,字段2 数据类型[,...][,primary key(主键名));
例: create table class (id int not noll,name char(10) not null,score decimal(5,2),passwd char(48) default'', primary key (id));

删除表

drop database  删除数据库
drop table   删除表

清空数据

全部清空   turncate table ky;
选择性清空   delete from ky where level >=45;

创建、修改、更新数据表中的数据记录

创建数据 insert into class valuse(1,'zhangsan',90.5,123);
修改数据 update zzz set passwd=PASSWORD('') where  name='zhangsan';
        update zzz set name='wangxiaoer',passwd=''where id=3;
查看数据 select * from class;

修改表的结构

添加表的字段  alter table 表名 add 字段1 数据类型
修改表的字段  alter 表名 change 旧列名 新列名 数据类型
删除表的字段  alter 表名 drop  字段

查询数据

select * from 表名; 可加where
select 字段1,字段2...  from 表名; 可加where
只显示前2行       select * from 表名 limit 2;
显示第2行后的前3行 select * from 表名 limit 2,3;
查看表的结构      show create table ky30

创建临时表

MySQL 的临时表,顾名思义,就是临时建立的表,并不会长期存在,主要用于保存一 些临时数据。临时表有个特性,就是只在当前连接可见,当前连接下可执行增删改查等操作, 当连接被关闭后,临时表就会被 MySQL 删除,相关的资源也会被释放。

示例:
create temporary table xxx (
id int(4) zerofill primary key auto_ increment,
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));
insert into xxx values (1,'zhangsan',123456,'running') ;
select * from test03;
show tables;
quit
select * from test03;

复制,克隆表

create table yyy2 like yyy;            复制,复制yyy表结构生成yyy2表
insert into yyy2 select * from yyy;    备份数据内容

create table yyy2 (select * from yyy); 复制test 表数据到test02中

数据库用户授权

如需全部可将数据库名改为(*)。

赋予本地权限
grant 权限列表 on 数据库名.表名 to '用户名'@'来源地址' [identified by '密码'];

赋予外部连接权限
grant all privileges on 数据库名.* to 'taotao'@'%' identified by '123456';
允许用户lisi在所有终端远程连接mysql,并拥有所有权限。

flush privileges;    #刷新权限

撤销权限  
revoke 权限列表 on 数据库.表名 from '用户名'@'来源地址'  

查看用户当前权限
show grant for '用户名'@'来源地址'

你可能感兴趣的:(数据库)