MySQL数据库基础知识点总结

一.一些常用的数据库dos命令
SHOW  DATABASES//查看都有哪些数据库
CREATE  DATABASE 数据库名//创建数据库
DROP  DATABASE 数据库名//删除数据库
USE 数据库名//切换数据库
数据库的名称是不能修改的。(不能直接修改)


SQL查询语句:
SELECT * FROM lc_course


二.SQL语句分类:
DDL(Data Definition Language)数据定义
CREATE:在数据库中创建对象
ALTER:修改数据库表结构
DROP:删除对象
RENAME:重命名对象
DML(Data Manipulation Language)数据操纵
SELECT:从数据库中获取数据
INSERT:向一个表格中插入数据
UPDATE:更新一个表格中的已有数据
DELETE:删除表格中的数据
DCL(Data Control Language)数据控制
GRANT:赋予一个用户对数据库或数据表格等指定权限
REVOKE:删除一个用户对数据库或数据表等的指定权限
TCL(Transaction Control)事务控制
COMMIT:保存数据操作
SAVEPOINT:为方便rollback标记一个事务点

ROLLBACK:从最后一次COMMIT中恢复到提交前状态


三.数据库管理:
1.CREATE DATABASE 数据库名
2.DROP DATABASE 数据库名
3.RENAME DATABASE 原数据库名 TO 新数据库名(只在一个版本中有,后来该命令不能使用,官方并没有供直接重命名的命令,所以数据库是不能直接重命名的)
注意:数据表的每一列是一个属性,每一行是一条记录。
每一列(属性)一特定的数据类型保存。
4.mysql中常见的数据类型有:
Integer(size)或Int(size):存储整数数据
Number(Decimal):存储实型和整型
Char(size):存储固定长度字符串
Varchar(size):存储可变长度字符串
5.创建表格:
CREATE TABLE 表名称
{
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
...
};
例如:创建一个表格course保存课程信息,需要保存课程名称、课程长度、课程讲师和课程分类。
CREATE TABLE course{
id int,
course_name varchar(100),
course_length int,
teacher varchar(50),
category varchar(100)

};


6.DESCRIBE course;或者DESC course;查看表
DROP course;删除表
7.修改表:
重命名表名:
ALTER TABLE course RENAME course1;
向表中添加一列:
ALTER TABLE course ADD link varchar(100);
删除表中的一列
ALTER TABLE course DROP COLUMN link;
修改一个列的数据类型:
ALTER TABLE course MODIFY teacher varchar(100);
重命名一个列:
ALTER TABLE course CHANGE COLUMN teacher(原名字) lecture(新名字) varchar(100);
8.向表格中插入数据
向表格中插入一条记录:
INSERT INTO 表名称 VALUES(值1,值2,...);(表的属性都需要插入)

INSERT INTO 表名称(列1,列2) VALUES(值1,值2);(可以只插入部分属性)
例:INSERT INTO course(1,'install Linux','nash_su','Basic');


9.查询数据
从表格中查询一条记录:
SELECT * FROM course;

SELECT course_name,lecture FROM course;

从表格中按条件查询一条记录:
SELECT 列名称 FROM 表名 WHERE 列 运算符 值;

按名称:
SELECT * FROM course WHERE course_name='GNOME';
按课程时长:
SELECT * FROM course WHERE course_length>10;

10.删除一条记录:
DELETE FROM 表名称 WHERE 列 运算符 值;
或:
DELETE * FROM 表名称
例:DELETE FROM course WHERE id=1;

11.更新一条记录:
UPDATE 表名称 SET 列名称=新值 WHERE 列=值;
例:UPDATE course SET lecture=‘Lee’ WHERE id=3;

12.SQL-Distinct
返回结果删除重复项:
SELECT DISTINCT 列名称 FROM 表名称;
例:SELECT DISTINCT lecture FROM course;
13.SQL-AND&OR
WHERE条件中使用逻辑组合:
SELECT * FROM 表名称 WHERE 条件1 AND 条件2;
SELECT * FROM 表名称 WHERE 条件1 OR 条件2;

