数据库从入门到精通

DDL--数据库操作语言

登录数据库
mysql -uroot -p 密码

退出数据库
exit;

创建数据库 
create database 数据库名 default character set utf8;

删除数据库
drop database 数据库名;

查询数据库
show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cgb2106            |
| mysql              |
| performance_schema |
| spring             |
| spring1            |
| springdata         |
| springdb           |
| sys                |
| web                |
| zxy                |
+--------------------+

使用指定的数据库
use 数据库名;

创建表
create table 表名(字段1,字段2.....)

删除表
drop table user2;

修改表
alter table user2 add column 字段名 字段类型 长度

查看数据库中的表
show tables;
+-------------------+
| Tables_in_cgb2106 |
+-------------------+
| user2             |
+-------------------+

查看表结构
desc 表名;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | YES  |     | NULL    |       |
| name    | varchar(10) | YES  |     | NULL    |       |
| sex     | varchar(10) | YES  |     | NULL    |       |
| age     | int(11)     | YES  |     | NULL    |       |
| address | varchar(10) | YES  |     | NULL    |       |
| email   | varchar(20) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

插入数据
insert into 表名 values(字段1的值,字段2的值,字段3的值.....)

查询表所有记录
select *from 表名;

查询指定字段的记录
select name from user2;

解决中文乱码
set names gbk;

修改表的记录
update 表名 set 字段名=新值

修改指定的字段的记录
update 表名 set 字段名=新值 where id=?;

删除表记录
delete from user2;

删除指定表的记录
delete from user2 where id=3;

字段约束:

#主键约束
    --给表里的某个字段设计约束
特点是字段值必须唯一且不能为null
create table a(id int primary key)

主键自增策略:主键的值交给数据库维护管理
create table b(id int primary key auto_increment)

#非空约束
   --如果给一个列添加了非空约束,字段的值不能是null
create table c(
id int primary key auto_increment,
password varchar(20) not null
)

#唯一约束:值不能相同
create table d(
id int primary key auto_increment,
name varchar(20) unique
)


基础函数:

#upper全转大写 lower全转小写
select ename ,upper(ename),lower(ename) from emp

#length:求长度(一个字母算一个字符,一个汉字算三个字符)
select LENGTH(ename),ename,length(job),job from emp

#concat(1,2,3):拼接字符串--1是字段名,2,3都是要拼的内容
select ename,concat(ename,"hello",100) from emp

#substr(1,2,3):截取字符串--1是字段名,2是开始的位置,3是截取的总长度
select dname,substr(dname,1,3) from dept

#replace(1,2,3):替换字符串--1是字段名,2是要被替换的字符,3是新的数据
select dname,replace(dname,"o","666") from dept

#ifnull:判断是否为空,如果是null,就替换成0-1
select *,ifnull(comm,0)+sal from emp

#round--四舍五入ceil--向上取整floor--向下取整
select comm,round(comm),CEIL(comm),FLOOR(comm)    from emp

#now/curdate/curtime
select now()--年月日时分秒
select curdate()--年月日
select curtime()--时分秒
    
#year&month&day&hour&minute&second
select YEAR(NOW())
select year("2021-07-25")
select year(now()),month(now()),day(now()),hour(now()),minute(now()),second(now())

条件查询

#distinct
   --使用distinct关键字,去除重复的记录
select loc from dept;
select distinct loc from dept;

#where
   --满足条件的才查出来
#查询部门编号为1的记录
select *from dept where deptno=1
#查询地址在一区的部门记录
select *from dept where loc="一区"
#查询地址在一区的部门名称
select dname from dept where loc="二区"
#根据部门的名称查询部门的记录
select *from dept where dname="research"
#根据名称和地址查询部门的记录
select *from dept where dname="research" and loc="二区"
select *from dept where dname="research" or loc="二区"
#查询工资大于8000的员工的信息
select *from emp where sal>8000
#查询工资为8000或者工资为3000的员工的信息
select *from emp where sal=8000 or sal=3000
select *from emp where sal in(8000,3000)
#查询部门编号为100,300,500的员工的信息
select *from emp where empno in(100,300,500)

#like
   --通配符%代表0-n个字符
#查询名字里包含a的员工的信息 
select *from emp where ename like "%a%"

#null 
#查询mgr是null的员工的信息
select *from emp where mgr is null
select *from emp where mgr is not null

#between and
#查询sal在3000-10000之间的员工的信息
select *from emp where sal between 3000 and 10000
#查询2015-2017年之间入职的员工的信息
select *from emp where year(hiredate) between 2015 and 2017

#limit
select *from emp limit 3
select *from emp limit 1,3
--第一个数字是开始位置(从n+1条数据开始),第二个数据是查询多少条
    
#order by
#根据员工的工资进行升序排列
select *from emp order by sal --默认为升序
#根据员工的工资进行降序排列
select *from emp order by sal desc--降序
#根据入职的年份进行升序排列
select *from emp order by year(hiredate)
#根据入职的年份进行降序排列
select *from emp order by year(hiredate) desc

