找回密码
 立即注册
首页 业界区 安全 数据库基础

数据库基础

鞍汉 2025-6-28 11:26:07
数据库基础

一、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 表名 列名 数据类型 约束;(常见数据类型 常见约束)
  1. create table user(
  2. id int not null auto_increment,
  3. username varchar(255) not null,
  4. password varchar(255) not null,
  5. phone varchar(255),
  6. primary key(id)
  7. );
复制代码
删除表:drop table table_name;
查看表结构:desc table_name;
(3)对数据操作

添加数据:
  1. insert into user(id,username,password,phone) value (1,'zhangsan','123456','188');
  2. insert into user value(2,'lisi','123456','199');
复制代码
修改数据
  1. update user set password='654321' where name='san';
  2. update user set password='521521' where id=1;
复制代码
删除数据
  1. delete from user where username = 'lisi';
复制代码
1.png
  1. show databases;
  2. create database empdb;
  3. use empdb;
  4. create table employees(
  5.     id int,
  6.     name varchar(255),
  7.     job varchar(255),
  8.     hiredate date,
  9.     salary float,
  10.     bonus float,
  11.     department int,
  12.     primary key(id)
  13. );
  14. insert into employees (id,name,job,hiredate,salary,department) value (1,'zhao','CLERK','2020-01-01',800.00,2);
  15. insert into employees (id,name,job,hiredate,salary,bonus,department) value (2,'qian','SALESMAN','2021-05-06',1900.00,400.00,2);
  16. insert into employees (id,name,job,hiredate,salary,bonus,department) value (3,'sun','SALESMAN','2021-05-10',1600.00,500.00,3);
  17. insert into employees (id,name,job,hiredate,salary,department) value (4,'li','MANAGER','2021-07-12',2850.00,2);
  18. insert into employees (id,name,job,hiredate,salary,bonus,department) value (5,'zhou','SALESMAN','2021-07-26',1600.00,1200.00,3);
  19. insert into employees (id,name,job,hiredate,salary,department) value (6,'wu','ANALYST','2020-07-25',3500.00,1);
  20. insert into employees (id,name,job,hiredate,salary,department) value (7,'zheng','CLERK','2021-08-12',3000.00,1);
  21. insert into employees (id,name,job,hiredate,salary,bonus,department) value (8,'wang','PRESIDENT','2019-12-26',6000.00,2500.00,1);
  22. select * from employees;
复制代码
查询数据
  1. select * from employee;
  2. select id,name,job,salary from emplyee;
  3. select name,salay from employees where salary > 2000;
  4. select name,salary from employees where salary < 4000;
  5. select name,salary from employees where salary > 2000 and salary < 4000;
  6. select * from employees where job = 'manager' or job = 'salesman';
  7. select * from employees where job in ('manager','salesman');
  8. select * from employees where job != 'manager' and job != 'salesman';
  9. select * from employees where job not in ('manager','salesman');
  10. select * from employees where name like ('z%');
  11. select * from employees where name like ('z___');
  12. select * from employees order by salary; --默认按照升序进行排列 asc:表示按升序排序 desc:表示按降序排序
  13. select * from employees order by salary desc;
  14. select * from employees order by 1; --跟数字,可以确定列数
  15. select * from employees limit 0,3; --第0行后开始显示三行
  16. select * from teacher union select * from student; --union 联合查询,两个表查询结果列的数量必须相同,否则会进行报错
  17. select * from teacher union select 1,2,3;
复制代码
4. 聚合函数
  1. -- count 统计符合条件的行数
  2. select count(*) from employees;
  3. -- max 查询最大值 min查询最小值
  4. select max(salary) as '最高工资' from employees;
  5. -- sum 求和
  6. select sum(salary) as '月支出' from employees;
  7. -- avg 平均
  8. select avg(salary) as '平均工资' from employees;
复制代码
5. 常见函数
  1. -- 字符串连接
  2. select concat('1','2');
  3. select concat_ws('_','Hello','Wrold'); -- 指定分隔符将多个字符串连接
  4. select group_concat(name) AS all_name from employees; -- 将表中整列内容连接,AS all_name指定别名为all_name
  5. -- 截取字符串
  6. select substr(database(),1,3); -- 从第一个字符起,截取三个字符
  7. select left(database(),3); -- 从左边截取三个字符串
  8. select right(database(),3); -- 从右边截取三个字符串
  9. -- 查看版本
  10. select @@version;
  11. select version();
  12. -- 获取当前用户
  13. select user();
  14. select system_user();
  15. select current_user();
  16. -- 获取安装目录
  17. select @@datadir;
复制代码
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除

相关推荐

您需要登录后才可以回帖 登录 | 立即注册