例:SELECT * FROM course WHERE lecture='nash_su' AND category='Adv';
14.SQL-对结果进行排序
对查询结果按指定列进行排序:
SELECT * FROM 表名称 ORDER BY 列名称;
SELECT * FROM 表名称 ORDER BY 列名称 DESC;
例:SELECT * FROM course ORDER BY course_length;(从小到大排序)
SELECT * FROM course ORDER BY course_length DESC;(使用倒序进行排序)
四.MySQL用户
MySQL数据库默认只有一个root用户
MySQL将用户信息保存在mysql数据库user表中

1.创建一个新的用户:
CREATE USER 用户名 IDENTIFIED BY '密码';
例:CREATE USER nash_su IDENTIFIED BY 'linuxcast.net';
注意:新用户创建后是不能登录的,因为没有设置权限。
2.删除用户
DROP USER 用户名:
例: DROP USER nash_su;
重命名用户名:
RENAME USER 原用户名 TO 新用户名;
3.修改当前用户密码:
SET PASSWORD=PASSWORD('新密码');
修改指定用户密码:
SET PASSWORD FOR 用户名=PASSWORD('新密码');
五.MySQL权限系统
MySQL权限系统控制一个用户是否能进行连接,以及连接后能够针对哪些对象进行什么操作。
MySQL权限控制包含两个阶段:
1.检查用户是否能够连接
2.检查用户是否具有所执行动作的权限。
MySQL权限层级:
MySQL授予权限可分为以下几个层级:
1.全局层级
2.数据库层级
3.表层级
4.列层级
5.子程序层级


六.MySQL授权命令
1.MySQL通过GRANT授予权限,REVOKE撤销权限。
授予一个用户权限:
GRANT ALL PRIVILEGES ON 层级 to 用户名@主机 IDENTIFIED BY 密码;
例:授予nash_su用户全局级全部权限。(*.*前一个*表示所有数据库,后一个*表示数据库中的所有表)
GRANT ALL PRIVILEGES ON *.* to 'nash_su'@'%' IDENTIFIED BY 'linuxcast';
授予nash_su用户针对linuxcast数据库全部权限。
GRANT ALL PRIVILEGES ON linuxcast.* to 'nash_su'@'%' IDENTIFIED BY 
'linuxcast';
2.撤销一个用户权限:
REVOKE ALL PRIVILEGES FROM 用户名;
例:撤销nash_su用户的全部权限。
REVOKE ALL PRIVILEGES FROM nash_su;

七.MySQL连接认证
当连接MySQL服务时,MySQL通过用户名密码和主机信息验证是否允许连接。
GRANT ALL PRIVILEGES ON *.* to 'nash_su'@'%' IDENTIFIED BY 'linuxcast';
这里的主机是指允许从哪些主机进行连接,可以使用如下形式:
1.所有主机:'%'

MySQL备份恢复:
MySQL使用最为广泛的备份恢复工具是mysqldump
备份一个指定数据库:
mysqldump -u root -p 数据库名称 > 备份文件.sql
例:mysqldump -u root -p linuxcast>linuxcast_db.sql
mysqldump备份出来的是纯文本的SQL文件,可以修改后作为其他数据库数据使用。
MySQL备份恢复:
从备份的SQL文件恢复一个指定数据库:
mysql -u root -p 数据库名称 < 备份文件.sql
例:mysql -u root -p linuxcast < linuxcast_db.sql


八.数据库编码
数据库使用一个特定编码保存数据,如GB2312、UTF-8等不同语言一般使用不同编码保存。
编码主要影响两个方面:
1.数据库保存相同的内容所占用的空间大小。

2.数据库与客户端通信


可以通过SHOW CHARACTER SET;查看MySQL支持的编码:
MySQL默认使用的编码:latin1
查看MySQL当前使用的编码:
SHOW VARIABLES LIKE 'character_set%'
SHOW VARIABLES LIKE 'collation%'
指定数据库使用的编码:
创建数据库的时候可以使用以下命令指定编码:
CREATE DATABASE linuxcast
DEFAULT CHARACTER SET utf8;
DEFAULT COLLATE utf8_general_cl;
也可以通过以下命令修改一个数据库的编码:
ALTER DATABASE linuxcast CHARACTER SET utf8 COLLATE utf8_general_cl;
  • 11
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值