mysql数据库管理
SQL语句概述
SQL语言
Structured Query Language的缩写,即结构化查询语言关系型数据库的标准语言
用于维护管理数据库:包括数据查询、数据更新、访问控制、对象管理等功能
SQL分类与MYSQL(结构化查询语言)分类:数据库语言
DDL:数据定义语言 用来建立数据库,数据库对象和定义字段,如CREATE、ALTER、DROP
DML:数据操纵语言 用来插入、删除和修改数据库中的数据,如INSERT、UPDATE、DELETE
DQL:数据查询语言 用来查询数据库中的数据,如SELECT
DCL:数据控制语言 用来控制数据库组件的存取许可、存取权限等,如AMMIT、ROLLBACK、GRANT、REVOKE
管理数据库和表
定义数据库(DDL语句)
创建数据库
create database a; #a是数据库名
创建新的表
use a; #进入数据库
acreate table b (字段1名称 字段1类型 字段1约束,字段2名称 字段2类型 字段2约束....)
desc b; #查看表b
show databses; #查看数据库
show tables; #查看数据库中的表
字段的名称
属性名称,是自定义的
字段的类型
int(4):整型 代表0000–9999
double 浮点型
decimal (5,2) 有效数字是5位,小数点后保留2位
float 单精度浮点4字节
char (10) 固定长度字符串,不足的用空格补齐,超过的截掉超过的部分
varchar (10) 可变长字符串,不足的自动适应长度,超过的截掉
char最多可存放255个字符,
varchar最大长度为65535个字节,varchar存放的字符数跟编码有关
字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766个字符
字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845个字符
一个汉字占多少字节与编码有关UTF-8:一个汉字为3个字节GBK:一个汉字为2个字节
字段的约束
非空约束not null:内容不允许为空
主键约束primary key:非空且唯一 标识
默认约束default:假如没有填数据,默认预先设定的值填写 default ‘未知’
自增特性auto_increment:id 1 2 3 4(自动增长)
在表中插入字段
alter table b add column height int(3);
删除数据库和表
drop table 库名.表名; #删除某个数据库中的某个表
drop database 库名; #删除某个数据库
管理表中的数据(DML语句)
向表中插入新的数据
use a; #使用数据库a
insert into 表名 (字段1,字段2,...) value (字段1的值,字段2的值,...),(字段1的值,字段2的值,...)....
修改更新表中的数据
update 表名 set 字段2=修改后的值,字段3=修改后的值 where 字段1='原来的值';#修改字段1的值为**的数据,将其字段2和3的值修改
在数据库中删除指定的数据记录
delete from 库名.表名 where 字段1='值'; #删除某库里的某表中字段1为值得数据
清空表
truncate table 库名.表名;
数据库得高级操作
临时表
临时建立得表,用于保存一些临时数据,不会长期存在
create temporary table pphh(id int(4) not null auto_increment, name varchar(32) character set utf8 collate utf8_bin not null, level int(10) not null, primary key(id))engine=innodb default charset=utf8; #创建临时表pphh
insert into pphh(id,name,level) values(22,'zhangsan',10),(23,'lisi',20); #向临时表里插入数据
克隆表
从b表完整复制结构生成c表
create table c like b;
克隆b表生成d表
show create table a\G;
复制下面内容
粘贴好以后,将表名改为d,确认
导入数据
insert into c select * from b;
数据库用户授权(DCL)
DCL语句设置用户权限(若用户不存在,则新建用户)
设置登录密码为123123的ph用户,可以从任意终端登录,对所有库和所有表有全部权限
create user 'ph'@'%' identified by '123123'; #创建密码为123123得用户ph
grant all on *.* to 'ph'@'%' identified by '123123'; #赋予所有权限
select user,host from mysql.user; #查看
设置登录密码为123123的hp用户,可以从本地终端登录,对a库中的b表有select权限
create user 'hp'@'%' identified by '123123';
grant select on a.b to 'hp'@'%' identified by '123123';
查看用户权限
查看当前用户权限
show grants;
查看从%登录的ph用户的权限
show grants for 'ph'@'%';
撤销用户的权限
revoke select on mysql.user from 'ph'@'%';
查看当前系统中的用户
select user from mysql.user;