Mysql数据库的sql语句:
一.基本操作
1.连接数据库
 mysql -uroot -proot -hlocalhost -P3306 (-u表示用户名,-p密码,-h主机,-P端口号)
2.选择和使用数据库
 查看数据库列表: SHOW DATABASES;
 选择数据库: USE 数据库名;
3.查看数据库中的所有表
 SHOW TABLES;
 
4.查看表结构:
 方式一:SHOW COLUMNS FROM 表名;
 方式二:DESCRIBE(DESC) 表名;
5.SHOW STATUS ,显示广泛的服务器信息
  SHOW GRANTS ,查看用户权限
  SHOW ERROR和SHOW WARNINGS ,显示服务器错误或警告信息
二.检索数据
 SELECT stu_name
 FROM students;
-----------------------------------------------------------
 SELECT stu_name,stu_sex,stu_age
 FROM students;
-----------------------------------------------------------------------
 SELECT *
 FROM students;
---------------------------------------------------------------------
 SELECT DISTINCT class_id  --唯一性关键字distinct
 FROM students;     
------------------------------------------------------------------
 SELECT stu_name  --limit关键字实现分页查询(一个参数)
 FROM students
 LIMIT 5;
 ----------------------------------------------------------------------
 SELECT stu_name  --limit关键字实现分页查询(两个参数)
 FROM students
 LIMIT 0,5;
---------------------------------------------------------------------------
 SELECT stu_name  --limit关键字实现分页查询
 FROM students
 LIMIT 5,5;
-------------------------------------------------------------------------
 SELECT stu_name  --limit关键字实现分页查询
 FROM students
 LIMIT 5 OFFSET 0;  --mysql5的新替代方法(取o行开始的5行)
三:排序检索数据(ORDER BY)
 SELECT prod_name --单列排序
 FROM products
 ORFER BY prod_name;
 -----------------------------------------------------------
 SELECT prod_id,pro_price,prod_name --多列排序
 FROM products
 ORFER BY prod_price,prod_name;          --排序顺序按照指定顺序排序,先对prod_price排序,后对prod_name排序,如果prod_price列的所有值都是唯一的,则不会对prod_name排序
 ---------------------------------------------------------
 SELECT prod_id,pro_price,prod_name --多列排序
 FROM products
 ORFER BY prod_price DESC,prod_name;     --指定排序规则(DESC降序,ASC升序,Mysql默认升序排序)
 注意:在字典(dictionary)排序中,A和a默认相同,这是Mysql的默认行为
 ---------------------------------------------------------
 ORDER BY 和 LIMIT 组合实现查询一个列的中的最高或最低的值。
 找出最珍贵物品的值:
 SELECT prod_price
 FROM products
 PRDER BY prod_price DESC
 LIMIT 1;
 
 -------------------------------------------
四.过滤数据
 WHERE字句实现过滤
 SELECT prod_price,prod_name
 FROM product
 WHERER prod_price = 2.5;
 -----------------------------------
 WHERE字句操作符
 操作符  说明
 =  等于
 <>  不等于
 !=  不等于
 >  大于
 >=  大于等于
 <  小于
 <=  小于等于
 BETWEEN  在指定的两个值之间
 ----------------------------------------------------------
 SELECT prod_price,prod_name
 FROM product
 WHERER prod_name = 'fuses';
 因为Mysql在执行匹配时默认不区分大小写,所以Fuses也会被返回
 ----------------------------------------------------------
 
 空值检查
 查询价格为空值的产品的名称:
 SELECT prod_name
 FROM prodects
 WHERE prod_price IS NULL;
 ------------------------------------------
IN关键字(实现的效果和 OR 相同)
 SELECT prod_name,prod_price
 FROM products
 WHERE vend_id in (1002,1003)
 ORDER BY prod_name;
 相当于:
 SELECT prod_name,prod_price
 FROM products
 WHERE vend_id = 1002 OR vend_id = 1003
 ORDER BY prod_name;
 为什么使用IN ?
 IN操作符的语法更清楚且直观。
 使用IN,计算的次序更加容易管理。
 IN操作符一般比OR操作符执行更快。
 IN最大的优点是可以包含其他SELECT语句,是的能够动态的建立WHERE字句。
 -------------------------------------------------------------------------
 NOT关键字   用来否认后面的条件可以对 IN  ,BETWEEN ,EXISTS字句取反。
 SELECT prod_name,prod_price
 FROM products
 WHERE vend_id NOT IN (1002,1003)
 ORDER BY prod_name;
 ---------------------------------------------------------------------------
五:通配符
 LIke  用来只是Mysql说明后面的检索条件是使用通配符
 通配符有两种:
 %  匹配任意个数的字符
 _  匹配单个字符
 select prod_id,prod_name
 from products
 where prod_name like '%jes%';
 使用通配符的技巧:除非非常需要,否则不使用。
 尽量不要在搜索模式的开始处使用,把通配符至于搜索的开始处,搜索起来是最慢的。
 -------------------------------------------------------------------------------
