Mysql数据库管理

SQL语句概述

SQL语言

● Structured Query Language的缩写,即结构化查询语言
● 关系型数据库的标准语言
● 用于维护管理数据库
◆ 包括数据查询、数据更新、访问控制、对象管理等功能

SQL分类

● DDL (Data Definition Language, 数据定义语言) :用来建立数据库、数据库对象和定义字段,如CREATE、ALTER、DROP
● DML (Data Manipulation Language, 数据操纵语言) :用来插入、删除和修改数据库中的数据,如INSERT、UPDATE、DELETE
● DQL (Data Query Language, 数据查询语言) :用来查询数据库中的数据,如SELECT
● DCL (Data Control Language, 数据控制语言) :用来控制数据库组件的存取许可、存取权限等,如COMMIT、ROLLBACK、 GRANT、 REVOKE

DDL

创建新的数据库

mysql >CREATE DATABASE auth;

■ 例:

mysql> CREATE DATABASE zz;

在这里插入图片描述

创建新的表

CREATE TABLE 表名 (字段 1 名称类型,字段 2 名称类型,…,PRIMARY KEY (主键名) ) #主键:要求字段里的每个值都是唯一的,意义是快速查找实体的标签
■ 例1:

mysql> use zz;   # 使用数据库
mysql> create table uu(user_name char(64) not null primary key,usr_passwd varchar(64)default' ');

在这里插入图片描述

mysql> describe uu;      # 查看表

在这里插入图片描述
■ 例2:

mysql> create table ko(id int(10) auto_increment primary key,age int(3) not null,name varchar(128) not null,score decimal(5));
mysql> desc ko;  

在这里插入图片描述

修改表结构

新增

mysql> alter table ko add column zzz int(3);    #新增一个为zzz的列
mysql> desc ko;

在这里插入图片描述
删除

mysql> alter table ko drop column zzz;  #删除一个zzz的列
mysql> desc ko;    

在这里插入图片描述

删除一个数据表

mysql>DROP TABLE auth. users;

■ 例:

mysql> drop table zz.users;    #删除zz数据库下的users表    
mysql> show tables;

在这里插入图片描述

删除一个数据库

mysql>DROP DATABASE  auth;

■ 例:

mysql> drop database abc;
mysql> show databases;

在这里插入图片描述

克隆表

方法一:

mysql> create table uu2 like uu;
mysql> desc uu2;
mysql> show tables;

在这里插入图片描述
方法二:

mysql> show create table cj1\G

例:

mysql> show create table uu\G

在这里插入图片描述
在这里插入图片描述

DML

插入数据记录

INSERT INTO 表名 (字段 1,字段 2, … )VALUES(字段1的值,字段2的值,…)

mysql>use auth;
mysql> INSERT INTO users (user_name, user_passwd)  VALUES(' zhangsan',PASSWORD (' 123456' ));或mysql>INSERT INTO users VALUES('lisi', PASSWORD(' 654321' )) ;

方法一

mysql> insert into uaa(user_name,user_passwd) values('lisi','123456');
mysql> select * from uaa;

在这里插入图片描述
方法二

mysql> insert into uaa values('lilei',PASSWORD('123123'));
mysql> select * from users;

在这里插入图片描述

插入多个数据记录

mysql> insert into ko(age,name,score,addr) values(17,'zhangsan',60,101),(19,'lilei',75,102),(18,'wanghao',86,103),(17,'zhaozhao',99,104),(18,'liuli',50,105);
mysql> select * from ko;

在这里插入图片描述
mysql> desc ko;在这里插入图片描述

修改数据记录

UPDATE 表名 SET 字段名 1=字段值 1[,字段名 2=字段值 2] WHERE 条件表达式

mysql>UPDATE auth. users SET user_passwd=PASSWORD('') WHERE user_name='lisi' ;
mysql>SELECT * FROM auth. users;

例:

