mysql语法、特殊符号及正则表达式的使用

http://blog.csdn.net/pipisorry/article/details/46764495

Mysql常用显示命令

1、显示当前数据库服务器中的数据库列表:

mysql> SHOW DATABASES;

注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。

2、进入数据库

mysql> USE 库名;

2、显示数据库中的数据表

mysql> SHOW TABLES;

3、显示数据表的结构

mysql> DESCRIBE 表名;

4、建立数据库

mysql> CREATE DATABASE 库名;

5、建立数据表:

mysql> USE 库名;

mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));

6、删除数据库

mysql> DROP DATABASE 库名;

7、删除多个数据表

mysql> DROP TABLE 表名,表名;

8、将表中记录清空:

mysql> DELETE FROM 表名;

9、显示表中的记录

mysql> SELECT * FROM 表名;

10、往表中插入新的字段

mysql> alter tabel 表名 add column 字段名 varchar(10);

10、往表中插入记录:

mysql> INSERT INTO 表名 VALUES (”hyq”,”M”);

11、修改字段类型:

mysql> alter table 表名 modify column 字段名 varchar(12);

11、更新表中数据:

mysql-> UPDATE 表名 SET 字段名1=‘a‘,字段名2=‘b‘ WHERE 字段名3=‘c‘;

12、用文本方式将数据装入数据表中:

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE 表名;

13、导入.sql文件命令:

mysql> USE 数据库名;

mysql> SOURCE d:/mysql.sql;

14、命令行修改root密码:

mysql> UPDATE mysql.user SET password=PASSWORD(‘新密码‘) WHERE User=‘root‘;

mysql> FLUSH PRIVILEGES;

15、显示use的数据库名:

mysql> SELECT DATABASE();

16、显示当前的user:

mysql> SELECT USER();

Note:

1. 操作都是在MySQL的提示符下进行的,而且每个命令以分号结束。

2. sql语句对大小写不敏感

[MySQL命令详解]

http://blog.csdn.net/pipisorry/article/details/46764495

MySQL索引使用规则

  1. 用于索引的最好的备选数据列是那些出现在WHERE子句、join子句、ORDER BY或GROUP BY子句中的列。
  2. 什么情况下应不建或少建索引?

    a. 表记录太少

    b. 经常插入、删除、修改的表

    c. 经常和主字段一块查询但主字段索引值比较多的表字段

  3. 复合索引的创建:

    比如有一条语句是这样的:

    select * from users where area=’beijing’ and age=22;

    如果我们是在area和age上分别创建单个索引的话,由于mysql查询每次只能使用一个索引,所以虽然这样已经相对不做索引时全表扫描提高了很多效率,但是如果在area、age两列上创建复合索引的话将带来更高的效率。

    如果我们创建了(area, age,salary)的复合索引,那么其实相当于创建了(area,age,salary)、(area,age)、(area)三个索引,这被称为最佳左前缀

  4. 复合索引的建立以及最左前缀原则:

    如果你需要索引一个字符串数据列,那么最好在任何适当的情况下都应该指定前缀长度。你可以索引CHAR、VARCHAR、BINARY、VARBINARY、BLOB和TEXT数据列的前缀。

    假设你在表的state、city和zip数据列上建立了复合索引。索引中的数据行按照state/city/zip次序排列,因此它们也会自动地按照state/city/zip次序排列。这意味着,即使你在查询中只指定了state值,或者指定state和city值,MySQL也可以使用这个索引。因此,这个索引可以被用于搜索如下所示的数据列组合:(state, city, zip)(state, city)(state)

  5. 索引不会包含有NULL值的列

    只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。

  6. mysql查询只使用一个索引.

    因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。

  7. 一般情况下不鼓励使用like操作.

    如果非使用不可,如何使用也是一个问题。like “%a%” 不会使用索引而like “aaa%”可以使用索引。

  8. 不要在列上进行运算,select * from users where YEAR(adddate)
  9. 不使用NOT IN操作:

    NOT IN操作不会使用索引将进行全表扫描。NOT IN可以用NOT EXISTS代替.

[mysql索引箴言集]

http://blog.csdn.net/pipisorry/article/details/46764495

mysql特殊符号

% (百分号)  :

代表任意长度(长度可以为0)的字符串

例:a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab等都满足该匹配串

_ (下横线):

代表任意单个字符

例:a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串

字符串引号:

