常见数据库
- Oracle
- SQL Server
- DB2
- PostgreSQL
- MySQL
- Access
数据库连接
这里我们使用phpstudy中自带的mysql数据库,并使用命令行的方式来操作数据库。
phpstudy下载地址:https://old.xp.cn/download.html
我是在虚拟机上安装的旧版本,下载完成后启动Apache和Mysql服务。
- phpstudy 2016/2018
其他选项->cmd命令行 - phpstudy v8.1
如果是v8.1版本的话,需要到对应的phpstudy文件->Extension->Mysql->bin目录下打开终端
输入mysql -u root -p
输入密码(默认root)
基本语法
数据库
show databases; # 列出当前所有的数据库
create database db_name; # 创建数据库
use db_name; # 进入某个数据库
select database(); # 查看当前数据库的名称
表
create table tb_name(column_name column_type); # 创建表(字段1 字段类型,字段2 字段类型)
show tables; # 查看表
desc tb_name; # 查看表的类型
drop table tb_name; # 删除表
create table user(id int, username varchar(20), password varchar(20));
show tables;
desc user;
字段
alter table tb_name drop column_name; # 删除表中的字段
alter table tb_name add column_name column_type; # 添加字段
alter table tb_name change column_name1 to column_name2 column_type2; # 修改字段
alter table user drop id;
alter table user add id int;
alter table user change password pwd varchar(10);
数据
select * from tb_name; # 查看表中的所有数据(将*换成字段名可以查询对应的字段)
insert into tb_name values(column_name1, column_name2); # 向表中插入数据
update tb_name set column_name1 = value1 where column_name2 = value2; # 找到表中字段=value2的数据,并将它字段1的对应数据修改成value1
delete from tb_name where column_name=value; # 删除数据
insert into user values('admin', 'admin', 1);
select * from user;
select username, pwd from user;
update user set pwd='123456' where username='admin';
delete from user where username='admin';
查询
order by column_name ASC/DESC # 排序:升序(默认)/降序
e.g select * from user order by id desc; # 按照id字段降序排序
limit m, n # 限制查询数量,从m行开始,显示n条数据
e.g select * from user limit 2, 10; # 从第2行开始,显示10条数据(注意行号索引从0开始)
like 模糊查询
e.g select * from user where username like '%d%'; # 查询数据中含d的数据(注意要用单引号引起来)
union 联合查询
select * from user where username = 'admin' union select 1,2,3; # 注意两个表的字段数必须相同
子查询
e.g select * from user where username=(select * from test where pwd = '123456');
先查询出test表中pwd=‘123456’的数据然后,然后在user表中找到与这些数据中username对应相同的数据
select * from user where username in (select * from test where pwd='123456'); # 与前一条查询相同
其他函数
group_concat(column_name) # 将某个字段的多行数据在一行中呈现出来
e.g select group_concat(username) from user;
select database(); # 返回当前所在数据库
select user(); # 返回当前登陆的用户
select version(); # 返回当前服务器的版本
select sleep(time); # 休眠(time可以是任意时间,比如select sleep(1);表示休眠1s)