数据库的一些常用sql语句和问题~

小白入门必掌握的数据库基本操作和一些常见问题 大神勿进~

首先先带大家了解一下什么是数据库

数据库就是按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

创建数据库

  • 使用create命令创建数据库 语法:CREATE DATABASE 数据库名
mysql> CREATE DATABASE ceshi;

删除数据库

  • 语法: drop database 数据库名
    示例删除名为测试的数据库
mysql> drop database ceshi;

选择数据库

  • 语法: use ceshi
    这样你就选择到了ceshi这个数据库,后续操作都在这个数据库中执行
mysql> use ceshi;
Database changed

创建数据表

  • 语法: CREATE TABLE 数据表名字 (表字段名1,表字段名2)
mysql> use practice;
Database changed
mysql> CREATE TABLE ceshi (
    -> num int,
    -> age int,
    -> name varchar(15)
    -> );
Query OK, 0 rows affected

mysql> 

删除数据表

  • 语法: DROP TABLE 数据表名
mysql> DROP TABLE ceshi;
Query OK, 0 rows affected

mysql> 

插入数据

  • 语法: INSERT INTO 数据表名 (表字段名1,表字段名2 ··· 表字段名n)
    VALUES
    (数据1,数据2 ··· 数据n);
mysql> use practice;
Database changed
mysql> INSERT INTO user
    -> (name,password,phone)
    -> VALUES
    -> ('JAMES','242424','16623246623');
Query OK, 1 row affected
mysql> 
插入演示.png

查询数据

  • 语法:select * from 数据表名
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用>- WHERE语句来设定查询条件。
  • SELECT 命令可以读取一条或者多条记录。
  • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
  • 你可以使用 WHERE 语句来包含任何条件。
  • 你可以使用 LIMIT 属性来设定返回的记录数。
  • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

更新数据

  • 语法: update 表名 set 字段1='value' where id=’1‘
    释意:把数据表中id为1的字段1的值修改

删除数据

  • 语法:delete from 表名 where
    把数据表id等于3的那条数据删掉

  • 示例:
    delete from 表名 where id=3

mysql索引 加速查询

  • 普通索引
    即不应用任何限制条件的索引,该索引可以在任何数据类型中创建。字段本身的约束条件可以判断其值是否为空或唯一。

  • 唯一索引
    使用UNIQUE参数可以设置唯一索引。创建该索引时,索引的值必须唯一。主键是一种特殊唯一索引。

  • 全文索引
    使用FULLTEXT参数可以设置全文索引。全文索引只能创建在CHAR、VARCHAR、TEXT类型的字段上。查询数据量较大的字符串类型字段时,使用全文索引可以提高查询速度。注意:全文索引在默认情况下是对大小写字母不敏感的,可以通过使用二进制对索引的列进行排序以执行大小写敏感的全文索引。MySQL中只有MyISAM存储引擎支持全文索引

  • 联合索引
    命名规则:表名_字段名1、需要加索引的字段,要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系,加索引不起作用4、符合最左原则
    联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。

mysql查全部的总数、去重

  • 用count(*)在里面写下查询的字段名
  • 示例:查询ceshi里面的name的总数
mysql> select count(name) from ceshi;
示例.png
  • distinct去重 写法 select distinct 字段名 from 表名
select distinct name from ceshi;
示例.png

left join 左连接 right join 右连接 inner join 内部连接

  • 左连接 A B 两个表 返回A表所有的行 B有的就返回 B有但A没有的则不显示 B没有的显示null
    右连接 相反
    内部连接 只展示两者都有的

什么是mysql explain

  • mysql explain就是用来查看一个SQL语句的执行计划,查看该SQL语句有没有使用索引,有没有做全表扫描

常见函数

  • count(*)返回被选行数 max 返回某列最高值 min最低值 avg平均值 distinct去重 等

mysql处理死锁

  • 首先什么叫死锁

两个事务都持有对方需要的锁,并且在等待对方释放,并且双方都不会释放自己的锁。

  • 处理方式
    等待,直到超时(innodb_lock_wait_timeout=50s)。
    发起死锁检测,主动回滚一条事务,让其他事务继续执行(innodb_deadlock_detect=on)。
    由于性能原因,一般都是使用死锁检测来进行处理死锁。

mysql慢查询如何排查

  • 1.查看数据库状态
  • 2.查找日志文件中是否有sql相关打印---java日志中
  • 3.执行show processlist; 查看mysql正在运行的sql线程,可看到sql语句执行时间
  • 4.查看mysql慢查询日志(默认情况下,mysql不开启慢查询日志)
    可通过命令:show variables like '%slow_query_log%'; 查看mysql是否开启了慢查询,以及慢查询日志在哪?ON表示已开启,时间阈值是10s。
  • 5.可以通过explain分析sql语句

mysql分页查询

  • 语法: select * from 表名 limit n

  • 查询这张表的第一页的前4条:
    select * from 表名 limit 0,4

select * from ceshi limit 0,4;
查询结果.png

mysql where语句 like模糊查询

  • where条件语句 在查询后面加where 查询条件
    like 模糊查询 “java%” 查询以java字段开头的信息 “%java%” 查询包含java字段的信息 “%java”查询以java字段结尾的信息

  • 示例:我要查ceshi表中name字段里以y结尾的所有记录

select * from ceshi where name like '%y'

mysql union 、union all操作符

  • 都是可以用于合并两个或者多个select语句的结果集
    不同点:如果select结果集的数据是一样的 则前者只会显示一条 而后者不管结果集是否一样 都会全部查出来

什么是mysql注入

  • 就是一种网络攻击方式 通过sql语句来注入攻击
    什么是sql注入呢 sql注入是比较常见的网络攻击方式之一,他不是利用操作系统的bug来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库。
    它会寻找到SQL注入的位置,判断服务器类型和后台数据库类型,针对不同的服务器和数据库特点进行SQL注入攻击

数据库权限怎么去做

  • 数据库权限可以给他建一个最大管理员 然后在管理员下面还可以建用户 都可以设置他的权限 查询、删除等权限

mysql事务

  • 执行的一些sql语句 要么全部成功 要么全部失败 不会出现部分成功部分失败
    MySQL 事务主要用于处理操作量大,复杂度高的数据。多个操作构成一个事务
    事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
    原子性 一致性 隔离性 持久性

mysql参数调优有哪些

  • 最大连接数,连接时间超时等

mysql数据备份有哪些

  • dump、 binlog
  • dump 全量 数据备份dump 数据备份的好处是防止意外情况导致数据损坏或者数据丢失的情况下,可以通过备份去找回那份数据
  • binlog 增量 二进制日志 binlog 可以调取通过日志记录的sql语句再次执行 找回丢失且没备份的那段数据

什么是mysql集群

  • 集群就是用来解决单点故障的
  • 多个mysql形成一个集群 统一对外提供服务 避免单击故障 数据的不一致则通过相互传导备份去做 主从读写分离
  • mysql集群的典型部署是在某个网络中的不同机器上面安装集群的各个组建,因此mysql集群有称之为 网络数据库

什么是docker?

  • docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中。
  • 核心
    docker有3大核心:镜像、容器、仓库。

一些常用的linux命令

引用地址:linux常用命令

持续更新中......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容