在SQL中,表示字符串引号强烈建议使用单引号(‘)。虽然MySQL(和PHP搭配之最佳组合)也可以使用双引号("),但是为了和sql server(WINDOWS平台上强大的数据库平台)和Oracle(大型网站数据库平台)统一,建议都使用单引号。如果在字符串中也有单引号出现的话,在SQL中需要将其替换为两个单引号(‘‘),DBMS会将其解释为一个单引号的。

SQL的换行符和字符串连接符:

在MySQL(和PHP搭配之最佳组合)、sql server(WINDOWS平台上强大的数据库平台)和Oracle(大型网站数据库平台)中均有不同,下面以列表显示。  MySQL(和PHP搭配之最佳组合)sql server(WINDOWS平台上强大的数据库平台)Oracle(大型网站数据库平台)换行符\n或\r\n或CHAR(10)CHAR(13)CHR(10)字符串连接符CONCAT()+||或CONCAT()

宏变量标识符(&) :

在Oracle(大型网站数据库平台)里有特殊含义,是一个宏变量标识符,在SQLPLUS里执行SELECT ‘AAA BBB‘ AS STR FROM DUAL,它会提示你输入宏变量值,所有如果SQL里有(&),建议用单引号括起来,如SELECT ‘AAA‘||‘&‘||‘nbsp;BBB‘ AS STR FROM DUAL它就不会提示了。

mysql正则表达式

replace、regexp的用法

0 Comments | This entry was posted on Apr 08 2010

mysql replace用法

1.replace into

replace into table (id,name) values(‘1′,‘aa‘),(‘2′,‘bb‘)

此语句的作用是向表table中插入两条记录。如果主键id为1或2不存在

就相当于

insert into table (id,name) values(‘1′,‘aa‘),(‘2′,‘bb‘)

如果存在相同的值则不会插入数据

2.replace(object,search,replace)

把object中出现search的全部替换为replace

select replace(‘www.163.com‘,‘w‘,‘Ww‘)—>WwWwWw.163.com

例:把表table中的name字段中的aa替换为bb

update table set name=replace(name,‘aa‘,‘bb‘)

——————————————————————————–

扩展正则表达式

由MySQL提供的模式匹配的其它类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。

扩展正则表达式的一些字符是:

· ‘.‘匹配任何单个的字符。

· 字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。

· “ * ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。

如果REGEXP模式与被测试值的任何地方匹配,模式就匹配(这不同于LIKE模式匹配,只有与整个值匹配,模式才匹配)。

为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。

为了说明扩展正则表达式如何工作,下面使用REGEXP重写上面所示的LIKE查询:

为了找出以“b”开头的名字,使用“^”匹配名字的开始:

mysql> SELECT * FROM pet WHERE name REGEXP ‘^b‘;

[mysql 正则表达式]

[删除mysql数据库中所有不以JP开头的表]

from:http://blog.csdn.net/pipisorry/article/details/46764495

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 13:02:09

mysql语法、特殊符号及正则表达式的使用的相关文章

学习mysql语法--基础篇(一)

  前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分:    一.创建用户,创建数据库,给用户分配权限,删除用户权限.    二.MYSQL中常见的数据类型 三.表-创建表.主键.外键    四.数据库设计的三大范式 以下所有代码全部在新建查询表里面使用mysql语法编辑. 1.创建用户,创建数据库,给用户分配权限,删除用户权限. /* SQL 多行注释 */-- SQL 单行注释 创建

MySQL语法大全

select * from emp;  #注释#---------------------------#----命令行连接MySql--------- #启动mysql服务器net start mysql #关闭   net stop mysql   #进入mysql -h 主机地址 -u 用户名 -p 用户密码 #退出exit #---------------------------#----MySql用户管理--------- #修改密码:首先在DOS 下进入mysql安装路径的bin目录下

学习mysql语法--基础篇(二)

  前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: [SQL语句的组成]   DML 数据操作语言(插入.删除和修改数据库中的数据)INSERT UPDATE DELETE   DQL 数据查询语言(用来查询数据库中的数据)SELECT   DCL 数据控制语言(用来控制存取许可.存取权限等)CREATE   DDL 数据定义语言(用来建立数据库.数据库对象和定义表的列)CREATE

MySql 语法细节补充

一.注释: 1.单行注释#开始到行结束. 2.多行注释/* ...  */. 二.数据库存在性判断: 1.例如:如果数据库存在则删除 drop database if exists 数据库名; 2.例如:如果数据库不存在则创建 create database if not exists 数据库名; MySql 语法细节补充,布布扣,bubuko.com

MYSQL 语法大全自己总结的

mysql语法大全--------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不需要空格mysql -uroot -p[密码]--退出exit;----MySql用户管理-----------数据库root密码修改操作系统:windows操作系统,xp或win7.1.dos命令行窗口 进入e:\mysql5.5\bin ,停止mysql 服务    e:\mysql5.5\bin

更改AngularJS的语法解析符号

// 更改AngularJS的语法解析符号 app.config(function ($interpolateProvider) { $interpolateProvider.startSymbol('[[').endSymbol(']]'); } );

MySQL语法执行工作原理

目录 [TOC] 一.MySQL语法执行工作原理 客户端请求由Nginx等负载均衡服务器转交给Tomcat,Tomcat从MySQL中捞取数据,如果请求的数据在MySQL缓存中,那么MySQL会将缓存中捞取到的数据返回给客户端,如果缓存中没有请求的数据,那么MySQL会通过解析器解析SQL语法是否有问题(用户权限问题),在SQL语法没有问题的情况下,将SQL转交给优化器,看SQL是否通过索引等来进行查询,再通过存储引擎在磁盘中捞取数据. 详细流程如下,对于IE-->TOMCAT-->MySQL

深入浅出MongoDB(五)mongo语法和mysql语法对比学习

我们总是在对比中看到自己的优点和缺点,对于mongodb来说也是一样,对比学习让我们尽快的掌握关于mongodb的基础知识. mongodb与mysql命令对比 关系型数据库一般是由数据库(database).表(table).记录(record)三个层次概念组成.而非关系型数据库mongodb是由数据库(database).集合(collection).文档对象(document)三个层次组成.mongodb对于关系型数据库里的表,没有行和列的关系概念,这体现了模式的自由特点. 语法命令如下列

mysql 语法统计

mysql数据库具有开源,跨平台性,免费使用, 功能强大且使用方便等众多优点.了解它的语法是很有必要的.那么咱们现在就来学习一下它的语法结构. 一: 创建数据库: create {database | schema} [if not exists] 库名 [default] character set [=] charset_name if not exists  如果存在,就忽略. character set 默认字符集编码. 创建数据库: create database 修改数据库: alt