mysql入门级学习.docx
《mysql入门级学习.docx》由会员分享,可在线阅读,更多相关《mysql入门级学习.docx(17页珍藏版)》请在冰豆网上搜索。
mysql入门级学习
专题学习
Mysql入门
编制
白瑞
日期
2016-02-03
审核
夏云超
日期
2016-02-03
批准
陈宁生
日期
2016-02-03
版本
通用
发布日期
2016-02-03
一、MySQL的相关概念介绍
MySQL为关系型数据库(RelationalDatabaseManagementSystem),这种所谓的"关系型"可以理解为"表格"的概念,一个关系型数据库由一个或数个表格组成,如图所示的一个表格:
表头(header):
每一列的名称;
列(row):
具有相同数据类型的数据的集合;
行(col):
每一行用来描述某个人/物的具体信息;
值(value):
行的具体信息,每个值必须与该列的数据类型相同;
键(key):
表中用来识别某个特定的人\物的方法,键的值在当前列中具有唯一性。
二、centos下MySQL的安装配置
1、yumlistmysql-server2、yuminstallmysql-server.
三、MySQL脚本的基本组成
与常规的脚本语言类似,MySQL也具有一套对字符、单词以及特殊符号的使用规定,MySQL通过执行SQL脚本来完成对数据库的操作,该脚本由一条或多条MySQL语句(SQL语句+扩展语句)组成,保存时脚本文件后缀名一般为.sql。
在控制台下,MySQL客户端也可以对语句进行单句的执行而不用保存为.sql文件。
标识符:
标识符用来命名一些对象,如数据库、表、列、变量等,以便在脚本中的其他地方引用。
MySQL标识符命名规则稍微有点繁琐,这里我们使用万能命名规则:
标识符由字母、数字或下划线(_)组成,且第一个字符必须是字母或下划线。
关键字:
MySQL的关键字众多,这里不一一列出,在学习中学习。
这些关键字有自己特定的含义,尽量避免作为标识符。
语句:
MySQL语句是组成MySQL脚本的基本单位,每条语句能完成特定的操作,他是由SQL标准语句+MySQL扩展语句组成。
函数:
MySQL函数用来实现数据库操作的一些高级功能,这些函数大致分为以下几类:
字符串函数、数学函数、日期时间函数、搜索函数、加密函数、信息函数。
常用语句:
Select检索多个列;;selectline1,line2,line3…………FROMproducts;
Select检索所有列:
select*FROMproducts;
建库:
createdatabase库名;
建表use库名;
createtable表名;、
查看库:
showdatabases;
四、MySQL中的数据类型
MySQL有三大类数据类型,分别为数字、日期\时间、字符串,这三大类中又更细致的划分了许多子类型:
1、数字类型
整数:
tinyint、smallint、mediumint、int、bigint
浮点数:
float、double、real、decimal
2、日期和时间
date、time、datetime、timestamp、year
3、字符串类型
字符串:
char、varchar
文本:
tinytext、text、mediumtext、longtext
二进制(可用来存储图片、音乐等):
tinyblob、blob、mediumblob、longblob
五、使用MySQL数据库
1、登录到mysql
登录用法:
mysql-h主机名-u用户名–p,mysql–uroot–p,连接至数据库,要求输入密码,但是初次安装的时候是没有密码的,回车键,显示mysql>即表示连接成功,如下
-h:
该命令用于指定客户端所要登录的MySQL主机名,登录当前机器该参数可以省略;
u:
所要登录的用户名;
-p:
告诉服务器将会使用一个密码来登录,如果所要登录的用户名密码为空,可以忽略此选项。
注:
若密码存在,输入密码登录,不存在则直接按回车登录,按照本文中的安装方法,默认root账号是无密码的。
登录成功后你将会看到WelecometotheMySQLmonitor...的提示语。
然后命令提示符会一直以mysql>,如上,加一个闪烁的光标等待命令的输入,输入exit或quit退出登录。
2、创建一个数据库
使用createdatabase语句可完成对数据库的创建,创建命令的格式如下:
createdatabase数据库名[其他选项];
例如我们需要创建一个名为test2的数据库,在命令行下执行以下命令:
createdatabasetest2(charactersetgbk可省略);
为了便于在命令提示符下显示中文,在创建时通过charactersetgbk将数据库字符编码指定为gbk。
创建成功时会得到QueryOK,1rowaffected(0.02sec)的响应。
注意:
MySQL语句以分号(;)作为语句的结束,若在语句结尾不添加分号时,命令提示符会以->提示你继续输入(有个别特例,但加分号是一定不会错的);
提示:
可以使用showdatabases;命令查看已经创建了哪些数据库,如下。
3、创建数据库表
使用createtable语句可完成对表的创建,createtable的常见形式:
createtable表名称(列声明);
以创建students表为例,表中将存放学号(id)、姓名(name)、性别(sex)、年龄(age)、联系电话(tel)这些内容:
createtableworkmates
(
idintunsignednotnullauto_incrementprimarykey,
namechar(8)notnull,
sexchar(4)notnull,
QQtinyintunsignednotnull,
SNintunsignednotnull,
telchar(13)nulldefault"-"
);
(注释:
createtabletablename(columns)为创建数据库表的命令,列的名称以及该列的数据类型将在括号内完成;括号内声明了5列内容,id、name、sex、age、student_ID、tel为每列的名称,后面跟的是数据类型描述,列与列的描述之间用逗号(,)隔开;
以"idintunsignednotnullauto_incrementprimarykey"行进行介绍:
1、"id"为列的名称;
2、"int"指定该列的类型为int(取值范围为-8388608到8388607),在后面我们又用"unsigned"加以修饰,表示该类型为无符号型,此时该列的取值范围为0到16777215;
3、"notnull"说明该列的值不能为空,必须要填,如果不指定该属性,默认可为空;
4、"auto_increment"需在整数列中使用,其作用是在插入数据时若该列为NULL,MySQL将自动产生一个比现存值更大的唯一标识符值。
在每张表中仅能有一个这样的值且所在列必须为索引列。
5、"primarykey"表示该列是表的主键,本列的值必须唯一,MySQL将自动索引该列。
6、下面的char(8)表示存储的字符长度为8,tinyint的取值范围为-127到128,default属性指定当该列值为空时的默认值。
)
六、操作MySQL数据库
insert语句可以用来将一行或多行数据插到数据库表中,使用的一般形式如下:
insert[into]表名[(列名1,列名2,列名3,...)]values(值1,值2,值3,...);
其中[]内的内容是可选的,例如,要给test2数据库中的workmates表插入一条记录,执行语句:
insertintoworkmatesvalues('','王琳','female','14321','100','13555555555');
按回车键确认后若提示QueryOk,1rowaffected(0.05sec)表示数据插入成功。
若插入失败请检查是否已选择需要操作的数据库。
查看表:
有时我们只需要插入部分数据,或者不按照列的顺序进行插入,可以使用这样的形式进行插入:
insertintostudents(name,sex,SN)values("小美","女",103);
1、查询表中的数据
select语句常用来根据一定的查询规则到数据库中获取数据,其基本的用法为:
select列名称from表名称[查询条件];
例如要查询workmates表中所有员工的名字和年龄,输入语句selectname,SNfromworkmates;执行结果如下:
也可以使用通配符*查询表中所有的内容,语句:
select*fromworkmates;
为了方便下面的一些操作,,在表中再增添、删除一些人员信息
2、按特定条件查询:
where关键词用于指定查询条件,用法形式为:
select列名称from表名称where条件;
以查询所有性别为女的信息为例,输入查询语句:
select*fromworkmateswheresex="male";
where子句不仅仅支持"where列名=值"这种名等于值的查询形式,对一般的比较运算的运算符都是支持的,例如=、>、<、>=、<、!
=以及一些扩展运算符is[not]null、in、like等等。
还可以对查询条件使用or和and进行组合查询,以后还会学到更加高级的条件查询方式,这里不再多做介绍。
示例:
查询年龄在21岁以上的所有人信息:
select*fromworkmateswhereage>30
;
查询名字中带有"王"字的所有人信息:
select*fromworkmateswherenamelike"%王%";
查询id小于5且年龄大于20的所有人信息:
select*fromworkmateswhereid<6andage>40;
3、更新表中的数据
update语句可用来修改表中的数据,基本的使用形式为:
update表名称set列名称=新值where更新条件;
使用示例:
将id为5的手机号改为默认的"-":
updateworkmatessettel=46592345whereid=5;
将所有人的年龄增加1:
updateworkmatessetage=age+1;
、
变更后
将手机号为85623598的姓名改为"Swif",年龄改为22:
updateworkmatessetname="Swif",age=19wheretel="85623598";
4、删除表中的数据
delete语句用于删除表中的数据,基本用法为:
deletefrom表名称where删除条件;
使用示例:
删除id为7的行:
deletefromworkmateswhereid=7;
删除所有年龄大于50岁的数据:
deletefromworkmateswhereage>50;
删除表中的所有数据:
deletefromstudents;此步骤省略
七、创建后表的修改
altertable语句用于创建后对表的修改,基础用法如下:
1、添加列
基本形式:
altertable表名add列名列数据类型[after插入位置];
示例:
在表的最后追加列address:
altertableworkmatesaddaddresschar(60);
在名为age的列后插入列birthday:
altertableworkmatesaddbirthdaydateafterage;
2、修改列
基本形式:
altertable表名change列名称列新名称新数据类型;
示例:
将表tel列改名为telphone:
altertableworkmateschangeteltelphonechar(13)default"-";
将name列的数据类型改为char(16):
altertableworkmateschangenamenamechar(16)notnull;
3、删除列
基本形式:
altertable表名drop列名称;
示例:
删除birthday列:
altertableworkmatesdropbirthday;
4、重命名表
基本形式:
altertable表名rename新表名;
示例:
重命名students表为workmates:
altertableworkmatesrenameworkmate;
5、删除整张表
基本形式:
droptable表名;
示例:
删除workmate表:
droptableworkmate;
如上图,再次输入查询语句,提示所查询的表不存在
6、删除整个数据库
基本形式:
dropdatabase数据库名;
示例:
删除test2数据库:
dropdatabasetest2;