mysql> update ko set age=18 where name='zhangsan';     # 必须跟条件where,不然会全部被修改
mysql> select age from ko;    #差看age字段

在这里插入图片描述
■ 删除数据库记录
DELETE FROM表名WHERE条件表达式

方法一:
mysql>DELETE  FROM auth. users WHERE user_name='lisi' ;
mysql>SELECT * FROM auth. users;

例:

mysql> delete from cj1 where name='zhangsan';
mysql> select * from ko;

在这里插入图片描述

DQL

查询数据记录

SELECT 字段名 1, 字段名 2,… FROM 表名 WHERE 条件表达式

mysql>select * from auth. users;
mysql>SELECT user_name, user_passwd  FROM auth. users WHERE user_name=' zhangsan'

例:

mysql> select name from ko;             #查询表中的一个字段
mysql> select name,age from ko;         #查询表中的两个字段

在这里插入图片描述

DCL

授予权限

GRANT权限列表 ON 数据库名.表名T0 用户名@来源地址[ IDENTIFIED BY ’密码’ ]

mysql>GRANT select ON auth. * T0’ xiaoqi '@' localhost' IDENTIFIED BY '123456' ;
[root@ZZZ~] # mysql -u xiaoqi -p
mysql>SELECT * FROM auth. users;   #验证授权的访问操作;
mysql>SELECT * FROM mysql. user;   #验证非授权的访问操作
mysql>CREATE  DATABASE bdqn;
mysql>GRANT all privileges ON bdqn. * T0 'dbuser' @  '192. 168.4. 19' IDENTIFIED BY 'pwd@123' ;

例:
授予用户wanghao本地查看所有库所有表权限

[root@server1 ~]# mysql -uroot -p123456
mysql> grant select on *.* to 'wanghao'@'localhost' identified by '123456';

在这里插入图片描述

mysql> flush privileges;   #刷新权限,授予权限后一般要刷新

查看权限

SHOW GRANTS FOR用户名@来源地址

mysql>SHOW GRANTS FOR 'dbuser' @ '192. 168.4. 19' ;

例:

mysql> exit
[root@mysql1 ~]# mysql -uwanghao -p123456
mysql> show grants for 'root'@'localhost';

在这里插入图片描述
■ 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址

mysql>REVOKE all privileges ON auth. * FROM  'xiaoqi' @  'localhost' ;
mysql>SH0W GRANTS FOR  'xiaoqi' @ 'localhost' ;   #确认已撤销对auth库的权限

例:

撤销wanghao的查看权限
mysql> revoke select on *.* from 'wanghao'@'localhost';
mysql> flush privileges;                     #刷新权限
mysql> show grants for 'wanghao'@'localhost';    #查看wanghao的本地权限

在这里插入图片描述

查看数据库结构

查看数据库信息

SHOW DATABASES

char与varchar区别

char的长度是不可变的,而varchar的长度是可变的
● 字段b:类型char(10),值为: abc,存储为: abc (abc+7个空格)
● 字段d:类型varchar(10),值为: abc,存储为: abc(自动变为3个的长度)
超出长度自动截取
● 字段c:类型char(3), 值为: abcdefg,存储为: abc (defg自动删除)
● 字段e:类型varchar(3),值为: abcdefg,存储为: abc (defg自动删除)
varchar(10)和char(10),都表示可存10个字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放10个
char最多可以存放255个字符,varchar的最大长度为65535个字节,varchar可存放的字符数跟编码有关
● 字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766个字符
● 字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845个字符
注:
● 一个汉字占多少长度与编码有关;
● UTF-8:一个汉字=3个字节
● GBK:一个汉字=2个字节nn

修改默认存储引擎

查看存储引擎

mysql> show engines;      

修改默认存储引擎

mysql> alter table user_info engine=MyISAM;
vim my.cnf
         default-storage-engine=InnoDB
mysql> create table engineTest(id int) engine=MyISAM;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值