酝垓 发表于 2025-6-28 11:27:27

数据库基础

数据库基础

一、web应用架构

客户端——web服务器——数据库
二、数据库

1. 数据库定义

数据库(database)是用来组织、存储和管理数据的仓库
2. 分类:

(1)关系型数据库(SQL数据库)
基于关系模型的数据库管理系统
常见的关系型数据库:MySQL(3306)、SQL server(1433)、Oracle(1521)、PostgreSQL(5432)、MariaDB(MySQL 的分支,兼容 MySQL,默认端口相同3306)
(2)非关系型数据库(NoSQL)
不依赖传统关系模型的数据库管理系统
常见的非关系型数据库:Redis (6379)、MongoDB(27017)、Cassandra(9042)、Elasticsearch(9200)
3. sql语句

登录数据库:mysql -u -root -p
(1)对数据库操作

查看有哪些数据库:show databases;
创建数据库:create database database_name;
删除数据库:drop database database_name;
使用数据库:use database_name;
查看当前数据库:select database();
(2)对表操作

查看表:show tables;
创建表:create table 表名 列名 数据类型 约束;(常见数据类型 常见约束)
create table user(

id int not null auto_increment,

username varchar(255) not null,

password varchar(255) not null,

phone varchar(255),

primary key(id)

);删除表:drop table table_name;
查看表结构:desc table_name;
(3)对数据操作

添加数据:
insert into user(id,username,password,phone) value (1,'zhangsan','123456','188');
insert into user value(2,'lisi','123456','199');修改数据
update user set password='654321' where name='san';
update user set password='521521' where id=1;删除数据
delete from user where username = 'lisi';
show databases;
create database empdb;
use empdb;
create table employees(
    id int,
    name varchar(255),
    job varchar(255),
    hiredate date,
    salary float,
    bonus float,
    department int,
    primary key(id)
);
insert into employees (id,name,job,hiredate,salary,department) value (1,'zhao','CLERK','2020-01-01',800.00,2);
insert into employees (id,name,job,hiredate,salary,bonus,department) value (2,'qian','SALESMAN','2021-05-06',1900.00,400.00,2);
insert into employees (id,name,job,hiredate,salary,bonus,department) value (3,'sun','SALESMAN','2021-05-10',1600.00,500.00,3);
insert into employees (id,name,job,hiredate,salary,department) value (4,'li','MANAGER','2021-07-12',2850.00,2);
insert into employees (id,name,job,hiredate,salary,bonus,department) value (5,'zhou','SALESMAN','2021-07-26',1600.00,1200.00,3);
insert into employees (id,name,job,hiredate,salary,department) value (6,'wu','ANALYST','2020-07-25',3500.00,1);
insert into employees (id,name,job,hiredate,salary,department) value (7,'zheng','CLERK','2021-08-12',3000.00,1);
insert into employees (id,name,job,hiredate,salary,bonus,department) value (8,'wang','PRESIDENT','2019-12-26',6000.00,2500.00,1);
select * from employees;查询数据
select * from employee;
select id,name,job,salary from emplyee;
select name,salay from employees where salary > 2000;
select name,salary from employees where salary < 4000;
select name,salary from employees where salary > 2000 and salary < 4000;
select * from employees where job = 'manager' or job = 'salesman';
select * from employees where job in ('manager','salesman');
select * from employees where job != 'manager' and job != 'salesman';
select * from employees where job not in ('manager','salesman');
select * from employees where name like ('z%');
select * from employees where name like ('z___');
select * from employees order by salary; --默认按照升序进行排列 asc:表示按升序排序 desc:表示按降序排序
select * from employees order by salary desc;
select * from employees order by 1; --跟数字,可以确定列数
select * from employees limit 0,3; --第0行后开始显示三行
select * from teacher union select * from student; --union 联合查询,两个表查询结果列的数量必须相同,否则会进行报错
select * from teacher union select 1,2,3;4. 聚合函数

-- count 统计符合条件的行数
select count(*) from employees;
-- max 查询最大值 min查询最小值
select max(salary) as '最高工资' from employees;
-- sum 求和
select sum(salary) as '月支出' from employees;
-- avg 平均
select avg(salary) as '平均工资' from employees;5. 常见函数

-- 字符串连接
select concat('1','2');
select concat_ws('_','Hello','Wrold'); -- 指定分隔符将多个字符串连接
select group_concat(name) AS all_name from employees; -- 将表中整列内容连接,AS all_name指定别名为all_name

-- 截取字符串
select substr(database(),1,3); -- 从第一个字符起,截取三个字符
select left(database(),3); -- 从左边截取三个字符串
select right(database(),3); -- 从右边截取三个字符串

-- 查看版本
select @@version;
select version();

-- 获取当前用户
select user();
select system_user();
select current_user();

-- 获取安装目录
select @@datadir;
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除
页: [1]
查看完整版本: 数据库基础