zoukankan      html  css  js  c++  java
  • MySQL入门教程

    MySQL入门教程

    听说学了之后工资能涨1k,我还是孩子不要骗我,lolllll...不相信就试试。。。
    1、MySQL的相关概念介绍
    MySQL为关系型数据库(Relational Database Management System),这种所谓的"关系型"可以理解为"表格"的概念,一个关系型数据库由一个或数个表格组成,如图所示的一个表格:


    表头(header): 每一列的名称;
    列(row): 具有相同数据类型的数据的集合;
    行(col): 每一行用来描述某个人/物的具体信息;
    值(value): 行的具体信息,每个值必须与该列的数据类型相同;
    键(key): 表中用来识别某个特定的人/物的方法,键的值在当前列中具有唯一性。

    2、Windows下MySQL的配置

    配置步骤:
    1. 将下载的mysql-noinstall-5.1.69-win32.zip解压至需要安装的位置,如: C:Program Files;
    2. 在安装文件夹下找到my-small.ini配置文件,将其重命名为my.ini,打开进行编辑,在[client]与[mysqld]下均添加一行: default-character-set=gbk
    3. 打开Windows环境变量设置,新建变量名MYSQL_HOME,变量值为MySQL安装目录路径,这里为C:Program Filesmysql-5.1.69-win32
    4. 在环境变量的Path变量中添加 ;%MYSQL_HOME%in;
    5. 安装MySQL服务,打开Windows命令提示符,执行命令:mysqld --install MySQL --defaults-file="my.ini"提示"Service successfully installed."表示成功;


    3、MySQL服务的启动、停止与卸载
    在Windows命令提示符下运行:
    启动: net start MySQL
    停止: net stop MySQL
    卸载: sc delete MySQL

    4、MySQL脚本的基本组成

    与常规的脚本语言类似,MySQL也具有一套对字符、单词以及特殊符号的使用规定,MySQL通过执行SQL脚本来完成对数据库的操作,该脚本由一条或多条MySQL语句(SQL语句 + 扩展语句)组成,保存时脚本文件后缀名一般为.sql。在控制台下,MySQL客户端也可以对语句进行单句的执行而不用保存为.sql文件。
    标识符
    标识符用来命名一些对象,如数据库、表、列、变量等,以便在脚本中的其他地方引用。MySQL标识符命名规则稍微有点繁琐,这里我们使用万能命名规则: 标识符由字母、数字或下划线组成,且第一个字符必须是字母或下划线。
    对于标识符是否区分大小写取决于当前的操作系统,Windows下是不敏感的,但对于大多数linuxunix系统来说,这些标识符大小写是敏感的。
    5、关键字:
    MySQL的关键字众多,这里不一一列出,在学习中学习。这些关键字有自己特定的含义,尽量避免作为标识符。
    6、语句:
    MySQL语句是组成MySQL脚本的基本单位,每条语句能完成特定的操作,它是由SQL标准语句 + MySQL扩展语句组成。
    7、函数:
    MySQL函数用来实现数据库操作的一些高级功能,这些函数大致分为以下几类: 字符串函数、数学函数、日期时间函数、搜索函数、加密函数、信息函数。
    8、MySQL中的数据类型
    MySQL有三大类数据类型,分别为数字、日期时间、字符串,这三大类中又更细致的划分了许多子类型:
    数字类型
    1)整数: tinyint、smallint、mediumint、int、bigint

    2)日期和时间
    date、time、datetime、timestamp、year

    3)字符串类型
    字符串: 
    char: 1~255个字符的定长串,它的长度必须在创建时指定,否则MySQL假定为CHAR(1)
    Varchar: 可变长度,最多不超过255字节,如在创建时指定VARCHAR(n),则可存储0~n个字符的变长串
    文本: 
    Tinytext: 同TEXT,最大长度为255字节
    Text: 最大长度为64K的变长文本
    mediumtext: 同TEXT,最大长度为16K
    longtext: 同Text,最大长度为4GB
    二进制(可用来存储图片、音乐等): 
    Tinyblob: 最大长度为255字节
    Blob: 最大长度为64KB
    Mediumblob: 最大长度为16MB
    Longblob: 最大长度为4GB
    9、使用MySQL数据库

    登录到MySQL
    当MySQL服务已经运行时,我们可以通过MySQL自带的客户端工具登录到MySQL数据库中,首先打开命令提示符,输入以下格式的命名:mysql -h 主机名 -u 用户名 -p
    -h : 该命令用于指定客户端所要登录的MySQL主机名,登录当前机器该参数可以省略;
    -u : 所要登录的用户名;
    -p : 告诉服务器将会使用一个密码来登录,如果所要登录的用户名密码为空,可以忽略此选项
    以登录刚刚安装在本机的MySQL数据库为例,在命令行下输入mysql -u root -p按回车确认,如果安装正确且MySQL正在运行,会得到以下响应:Enter password:若密码存在,输入密码登录,不存在则直接按回车登录,按照本文中的安装方法,默认root账号是无密码的。登录成功后你将会看到Welecome to the MySQL monitor... 的提示语。
    然后命令提示符会一直以mysql> 加一个闪烁的光标等待命令的输入,输入exit或quit 退出登录。

    10、创建一个数据库
    使用create database语句可完成对数据库的创建,创建命令的格式如下:
    create database 数据库名 [其他选项];
    例如我们需要创建一个名为samp_db的数据库,在命令行下执行以下命令:
    create database samp_db character set gbk;
    为了便于在命令提示符下显示中文,在创建时通过character set gbk将数据库字符编码指定为gbk。创建成功时会得到Query OK,1 row affected(0.02 sec)的响应。
    注意: MySQL语句以分号(;)作为语句的结束,若在语句结尾不添加分号时,命令提示符会以 -> 提示你继续输入(有个别特例,但加分号是一定不会错的);
    提示: 可以使用show databases; 命令查看已经创建了哪些数据库。
    11、选择所要操作的数据库
    要对一个数据库进行操作,必须先选择该数据库,否则会提示错误:
    ERROR 1046(3D000): No database selected
    两种方式对数据库进行使用的选择:
    1. 在登录数据库时指定,命令: mysql -D 所选择的数据库名 -h 主机名 -u 用户名 -p
    例如登录时选择刚刚创建的数据库: mysql -D samp_db -u root -p
    2. 在登录后使用use语句指定,命令: use 数据库名;
    use语句可以不加分号,执行use samp_db来选择刚刚创建的数据库,选择成功后会提示: Database changed
    创建数据库表
    使用create table语句可完成对表的创建,create table的常见形式:
    create table 表名称(列声明);
    以创建students表为例,表中将存放学号(id)、姓名(name)、性别(sex)、年龄(age)、联系电话(tel)这些内容:
    create table students
    ( id int auto_increment primary key,
    name varchar(8) not null,
    sex varchar(4) not null,
    birthday date not null,
    tel varchar(13) null default "-"
    );
    对于一些较长的语句在命令提示符下可能容易输错,因此我们可以通过任何文本编辑器将语句输入好后保存为createtable.sql的文件中,通过命令提示符下的文件重定向执行执行该脚本。
    打开命令提示符,输入: mysql -D samp_db -u root -p < createtable.sql 或 source E:createtable.sql;
    提示:

    1.如果连接远程主机请加上-h指令; 
    2. createtable.sql文件若不在当前工作目录下需指定文件的完整路径。
    语句解说:create table tablename (columns)为创建数据库表的命令,列的名称以及该列的数据类型将在括号内完成;
    括号内声明了5列内容,id、name、sex、birthday、tel为每列的名称,后面跟的是数据类型描述,列与列的描述之间用逗号(,)隔开;
    以 "id int unsigned not null auto_increment primary key" 行进行介绍:
    "id" 为列的名称;
    "int" 指定该列的类型为int(取值范围为-8388608到8388607);
    "unsigned" 表示该类型为无符号型,此时该列的取值范围为0到16777215;
    "not null" 说明该列的值不能为空,必须要填,如果不指定该属性,默认可为空;
    "auto_increment" 需在整数列中使用,其作用是在插入数据时若该列为NULL,MySQL将自动产生一个比现存值更大的唯一标识符值。在每张表中仅能有一个这样的值且所在列必须为索引列;
    "primary key" 表示该列是表的主键,本列的值必须唯一,MySQL将自动索引该列。
    下面的varchar(8) 表示存储的字符长度为8,default属性指定当该列值为空时的默认值。
    提示:

    1. 使用 show tables; 命令可查看已创建了表的名称; 
    2. 使用describe 表名; 命令可查看已创建的表的详细信息。

    12、操作MySQL数据库
    12.1 向表中插入数据
    insert 语句可以用来将一行或多行数据插到数据库表中,使用的一般形式如下:
    insert [into] 表名 [(列名1,列名2,列名3,...)] values (值1,值2,值3,...);
    其中[ ]内的内容是可选的,例如要给samp_db数据库中的students表插入一条记录,执行语句: insert into students values (1,"雷锋","男", '1990-11-23',"15221835791");
    按回车键确认后若提示Query Ok,1 row affected (0.05 sec)表示数据插入成功。若插入失败请检查是否已选择需要操作的数据库。
    有时我们只需要插入部分数据,或者不按照列的顺序进行插入,可以使用这样的形式进行插入:
    insert into students (name,sex,age) values("孙丽华","女",21);

    12.2 查询表中的数据
    select 语句常用来根据一定的查询规则到数据库中获取数据,其基本的用法为:
    select 列名称 from 表名称 [查询条件];
    例如要查询 students 表中所有学生的名字和年龄,输入语句select name,age from students; 执行结果如下:
    mysql> select name,age from students;
    +--------+-----+
    | name | age |
    +--------+-----+
    | 王刚 | 20 |
    | 孙丽华 | 21 |
    | 王永恒 | 23 |
    +--------+-----+
    3 rows in set (0.00 sec)
    mysql>
    也可以使用通配符 * 查询表中所有的内容,语句: select * from students;

    12.3 按特定条件查询:
    where关键词用于指定查询条件,用法形式为: select 列名 from 表名 where 条件;
    以查询所有性别为女的信息为例: select * from students where sex="女";
    where子句不仅仅支持"where 列名=值" 这种名等于值的查询形式,对一般的比较运算的运算符都是支持的,例如=、>、<、>=、<、!=以及一些扩展运算符is [not] null、in、like 等等。 还可以对查询条件使用 or 和 and 进行组合查询,以后还会学到更加高级的条件查询方式,这里不再多做介绍。
    示例:
    查询年龄在21岁以上的所有人信息: select * from students where age > 21;
    查询名字中带有"王"字的所有人信息: select * from students where name like "%王%";
    查询id小于5且年龄大于20的所有人信息: select * from students where id<5 and age>20;

    12.4 更新表中的数据
    update 语句可用来修改表中的数据,基本的使用形式为:
    update 表名称 set 列名称=新值 where 更新条件;
    示例:
    将id为5的手机号改为默认的"-": update students set tel=default where id=5;
    将所有人的年龄增加1: update students set age=age+1;
    将手机号为13288097888的姓名改为"张伟鹏",年龄改为19: update students set name="张伟鹏",age=19 where tel="13288097888";


    12.5 删除表中的数据
    delete 语句用于删除表中的数据,基本用法为:
    delete from 表名称 where 删除条件;
    示例:
    删除id为2的行: delete from students where id=2;
    删除所有年龄小于21岁的数据: delete from students where age<20;
    删除表中的所有数据: delete from students;

    12.6 创建后表的修改
    alter table语句用于创建后对表的修改,基础用法如下:
    1)添加列
    基本形式: alter table 表名 add 列名 列数据类型 [after 插入位置];
    示例:
    在表的最后追加列address: alter table students add address char(60);
    在名为age的列后插入列birthday: alter table students add birthday date after age;
    2)修改列
    基本形式: alter table 表名 change 列名称 列新名称 新数据类型;
    示例:
    将表tel列改名为telphone: alter table students change tel telphone char(13) default "-";
    将name列的数据类型改char(16): alter table students change name name char(16) not null;
    3)删除列
    基本形式: alter table 表名 drop 列名称;
    示例:
    删除birthday列: alter table students drop birthday;
    4)重命名表
    基本形式: alter table 表名 rename 新表名;
    示例:
    重命名students表为workmates: alter table students rename workmates;
    5)删除整张表
    基本形式: drop table 表名;
    示例: 
    删除workmates表: drop table workmates;
    6)删除整个数据库
    基本形式: drop database 数据库名;
    示例: 
    删除samp_db数据库: drop database samp_db;

    附录
    修改root用户密码
    按照本文的安装方式,root用户默认是没有密码的,重设root密码的方式也较多,这里仅介绍一种较常用的方式。


    1.使用mysqladmin方式:
    打开cmd命令提示符界面,执行命令: mysqladmin -u root -p password 新密码
    执行后提示输入旧密码完成密码修改,当旧密码为空时直接按回车键确认即可

    2.可视化管理工具MySQL Workbench
    尽管我们可以在命令提示符下通过一行行的输入或者通过重定向文件来执行mysql语句,但该方式效率较低,由于没有执行前的语法自动检查,输入失误造成的一些错误的可能性会大大增加,这时不妨试试一些可视化的MySQL数据库管理工具,MySQL Workbench就是MySQL官方为MySQL提供的一款可视化管理工具,你可以在里面通过可视化的方式直接管理数据库中的内容,并且MySQL Workbench的SQL脚本编辑器支持语法高亮以及输入时的语法检查,当然,它的功能强大,绝不仅限于这两点。

    转载:http://mp.weixin.qq.com/s/ZSkdOcCrA5B1eQiWOTtJnw

  • 相关阅读:
    安卓ADB学习笔记
    css样式和定义的class都没问题,但样式却没生效
    Linux文件系统
    bat批处理下如何像shell一样将命令执行的效果赋值给变量
    windows下svn post-commit的实现
    windows下安装subversion
    nginx sendfile 相关知识
    centos6.9下 svn 1.7.10版本 编译安装
    Django问题 Did you rename .....a ForeignKey
    Django:cookie和session相关问题
  • 原文地址:https://www.cnblogs.com/cynthia006/p/6703685.html
Copyright © 2011-2022 走看看