六:正则表达式
 检索出列prod_mame包含文本1000的所有的行:
 SELECT prod_name
 FROM products
 WHERE prod_name REGEXP '1000'
 ORDER BY prod_name;
 跟LIKE的语句很像
 SELECT prod_name
 FROM products
 WHERE prod_name LIKE '%1000%'
 ORDER BY prod_name;
 ---------------------------------------------
 SELECT prod_name  --匹配多个字符之一(进行OR匹配)
 FROM products
 WHERE prod_name REGEXP '1000|2000|3000'
 ORDER BY prod_name;
 ------------------------------------------------
 SELECT prod_name  --[] 匹配[]中单个字符
 FROM products
 WHERE prod_name REGEXP '[123] Ton'
 ORDER BY prod_name;
 -------------------------------------------------------
 SELECT prod_name  --[|||] 匹配[]中单个字符,效果如上面
 FROM products
 WHERE prod_name REGEXP '[1|2|3] Ton'    --1 Ton ,2 Ton,3 Ton
 ORDER BY prod_name;
 ---------------------------------------------------------------
 SELECT prod_name  --注意
 FROM products
 WHERE prod_name REGEXP '1|2|3 Ton'    --这里匹配的是1 ,2,3 Ton
 ORDER BY prod_name;
 -----------------------------------------------------------------
 匹配范围:[3-6]匹配3-6   [a-z]匹配a-z
 SELECT prod_name
 FROM products
 WHERE prod_name REGEXP '[1-5] Ton' --匹配 1 Ton  ,2 Ton, 3 Ton, 4 Ton ,5 Ton
 ORDER BY prod_name;
 ---------------------------------------------------------------------------------
 匹配特殊字符 . | [] - (注意Mysql使用\\)
 SELECT prod_name
 FROM prodects
 WHERE prod_name REGEXP '\\.'    --匹配含有.的行
 ORDER BY prod_name;
 ------------------------------------------------------------
 空白元字符
 元字符  说明
 \\f  换页
 \\n  换行
 \\r  回车
 \\t  制表
 \\v  纵向制表
 -------------------------------------------------------------
 匹配字符类
 字符类
 类  说明
 [:alnum:] 任意字母和数字(同[a-zA-Z0-9])
 [:alpha:] 任意字母(同[a-zA-Z])
 [:blank:] 空格和制表(同[\\t])
 [:cotrl:] ASCII码控制字符(ASCII0-31和127)
 [:digit:] 任意数字(同[0-9])
 [:graph:] 与print相同,但不包含空格
 [:lower:] 任意小写字母(同[a-z])
 [:upper:] 任意大写字母
 [:print:] 任意可打印字符
 [:punct:] 既不在[:alnum:]也不在[:cotrl:]中的字符
 [:space:] 包括空格在内的任意空白字符(同[\\t\\f\\r\\n\\v])
 [:xdigit:] 任意十六进制数字(同[a-fA-F0-9])
 -------------------------------------------------------------
 匹配多个实例
 重复元字符
 元字符  说明
 *  0个或多个匹配
 +  一个或多个匹配(相当于{1,})
 ?  0个或者1个匹配(相当于{0,1})
 {n}  指定数目的匹配
 {n,}  不少于指定数目的匹配
 {n,m}  指定数目的范围(m不超过255)
 
 下面例子匹配:\\( 匹配),[0-9]匹配任意数字,stick?匹配stick和stick(后面有任意字符),\\)匹配 )
 SELECT prod_name
 FROM products
 WHERE prod_name REGEXP '\\([0-9] stick?\\)'
 ORDER BY prod_name;
 下面例子:匹配连在一起的四个字符
 SELECT prod_name
 FROM products
 WHERE prod_name REGEXP '[[:digit:]{4}]'
 ORDER BY prod_name;
 --------------------------------------------------------------
 定位符
 定位元字符
 元字符  说明
 ^  文本的开始
 $  文本的结束
 [[:<:]]  词的开始
 [[:<:]]  词的结束
 
 匹配产品名称以数字或者.开头产品
 SELECT prod_name
 FROM prodducts
 WHERE prod_name REGEXP '^[0-9\\.]'
 ORDER BY prod_name;
 ---------------------------------------------------------------
 LIKE 和 REGEXP的区别?
 LIKE和REGEXP起类似的作用,但LIKE匹配的是整个串,而REGEXP匹配的是字串
 REGEXP加入^ 和 $ 家可以实现与LIKE一样的作用
 -----------------------------------------------------------------
 
 

