SQL的一些常用语句

创建类

CREAT DATABASE <数据库名>;

该方法创建一个数据库,当要使用一个数据库的时候,使用指令:

USE <数据库名>;

查看当前正在使用的数据库可以使用:

SHOW STATUS;
CREAT TABLE <表名>(
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>,
PRIMARY KEY (<主键><, <主键>...> )
);

该方法在正在use的数据库中创建一张表。列名,也叫字段名,从Excel的术语中说就是表头的意思。列名后要指定列的数据类型,如INTVARCHAR(10)等等。

列参数还有:

NOT NULL  不允许使用NULL
AUTO_INCREMENT 自动+1(在INSERT数据的时候,这一列上的值自动+1)
等等...

其中,如果你设置了某一列为AUTO_INCREMENT的时候,还要使用PRIMARY KEY (<主键><, <主键>...> )将其设置为主键。多个主键使用,分割。

特别提示:括号内所包含的最后项的后面不需要逗号。

如:

CREAT TABLE <表名>(
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>,
);

是错误的,应该写为

CREAT TABLE <表名>(
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>
);

显示类

SHOW DATABASES;

查看当前所拥有的所有数据库库名可以使用该语句。

特别注意:是DATABASES而不是DATABASE,创建数据库的时候是DATABASE而不是DATABASES。

SHOW TABLES;

查看当前USE的数据库中所有表表名可以使用该语句。

SELECT * FROM <表名>;

使用该语句,可以查看数据表中所有的数据。关于SELECTFROM语句将在后面介绍。

注意:当数据表为空的时候,会显示 Empty set (0.00 sec)

删除类

DROP DATABASE <数据库名>;

该语句可以删除数据库。

DROP TABLE <表名>;

该语句可以删除当前USE的数据库中的数据表。

注:关于删除表中数据请参考后文

数据表操作

插入数据

INSERT INTO <表名> (<列名1>, <列名2>...) VALUES (<数据1>, <数据2>),(<数据1>, <数据2>)...;

该语句在数据表中新建一行,其中<列名1>的插入<数据1>,<列名2>的插入<数据2>,其他列插入NULL,如果设置了自增,则自己加一。

一次性插入多条数据使用,间隔。

注意,设置了NOT NULL的列不可以插入NULL。如果无特殊要求,应该总保持NOT NULL的设置,因为NULL会影响性能。

查询数据

SELECT <列名>,<列名>... FROM <表名>;

该语句会显示数据表中指定列的数据。当然,如果你想显示所有的数据,你可以使用SELECT * FROM <表名>,值得注意的是*并不是正则表达式的意思。

WHERE、LIKE和REGEXP子句

FROM语句后面可以接WHERE字句,用于筛选。

SELECT xxx FROM <表名> WHERE <条件表达式>,<条件表达式>...

多个条件表达式之间使用,分割。id = 10表示筛选出id列值10的数据。同时还支持>,>=等符号。

SELECT name class FROM <student> WHERE id >= 10

如上表示,输出表studentid >= 10的数据的nameclass

LIKE子句

表达式还支持模糊匹配。其中%匹配一个或以上的任意字符,_匹配一个任意字符。如:"%2%"可以匹配"123",或者"s123"等等,但是不能匹配"23"或者"12"或者"2"_2_可以匹配"123"但不可以匹配"0123"

SELECT name class FROM <student> WHERE name like "王%"

如上筛选出所有name的数据,并输出他们的nameclass

REGEXP子句

REGEXP用于正则匹配,其比LIKE更加灵活。

SELECT name class FROM <student> WHERE name like "王.+"

如上筛选出所有name的数据,并输出他们的nameclass

ORDER BY子句

ORDER BY子句可以用于排序数据。注意:数据本身的顺序其实没有改变。

SELECT name class FROM <student> ORDER BY <排序语句>,<排序语句>...

其中,排序语句由列名和排序方式组成:<列名> <排序方式>。多个排序语句用,分隔。

排序类型有:ASC正向排序[默认],DESC反向排序。

UNION

UNION可以合并多个SELECT的结果。和并方式有两种,一种是交集DISTINCT(默认),一种是并集ALL

SELECT <列名>,<列名> FROM <表名> <WHERE、ORDER BY等子句> UNION <方式> SELECT <列名> FROM <表名>,<列名> <WHERE、ORDER BY等子句> UNION <方式> ...

交集:当输出两个数据完全一样(每一列上的数据)的时候,这组数据只会显示一次。

并集:就是把数据全部合并到一起输出。

修改数据

可以使用UPDATE来修改表中的数据。

UPDATE <表名> SET <列名> = <新值>, <列名> = <新值> <WHERE子句>