#统计案例
#统计2019年入职的员工
select *from emp where year(hiredate)=2019
#统计2017年以前入职的员工
select *from emp where year(hiredate)<2017
#统计2015-2017年入职的员工
select *from emp where year(hiredate) between 2015 and 2017
#统计员工入职了几年
select *,year(now())-year(hiredate)from emp 

引言 欢迎来到PostgreSQL数据库从入门到精通。 在我们生涯的早期,我们开始理解开源软件的质量。不仅通常情况下它们可以自由使用,而且它们提供极高的质量。如果你发现问题,你可以检查源代码,理解程序工作过程。如果你找到一个错误,你可以自己修复或找别人帮你修复。我们从1978年开始试用开源软件,包括优秀的GNU工具,包括GNU Emacs和GCC。我们从1993年开始使用Linux并愉快地使用Linux内核和GNU工具建立了一个完整的,自由的计算环境,并且使用X Window系统提供了一个图形用户界面。PostgreSQL是一个采取相同的开源理念的优秀的数据库系统(更多关于开源和自由的信息,请访问http://www.opensource.org)。 数据库是非常有用的东西。很多人发现“桌面数据库”在办公室和家里的小应用程序中非常有用。很多网站是数据驱动的,很多内容都由网页服务器后面的数据库提供。随着数据库的普及,我们觉得有必要写一本书介绍数据库理论和实践。 我们写这本书整体介绍数据库,全面覆盖现代的关系数据库的能以及怎么高效使用它们。使用 PostgreSQL作为他的数据库的人都没有觉得PostgreSQL在哪方面有什么不足。它支持优秀的数据库设计,非常有弹性和扩展性,且运行在几乎你所能想到的计算机上,包括Linux,Unix,Windows,Mac OS X,AIX,Solaris以及HP-UX。 对了,免得你好奇,我告诉你PostgreSQL念做“post-gres-cue-el”(而不是“post-gray-ess-cue-el”)。 本书大致分为三部分。第一部分包括入门,包括数据库概述(它们是什么以及它们用来干什么),尤其是PostgreSQL的概述(怎样获得,安装和启动以及使用)。如果你同时运行了示例,到第5章完成的时候,你将建立起第一个可工作的数据库并且可以使用一些工具来做一些有用的事情,例如输入数据和执行查询。 本书的第二部分深刻地探索关系数据库的核心:SQL查询语言。通过示例程序和“做一个尝试”章节,你将学到数据库编程的很多方面。,从简单的数据插入和修改,强大的各类查询到通过存储过程和触发器扩展数据库功能。本章最重要的内容是数据库无关,所以你从本章获取的知识能够让你在使用其他数据库时如鱼得水。当然,所有的用来说明的示例资源是用PostgreSQL来作为示例数据库。关于PostgreSQL的管理和数据库设计的习惯用法也将在本章完整讨论。 本书的第三部分关注于在你的程序中发挥PostgreSQL的能力。本章涵盖了通过大量的编程语言连接到数据库、执行查询以及处理结果集。无论你是使用PHP或者Perl开发动态网页、用Java或者C#开发企业级应用程序或者用C写一个客户端程序,你将找到你想要的章节。 这是PostgreSQL从入门到精通的第二版;第一版在2001年发布。从那时起,每章的内容都根据8.0版本的PostgreSQL做了升级。我们在本书中有机会补充了新的一章
回答: 如果你想从入门到精通学习PostgreSQL数据库,你可以按照以下步骤进行学习: 1. 首先,你需要安装和部署PostgreSQL数据库。你可以参考\[1\]中的指南来完成安装和部署的过程。 2. 接下来,你可以学习如何创建用户名和密码,并为用户赋予数据库权限。这可以通过参考\[1\]和\[2\]中的指南来完成。 3. 了解如何创建表和插入数据是学习数据库的重要一步。你可以参考\[1\]和\[2\]中的指南来学习如何创建表和插入数据。 4. 如果你想进一步扩展你的数据库技能,你可以学习如何安装wal2json插件。这个插件可以帮助你解析PostgreSQL数据库的日志。你可以参考\[1\]和\[2\]中的指南来学习如何安装wal2json插件。 总之,通过按照\[1\]和\[2\]中的指南逐步学习,你可以从入门到精通掌握PostgreSQL数据库的各个方面。另外,PostgreSQL还支持大部分SQL标准,并提供了许多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性和MVCC。此外,你还可以通过增加新的数据类型、函数、操作符、聚集函数和索引来扩展PostgreSQL的功能\[3\]。希望这些信息对你有帮助! #### 引用[.reference_title] - *1* *2* [PostgreSQL数据库从入门到精通系列之一:安装部署PostgreSQL数据库、创建用户名和密码、创建表、插入数据](https://blog.csdn.net/zhengzaifeidelushang/article/details/131106138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [PostgreSQL数据库从入门到精通](https://blog.csdn.net/weixin_33737134/article/details/87999898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值