sql语句(Mysql数据库)的更多相关文章

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

     

  2. mysql / pgsql 使用sql语句查询数据库所有表注释已经表字段注释

    mysql使用sql语句查询数据库所有表注释已经表字段注释(转载)   场景: 1. 要查询数据库 "mammothcode" 下所有表名以及表注释 /* 查询数据库 ‘mammo ...

  3. oracle 用sql语句管理数据库

    基础sql语句 创建数据库 :create database database_name; 创建表:create table(字段名 字段类型 字段为空约束 ,字段名 字段类型 字段为空约束,,,, ...

  4. 043:Django使用原生SQL语句操作数据库

    Django使用原生SQL语句操作数据库 Django配置连接数据库: 在操作数据库之前,首先先要连接数据库.这里我们以配置 MySQL 为例来讲解. Django 连接数据库,不需要单独的创建一个连 ...

  5. 2-06使用SQL语句创建数据库3

    向现有数据库中添加文件组和数据文件几种方式以及步骤: 第一种:在视图下添加文件组和数据文件. 添加文件组的步骤: 右击你想要添加文件组的数据库点属性,然后点文件组就可以添加. 添加数据文件的步骤: 下 ...

  6. 使用SQL语句清空数据库所有表的数据

    使用SQL语句清空数据库所有表的数据 近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用SQL语句一次清空所有数据.找到了三种方法进 ...

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

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

  8. SQL语句获取数据库中的表主键,自增列,所有列

    SQL语句获取数据库中的表主键,自增列,所有列   获取表主键 1:SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_U ...

  9. 【转载】C#常用数据库Sqlserver通过SQL语句查询数据库以及表的大小

    在Sqlserver数据库中,一般我们查看数据库的大小可以通过查找到数据库文件来查看,但如果要查找数据表Table的大小的话,则不可通过此方法,在Sqlserver数据库中,提供了相应的SQL语句来查 ...

  10. SQL语句还原数据库并移动文件到指定路径

    用SQL语句还原数据库时如果不指定数据库文件的存储路径,则默认把数据文件和日志文件存放到与原数据库相同的文件路径中,这样可能会产生错误,比如执行下面的语句: restore database Smar ...

随机推荐

  1. SVN 客户端使用

    一.TortoiseSVN基本设置 1.1 客户端设置     1.1  语言设置       二.基本操作 2.1 浏览服务器           用户名跟密码,跟公司配置管理员人员获取,没有专门的 ...

  2. 关于chrom56版本以后的form标签提交bug

    最近遇到一个情况: 低版本的浏览器i运行如下代码: function query_mission(query_tag) { // 创建form表单 var ip_list = getIpList() ...

  3. Elasticsearch之如何合理分配索引分片

    大多数ElasticSearch用户在创建索引时通用会问的一个重要问题是:我需要创建多少个分片? 在本文中, 我将介绍在分片分配时的一些权衡以及不同设置带来的性能影响. 如果想搞清晰你的分片策略以及如 ...

  4. w10下Oracle 11g完全干净卸载

    1.关闭oracle所有的服务.可以在windows的服务管理器中关闭:   2.打开注册表:regedit 打开路径: <找注册表 :开始->运行->regedit>   H ...

  5. oracle什么时候须要commit

    今天在oracle的SQL plus 中运行了删除和查询操作,然后在PL/SQL中也运行查询操作,语句一样,结果却不一样,让我大感郁闷,后来才突然想到可能是两边数据不一致造成的,可是为什么不一致呢,就 ...

  6. CH1102 火车进出栈问题(高精/卡特兰数)

    描述 一列火车n节车厢,依次编号为1,2,3,-,n.每节车厢有两种运动方式,进栈与出栈,问n节车厢出栈的可能排列方式有多少种. 输入格式 一个数,n(n<=60000) 输出格式 一个数s表示 ...

  7. mysql/mariadb学习过程中出现的问题与解决

    mysql> insert into student values(,,'CS'); ERROR (): Duplicate entry ' for key 'PRIMARY'(duplecat ...

  8. Python学习 :常用模块(二)

    常用模块(二) 四.os模块 os模块是与操作系统交互的一个接口,用于对操作系统进行调用 os.getcwd() # 提供当前工作目录 os.chdir() # 改变当前工作目录 os.curdir( ...

  9. Get與Post的區別--總結隨筆

    關於Get與Post的區別的文章,在網上太多了:有優點有缺點,今天我給各位大哥做一個總結性的隨筆,還請多多包涵~ 首先是W3School上的答案,請查收: GET在浏览器回退时是无害的,而POST会再 ...

  10. 【转】 不需要任何权限获得Android设备的唯一ID

    不需要任何权限获得Android设备的唯一ID,权限android设备id 这个问题来自于Is there a unique Android device ID? 我对这个问题的答案做了整理,包括将另 ...