工作中经常会用到mysql语句,但是每隔一段时间不用,容易忘记,所以记录一下,方便查找。
MySQL 是一个关系型数据库,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。
MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL 是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个"大仓库"内,这样就增加了速度并提高了灵活性。
MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。
MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP ,Linux和 Apache 可组成良好的开发环境,经过多年的web技术发展,在业内被广泛使用的一种web服务器解决方案之一,称之为LAMP(Linux Apache Mysql Php)。
链接数据库
在‘超级终端’中可以使用命令的方式进入到mysql数据库的控制管理交互程序,命令如下:
mysql -h 主机名 -u 用户名 -p
基本的解释如下:
h:后面接的是主机名,表示你要连接到哪台主机的MySQL数据库。
u:后面接的是用户名,MySQL默认的就是root。
p:指定需要使用密码登陆MySQL数据库,如果密码为空,该参数可以省略。
说明
如果要连接到远程主机的MySQL数据库的话,只需要在加上-h参数,再加上远程主机的主机名或者IP地址就可以了,类似如下:
mysql -h 202.116.96.96 -u root -p
对于-p参数,其实我们也可以在p后面直接加上MySQL数据库的密码,也就是说,上面的操作也等价于下面(密码以123456为例):
mysql -u root -p123456
这里,密码是123456,这样之后,按回车键,就可以直接登陆到MySQL数据库中去了。
工作中经常使用mysql -u root -p(或者mysql -uroot -p),然后回车,输入密码。
使用数据库的基本操作
show databases;查看数据库中存放了哪些数据库
create database stu_info;创建stu_info数据库
creat database products character set utf8;创建数据库时设置编码方式为utf8;
use stu_info;选择要进行操作的数据库
select database();查看正在使用的数据库
create table 数据库表名(列声明);
create table baseinfo(
id char(10) not null primary key,
name char(16) not null,
age int not null,
address char(36) not null,
phonenum char(11) not null
);
describe 数据库表名;describe baseinfo;查询数据库表的详细信息,只包括表头,并不包含内容;
insert into数据库中添加数据
有两种添加方式:
1、insert into 数据库表名 values(value值1,value值2,.......);
insert into baseinfo (id,name,age,address,phonenum) values('1000','zhangsan',20,'beijing',13827877654);
2、insert into 数据库表名 (列名1,列名2,...) values(value值1,value值2,...);
insert into baseinfo (id,name,age,address,phonenum) values('1000','zhangsan',20,'beijing',13827877654);
使用方式二可以只向数据库表中添加部分数据,但前提是遵守not null的规则。
添加数据以后,查看数据库表
select查询数据库表中的数据
select 列名称 from 数据库表名 [查询条件];查看表中符合条件的数据
select * from 数据库表名;查询表中全部数据
select 列名称,列名称 from 数据库表名;如:select id,name from baseinfo,查询表中特定列的数据
select 列名称 from 数据库表名 where 查询条件;按照特定条件查询表中的数据;
如:select * from baseinfo where name='haohao';
select * from baseinfo where address like '%in%';
update修改数据库(更新数据库表中的字段值)
update 数据库列名 set 列名=新value where 更新条件;
update baseinfo set address='LinYi' where name='haohao';
update baseinfo set name='yonghua',age=1 where name='xiaohua';
update baseinfo set age=age+1;
delete删除数据库表中的数据
delete from 数据库表名 where 删除条件;删除表中的数据;
delete from 数据库表名;删除表中的全部数据,但是表依然存在;
alert修改数据库表
alter table 数据库表名 change 列名称 新数据类型 [其它];
修改之前先用describe baseinfo查看一下数据库的表结构:
alert table baseinfo change address addr char(36) not null;将列名称"adress"修改为"addr",其它保持不变
alert table baseinfo change name name char(20) not null;将列"name"的数据类型修改为最大可以存放20个字符的char类型,其它保持不变
alert删除数据库表的列
alter table 数据库表名 drop 列名称;
alert table baseinfo drop addr;删除地址列
alert重命名数据库表
alter table 数据库表名 rename 新数据库表名;
alert table baseinfo rename base_info;
删除数据库表
drop table 数据库表名;
drop table stu_info;