(本文章只是充作本人学习笔记,如有侵权,请告知,将立即删除。如因此给版权人带来困扰,在此致以诚挚的歉意)
(另:对网上提供免费的学习资源的人和义务帮助我解决问题的人以及对我谆谆教导的所有人表示感谢!!!!)
学习视频:MySQL数据库零基础入门视频课程【苏勇老师】(来源:51CTO学院)
SQL语言基础:
SQL (Structured Query Language) 结构化查询语言
SQL是一种ANSI标准计算机语言,设计用来访问、操作数据库系统。
SQL语言的作用:
面向数据库执行查询
从数据库取回数据
在数据库中插入新的数据
更新数据库中的数据
从数据库中删除数据
创建新的数据库
在数据库中创建新的表
在数据库中创建存储过程
在数据库中创建视图
设置表、存储过程和视图的权限
数据在数据库中使用表格形式保存,表格每一列是一个属性,每一行是一条记录。使用SQL语句从表中获取信息。如Select
* from 表名
SQL语句分类:
DDL(Data Definition Language)数据定义语言(用来定义数据库结构)
DML(Data Manipulation Language)数据库维护语言(用来操作数据库内容)
DCL(Data Control Language)数据控制语言(控制数据库权限)
TCL(Transaction Control)事物控制
数据库管理:
Create Database 数据库名 ---------创建数据库
Drop Database 数据库名 -----------删除数据库
Rename Database 数据库名 to 数据库名 无法使用
MySQL常见的数据类型详见博客文章
语句罗列:
(注:语句以分号结束,这里的分号为中文分号,为了醒目)
对表进行操作:
MySQL建表语句:
CREATE TABLE 表名
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
。
。
。
)
MySQL查看表结构语句:
DESCRIBE 表名;(DESC 表名)
MySQL删除表语句:
DROP TABLE 表名;
重命名表名:
ALTER TABLE 表名 RENAME 表名;
向表中添加一列:
ALTER TABLE 表名 ADD 列名称 数据类型;
删除表中一列:
ALTER TABLE 表名 DROP COLUMN 列名称;
修改一个列的数据类型:
ALTER TABLE 表名 MODIFY 列名称 数据类型;
重命名一个列:
ALTER TABLE 表名 CHANGE COLUMN 原列名 新列名 数据类型;
对表中数据进行操作:
向表中插入一条记录:
INSERT INTO 表名称 VALUES (值1,值2,....... ); / / 插入全部属性
INSERT INTO 表名称 (列1,列2) VALUES (值1,值2); / / 插入指定属性 列1属性和列2属性
SQL查询数据:
SELECT 列名称1,列名称2,列名称3................ FROM 表名称; / / 查询指定列的数据
SELECT * FROM 表名称;
SQL按条件查询数据:
SELECT 列名称 FROM 表名 WHERE 列 运算符值;
(例:
SELECT * FROM course WHERE course_name = 'GNOME' ; / / 按名称
SELECT * FROM course WHERE course_length > 10;
)
补充:Where支持的运算符:
删除一条记录:
DELETE FROM 表名称 WHERE 列 运算符值; / / 选择删
或
DELETE * FROM 表名称 / / 全删
更新一条记录:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列 = 值; (解释:将 ”列 = 值 “这一个数据 的”列名称 = 新值“)
MySQL 扩展:
返回结果删除重复项:
SELECT DISTINCT 列名称 FROM 表名称; (解释:查询 为该列名称的列的所有数据,并将重复项合并)
在WHERE 条件中使用逻辑组合:
SELECT * FROM 表名称 WHERE 条件1 AND 条件2;
SELECT * FROM 表名称 WHERE 条件1 OR 条件2;
对结果进行排序:
SELECT * FROM 表名称 ORDER BY 列名称; / / 基于某一列进行排序 从小到大
SELECT * FROM 表名称 ORDER BY 列名称 DESC; / / 基于某一列进行排序 从大到小
MySQL用户:
创建一个新用户:CREATE USER 用户名 IDENTIFIED BY '密码';
删除用户: DROP USER 用户名;
重命名用户名:RENAME USER 原用户名 TO 新用户名;
修改当前用户密码:SET PASSWORD = PASSWORD('新密码');
修改指定用户密码: SET PASSWORD FOR 用户名 = PASSWORD('新密码');
(创建用户后,需设置权限方能登陆)
MySQL权限系统:
权限控制包含两个阶段:
1、检查用户是否能够连接
2、检查用户是否具有执行动作的权限
分为以下几个层级:
1、全局层级
2、数据库层级
3、表层级
4、列层级
5、子程序层级
通过GRANT授予权限,REVOKE撤销权限
授予一个用户权限:
GRANT ALL PRIVILEGES ON 层级 to 用户名@主机 IDENTIFIED BY 密码;
例:授予nash_su用户全局级全部权限。
CRANT ALL PRIVILEGS ON *. * to 'nash_su ' @ '%'
IDENTIFIED BY 'linuxcast'; / / *.*代表全局级的授权 %代表主机
授予nash_su用户针对linuxcast数据库全部权限。
CRANT ALL PRIVILEGS ON linuxcast * to 'nash_su' @ '%'
IDENTIFIED BY 'linuxcast';
撤销一个用户权限:
REVOKE ALL PRIVILEGES FROM 用户名;
MySQL连接认证:当连接MySQL服务时,MySQL通过用户名密码和主机信息验证是否允许连接
主机是指允许从哪些主机进行连接,可以使用的形式:
1、所有主机:”%“
2、精确的主机名或IP地址:www.linuxcast.net 或 192.168.1.1
3、使用”*“通配符:*.linuxcast.net
4、指定一个网段:192.168.1.0/255.255.255.0
MySQL简单的备份恢复:
工具:mysqldump
备份一个指定数据库:
mysqldump -u root -p 数据库名称 > 备份文件.sql
备份恢复:
mysql -u root -p 数据库名称 < 备份文件.sql
MySQL设置数据库编码:
数据库使用一个特定的编码保存数据,如latin、Big5、GB2312、UTF8等,不同语言一般使用不同编码保存
编码主要影响两个方面:
1、数据库保存相同内容所占用的空间大小
2、数据库与客户端通信
MySQL数据库默认编码是:
character set : latin1
collation : latin1_swedish_ci
通过以下命令查看MySQL支持的编码:SHOW CHARACTER SET;
查看MySQL当前使用的编码:
SHOW VARIABLES LIKE 'character_set%'
SHOW VARIABLES LIKE 'collation%'
指定数据库使用的编码:
CREATE DATABASE linuxcast
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
修改数据库的编码:
ALTER DATABASE linuxcast CHARACTER SET utf8 COLLATE utf8_general_ci;
修改MySQL默认编码;
通过修改MySQL配置文件my.cnf设置MySQL默认编码
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8