数据库学习之sql语句基础
一、MySQL简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
二、安装完数据库后出现问题的解决方法
1、安装数据库:http://blog.csdn.net/topkipa/article/details/79097074
2、第一次安装完Mysql之后,输入 mysql -u root -p 回车,会提示你输入密码,
此处,关于修改初始的默认密码:http://blog.csdn.net/topkipa/article/details/79097074
3、安装完数据库之后,出现:ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo re executing this statement. 解决办法:
直接执行:set password=password('你自己设置的密码');
三、SQL语句
分类
sql可以划分为以下3个类别:
DDL:数据定义语句,定义着不同的数据段、数据库、表、列、索引等数据库对象。常用语句关键字主要包括create,drop,alter等
DML语句:数据操纵语句用于添加、删除、更新、查询数据库记录。
DCL:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。
DDL:
(1)、连接数据库:
>>>mysql -uroot -p
mysql代表客户端命令,-u后面跟连接的数据库用户,而-p表示需要输入密码。
需要注意的是:
·命令的结束符用“:”或者“\g”结束
·客户端的连接ID,这个数据记录了MySQL服务到目前为止的连接次数,每个新连接会自动加1.
·通过"help"或者"\h"命令来显示帮助内容,通过"\c"命令来清除命令行buffer
(2)、创建数据库
>>>create database dbname:创建数据库
>>>show databases:查看系统存在哪些数据库
>>>use test1:选择数据库test1
>>>show tables:查看test1数据库里的数据表
(3)、删除数据库
>>>drop database dbname;
(4)、修改表:alter table****:
推荐使用图形化工具修改表结构。
DML语句
1、插入记录
insert into tablename(field1,field2...) values (value1,value2...);
insert into 后面也可以不指定字段名字,但是values后面的顺序应该和字段的排列顺序一致。
2、更新记录
update tablename set *****
BEGIN
DECLARE v_num INT DEFAULT 0;
SELECT COUNT(nm_id) INTO v_num FROM jt_url WHERE vc_md5 = v_md5;
IF v_num = 0 THEN
INSERT INTO jt_url (
dt_create,dt_update,vc_url,vc_title)
VALUES (
NOW(),NOW(),v_url,v_title);
ELSE
UPDATE jt_url SET
dt_update = NOW(),
vc_url = IF(LENGTH(TRIM(v_url))>0,v_url,vc_url),
vc_title = IF(LENGTH(TRIM(v_title))>0,v_title,vc_title)
WHERE vc_md5 = v_md5;
END IF;
END
3、删除记录
delete from tablename where ***
4、查询:
(1)、select * from tablename where ***
(2)、排序和限制:
利用order by 来实现按照某个字段进行排序,例如:
select * from dbname where *** order by dt_create DESC LIMIT 0,1000
其中DESC表示按照字段降序,而ASC表示按照字段升序排列。LIMIT表示只显示从第0位开始1000位结束的数据
5、聚合
select [field1,field2....] fun_name
from tablename
where ****
GROUP BY field1,field2.....
with rollup
having *****
其中,fun_name表示要做的聚合操作,例如sum(求和),count(*)记录数,max(最大值)
group by 表示要进行分类聚合的字段,比如按照部门分类统计员工数量。
with rollup是可选语法,表明是否对分类聚合后的结果进行再汇总。
having关键字表示对分类后的结果再进行条件的过滤。
select count(*) s,vc_videoid,dt_create,vc_class,vc_name,vc_infoid from youku_video WHERE vc_class="电影" GROUP BY vc_infoid having count(*)>1 ORDER BY CONVERT(vc_infoid,SIGNED)
having和where的区别在于:having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤,如果逻辑允许,我们尽可能用where先过滤记录,这样结果集减小,将提高聚合的效率,最后再根据逻辑选择是否使用having进行再过滤。
6、表连接。
1、表连接分为内\外连接,其区别在于,内连接仅选出两张表中互相匹配的记录,而外连接会选出其他不匹配的记录。
2、外连接分为左连接和右连接:
·左连接左边表大
·右连接右边表大
例如:
select vc_infoid,vc_videoid from db1 left join db2 on db1.vc_name = db2.vc_name;
·表连接很多情况下用于优化子查询。
7、记录联合(union,union all)
·union all:把结果直接拼在一起
·union:是在union all之后进行一次去重
注:LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。
数据库学习之sql语句基础相关推荐
- MySQL 数据库 之 高级 SQL 语句(常用查询,正则表达式,运算符,库函数,存储过程)
文章目录 前言 一 . 常用查询介绍 1.按关键字排序 1.1默认升序 1.2 降序 1.3 多字段的排序 2. 对结果进行分组 2.1 分组统计 3.限制结果条目 3.1 查看前4行 3.2 查看第 ...
- 帝国cms php sql,帝国CMS下在PHP文件中调用数据库类执行SQL语句实例
帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 例1:连接MYSQL数据库例子.(a.php) db_close(); //关闭MYSQL链接$empire=null; //注消操作类变量? ...
- java数据库编程——执行SQL 语句
[0]README 1) 本文文字描述+source code 均转自 core java volume 2 , 旨在理解 java数据库编程--执行SQL 语句 的基础知识 : 2)for sour ...
- 云服务器怎么执行sql文件在哪里,总结帝国CMS下在PHP文件中怎么调用数据库类执行SQL语句实例...
总结帝国CMS下在PHP文件中怎么调用数据库类执行SQL语句实例 发布时间:2020-10-19 14:58:08 来源:亿速云 阅读:83 作者:小新 这篇文章将为大家详细讲解有关总结帝国CMS下在 ...
- 软件创新实验室:MySQL数据库与简单SQL语句使用
文章目录 前言 简介 特点 SQL DDL:操作数据库.表 DML:增删改表中数据 DQL:查询表中的记录 后记 拓展 范式 第一范式 1NF 第二范式 2NF 第三范式 3NF B+树 节点结构 插 ...
- Oracle 实验三: SQL语句基础(复习)
实验三: SQL语句基础(复习) 一.实验目的 1.oracle中常用数据字典的使用. 2.复习并掌握表管理(创建.修改.创建约束.删除等)操作 二.实验内容 1.利用数据字典完成以下操作,对运行过程 ...
- SQL语句基础4/select查询语句练习
SQL语句基础4 注:除指明表格之外所有的数据来源于Oracle数据库自带的SCOTT用户表. 1. 表连接(99语法) 1.1 内连接 cross join语法:cross join即交叉连接,用于 ...
- 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)
1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名 [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...
- mysql分析sql语句基础工具 —— explain
转载自 https://segmentfault.com/a/1190000009724144 立即登录 [笔记] mysql分析sql语句基础工具 -- explain mysql wateran ...
最新文章
- 呼叫中心最难的问题是什么?
- 这个赛道能超车几次?
- mysql:mysql error:Access denied for user 'root'@'localhost' (using password: YES)
- Codeforces Round #734 (Div. 3) 题解
- abap 取日期最大_Pointer干货分享:SQL面试50题思路解答与分类整理(下)CASE与日期函数...
- php可变函数代码,PHP可变函数
- Unitest框架的使用(四)HTMLTestRunner输出测试报告
- mysql java 日期_Mysql和JAVA中的几个日期操作
- dojo mobile问题汇总
- 如何防止SWF文件被反编译
- 最新AWVS14安装使用教程(2021年10月11日)
- curl测试post请求
- echarts 饼状图展示位置 legend
- 使用Bochs模拟器和IDA调试MBR
- CCF的基于UEBA的用户上网异常行为分析baseline(线上0.9263)
- 十年弄潮 ——从《才富》到《中国人力知本》
- Kotlin初级(2)- - - 空安全.md
- 订单可视化(智能制造、流程再造、企业信息化) 第七篇 经营班子掌舵,业务与开发分离,走向成功必备条件
- LWP(Library for WWW in Perl)的基本使用
- linux 重新运行命令,如何在Linux中重新运行最后执行的命令?