MySQL数据库基础学习(SQL语句)

(本文章只是充作本人学习笔记,如有侵权,请告知,将立即删除。如因此给版权人带来困扰,在此致以诚挚的歉意)
(另:对网上提供免费的学习资源的人和义务帮助解决问题的人以及对我谆谆教导的所有人表示感谢!!!!)

学习视频: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


  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值