注意:WHERE子句用来指定修改那些数据,如果不使用WHERE子句,则会修改数据表中所有的数据。

删除数据

可以使用DELETE来修改表中的数据。

DELETE FROM <表名> <WHERE子句>

注意:WHERE子句用来指定删除那些数据,如果不使用WHERE子句,则会删除数据表中所有的数据。

SQL语句(mysql)「一」的更多相关文章

  1. 全国省市级联数据sql语句 mysql版

    全国省市级联数据sql语句 mysql版 --省级 provincial create table provincial ( provincialID int, provincialName ), p ...

  2. JDBC进阶之PreparedStatement执行SQL语句(MySQL)

    一.什么是PreparedStatement           参阅Java API文档,我们可以知道,PreparedStatement是Statement的子接口(如图所示),表示预编译的 SQ ...

  3. sql语句 MySQL

    1.操作数据库 (1)创建数据库 CREATE  DATABASE  [IF NOT EXISTS] db_name [create_specification [, create_specifica ...

  4. 50个SQL语句(MySQL版) 建表 插入数据

    本学期正在学习数据库,前段时间老师让我们做一下50个经典SQL语句,当时做的比较快,有一些也是百度的,自我感觉理解的不是很透彻. 所以从本篇随笔开始,我将进行50个经典SQL语句的复盘,加深理解. 答 ...

  5. php 执行大量sql语句 MySQL server has gone away

    php 设置超时时间单位秒 set_time_limit(3600);   php 设置内存限制ini_set('memory_limit', '1024M');   mysql服务端接收到的包的大小 ...

  6. mysql用户管理 常用sql语句 mysql数据库备份恢复

     

  7. 50个SQL语句(MySQL版) 问题十四

    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...

  8. 50个SQL语句(MySQL版) 问题十三

    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...

  9. 50个SQL语句(MySQL版) 问题十二

    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...

  10. 50个SQL语句(MySQL版) 问题十一

    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...

随机推荐

  1. c语言代码练习2(2)

    //利用for循环,输出1-10阶乘的和#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main( ) { int i = ...

  2. D 算法模板(Boruvka's Algorithm)

    Description 为了方便你测试,本题为D题简化版. You are given a complete undirected graph with nn vertices. A number a ...

  3. 每天5分钟复习OpenStack(四) virsh 常用命令

    在上一章节中,我们拉起了第一台虚拟机,但是执行virsh shutdown 关机是无法关机的,需要使用virsh destroy 强制断电的命令来关机.为什么会这样了? 这里我们介绍下 QGA的概念 ...

  4. 从零用VitePress搭建博客教程(6) -– 第三方组件库的使用和VitePress搭建组件库文档

    接上一节:从零用VitePress搭建博客教程(5) - 如何自定义页面模板.给页面添加独有的className和使页面标题变成侧边目录? 九.第三方组件库的使用 我们经常看见UI组件库的文档,这里我 ...

  5. CSP2021游记

    题外话 中午十二点半到了考场.没到时间不让进,恰巧发现 lhm 在对面饭店于是去讨论了一下上午 J 组的题,复习了线段树板子( 等到进考场坐好的时候已经两点半了,看考号本来以为我们同机房三个同学会坐一 ...

  6. 特殊符号传到后端发生变异 &amp; &quot;&lt;&gt;

    业务遇到bug,前端传回数据 & ,到后台接收到的数据就是 & 后台接收到的数据就携带了amp;的后缀 网上查找原因,大部分说法是前端传回的数据导致,但是实际并不是,这里是框架的正则过 ...

  7. java代审之XXE

    一.什么是XXE漏洞 xxe攻击也叫xml外部实体注入攻击,是一种常见的Web应用安全漏洞,通过漏洞可导致任意文件读取.目录遍历.探测内网端口.攻击内网网站.发起DoS拒绝服务攻击.执行系统命令等安全 ...

  8. 花了三年时间开发的开源项目,终于500 个 Star 了!

    waynboot-mall 商城项目从疫情开始初期着手准备,到现在已经经过了 3 年多的时间,从项目初期到现在,一个人持续迭代,修复漏洞,添加功能,经历了前端开发工具从 vue2.vue-cli 切换 ...

  9. kubernetes驱逐机制总结

    概述 k8s的驱逐机制是指在某些场景下,如node节点notReady.node节点压力较大等,将pod从某个node节点驱逐掉,让pod的上层控制器重新创建出新的pod来重新调度到其他node节点. ...

  10. gitlab : You won`t be able to pull or push project code via SSH until you add an SSH key to your profile(导致的问题:合并不了代码)

    gitlab : You won`t be able to pull or push project code via SSH until you add an SSH key to your pro ...