SQL语句(mysql)「一」
SQL的一些常用语句
创建类
CREAT DATABASE <数据库名>;
该方法创建一个数据库,当要使用一个数据库的时候,使用指令:
USE <数据库名>;
查看当前正在使用的数据库可以使用:
SHOW STATUS;
CREAT TABLE <表名>(
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>,
<列名> <数据类型> <列参数...>,
PRIMARY KEY (<主键><, <主键>...> )
);
该方法在正在use的数据库中创建一张表。列名,也叫字段名,从Excel的术语中说就是表头的意思。列名后要指定列的数据类型,如INT,VARCHAR(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 <表名>;
使用该语句,可以查看数据表中所有的数据。关于SELECT,FROM语句将在后面介绍。
注意:当数据表为空的时候,会显示 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
如上表示,输出表student中id >= 10的数据的name和class。
LIKE子句
表达式还支持模糊匹配。其中%匹配一个或以上的任意字符,_匹配一个任意字符。如:"%2%"可以匹配"123",或者"s123"等等,但是不能匹配"23"或者"12"或者"2"。_2_可以匹配"123"但不可以匹配"0123"。
SELECT name class FROM <student> WHERE name like "王%"
如上筛选出所有name姓王的数据,并输出他们的name和class。
REGEXP子句
REGEXP用于正则匹配,其比LIKE更加灵活。
SELECT name class FROM <student> WHERE name like "王.+"
如上筛选出所有name姓王的数据,并输出他们的name和class。
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)「一」的更多相关文章
- 全国省市级联数据sql语句 mysql版
全国省市级联数据sql语句 mysql版 --省级 provincial create table provincial ( provincialID int, provincialName ), p ...
- JDBC进阶之PreparedStatement执行SQL语句(MySQL)
一.什么是PreparedStatement 参阅Java API文档,我们可以知道,PreparedStatement是Statement的子接口(如图所示),表示预编译的 SQ ...
- sql语句 MySQL
1.操作数据库 (1)创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specifica ...
- 50个SQL语句(MySQL版) 建表 插入数据
本学期正在学习数据库,前段时间老师让我们做一下50个经典SQL语句,当时做的比较快,有一些也是百度的,自我感觉理解的不是很透彻. 所以从本篇随笔开始,我将进行50个经典SQL语句的复盘,加深理解. 答 ...
- php 执行大量sql语句 MySQL server has gone away
php 设置超时时间单位秒 set_time_limit(3600); php 设置内存限制ini_set('memory_limit', '1024M'); mysql服务端接收到的包的大小 ...
- mysql用户管理 常用sql语句 mysql数据库备份恢复
- 50个SQL语句(MySQL版) 问题十四
--------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...
- 50个SQL语句(MySQL版) 问题十三
--------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...
- 50个SQL语句(MySQL版) 问题十二
--------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...
- 50个SQL语句(MySQL版) 问题十一
--------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...
随机推荐
- 一套基于 .NET Core 开发的支付SDK集 - paylink
前言 在我们的日常工作开发中对接一些第三方支付是比较常见的,如最常见的就是支付宝.微信支付的对接.今天给大家推荐一个基于.NET Core开发的支付SDK集:paylink,它极大简化了API调用及通 ...
- 一款Redis可视化工具:ARDM | 京东云技术团队
出众的软件有很多,适合自己的才是最好的. Another Redis Desktop Manager 更快.更好.更稳定的Redis桌面(GUI)管理客户端,兼容Windows.Mac.Linux,性 ...
- ProcessingJS
ProcessingJS 图形 rect(x, y, w, h)(在新窗口中打开) ellipse(x, y, w, h) triangle(x1, y1, x2, y2, x3, y3) line( ...
- MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记录-1
一个5.7版本的MySQL单点数据库,版本信息是: Server version: 5.7.31-log MySQL Community Server (GPL) 数据量已达到760G,日常存在性能问 ...
- Jmeter连接数据库sql语句操作,查询后取值做变量
第一步 :导入jar包 第二步 :创建JDBC Reques 第三步 :创建JDBC Connection Configuration 第四步:在request中输入数据进行操作 Query Typ ...
- 征集 meme
当你每次兴致勃勃地和好友分享自己喜欢的歌但 Ta 不屑一顾 / 不喜欢时:
- Ansible与Ansible部署
Ansible与Ansible部署 Ansible简介: Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩.它融合了众多老牌运维工具的优点,Pubbet ...
- [C++]线段树 区间修改 区间查询
线段树 区间修改 区间查询 请先阅读上一篇Bolg 算法思想 这次要引入一个核心变量: lazy 懒标记 为了达到区间修改的目的 又为了减少运算量 所以就需要引入懒标记这个变量 用来满足 即用即推 没 ...
- 极致性能优化:前端SSR渲染利器Qwik.js
引言 前端性能已成为网站和应用成功的关键要素之一.用户期望快速加载的页面和流畅的交互,而前端框架的选择对于实现这些目标至关重要.然而,传统的前端框架在某些情况下可能面临性能挑战且存在技术壁垒. 在这个 ...
- CSP2023游击
Day-1 上车了,玩了一路. 到酒店里,玩了一晚上. Day 1 爆O! Day 2 走了,玩了一路. AF0了, 哎不是,谁给我反对了 考完了,心情不是很好 分数就不说出来了吧,太低了怕你们笑话我 ...