Mysql基本用法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Mysql基本用法(关键字不区分大小写)
mysql接受自由格式的输入:它收集输入行但直到看见分号才执行,字符串用单引号或双引号包围都可以
MySQL服务器支持3种注释风格:
·从‘#’字符从行尾。
·从‘-- ’序列到行尾。请注意‘-- ’(双破折号)注释风格要求第2个破折号后面至少跟一个空格符(例如空格、tab、换行符等等)。该语法与标准SQL注释语法稍有不同
·从/*序列到后面的*/序列。结束序列不一定在同一行中,因此该语法允许注释跨越多行。
#查询MySQL数据库中所有用户的信息
SELECT * FROM er;
#查询MySQL数据库中所有用户
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM er;
#查看数据库中某个用户的权限
show grants for 'root'@'%';
列出用户所有权限(很多截图截不到)select * from er where user='root';
#查看user表结构
desc er;
#登录数据库
mysql -hlocalhost -uroot -p;
#修改密码
mysqladmin -uroot -pold password new;
#显示数据库
SHOW DATABASES;
#显示数据表
SHOW TABLES;
#选择数据库
use examples;
#创建数据库并设置编码utf-8 多语言
create database `examples` default character set utf8 collate utf8_general_ci; #删除数据库
drop database examples;
mysql用表格(行和列)方式显示查询输出。第一行包含列的标签,随后的行是查询结果。通常,列标签是你取自数据库表的列的名字。如果你正在检索一个表达式而非表列的值(如刚才的例子),mysql用表达式本身标记列。
查询MySQL的版本号和当前日期
SELECT VERSION(),CURRENT_DATE();
查询结果如下:
可将mysql用作一个简单的计算器
SELECT SIN(PI()/4),(4+1)*5;
查询结果如下:
#查询MySQL可用的字符集
SHOW CHARACTER SET;
#查看字符集的校对规则
SHOW COLLATION LIKE 'latin1%';
#创建表
create table test(
id int(10) unsigned zerofill not null auto_increment,
email varchar(40) not null,
ip varchar(15) not null,
state int(10) not null default '-1',
primary key (id)
)engine=InnoDB;
MYSQL同一服务中两个数据库A,B,复制其中的一张表到另一数据库中create table b.table1as select*from a.table1
#显示表结构:例显示test表的表结构
DESCRIBE send;或show columns from send;
#删除表
drop table test;
#重命名表
alter table test_old rename test_new;
#添加列
alter table test add cn int(4) not null;
#修改列
alter table test change id id1 varchar(10) not null;
#删除列
alter table test drop cn;
#创建索引
alter table test add index (cn,id);
#删除索引
alter table test drop index cn
#插入/装载数据
insert into test (id,email,ip,state) values(2,'qq@','127.0.0.1','0');
SQL命令导入文件,也可在navicat中直接通过导入(import)文件操作进行数据装载LOAD DATA LOCAL INFILE 'event.txt' INTO TABLE event;
#删除数据
delete from test where id = 1;
#修改数据
update test set id='1',email='q@' where id=1;
#查数据
select * from test;#取所有数据
select * from test limit 0,2;#取前两条数据
select * from test email like '%qq%' #查含有qq字符_表示一个字符%表示多个字符
select * from test order by id asc;#降序desc,升序ASC
select * from test id not in('2','3');#id不含2,3或者去掉not表示含有
select * from test timer between 1 and 10;#数据在1,10之间
MySQL提供的模式匹配:
1.标准的SQL模式匹配(操作符:LIKE/NOT LIKE)
SQL模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零字符)。在MySQL中,SQL的模式默认是忽略大小写的。例名字为三个字符’ma_’;以b开头:’b%’;以b结尾:’%b’;包含b:’%b%’。查询出表中名字包含b的记录为:SELECT * FROM pet WHERE name LIKE '%b%';
2.一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的
格式
由MySQL提供的模式匹配的其它类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE 和NOT RLIKE,它们是同义词)。‘.’匹配任何单个的字符。·字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。“ * ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”.