sql语句--记忆

来源:互联网 发布:淘宝客佣金代扣时间 编辑:程序博客网 时间:2024/06/06 17:46

1.

create database name; 创建数据库

use databasename; 选择数据库
drop database name 直接删除数据库,不提醒
show tables; 显示表
describe tablename; 表的详细描述
select 中加上distinct去除重复字段
mysqladmin drop databasename 删除数据库前,有提示。

显示当前mysql版本和当前日期
select version(),current_date;


增删改查:

insert into tables values ("name","sex",age);

delete from test wheres name="name";

update test set age=26 where name='zyf';

select * from test where name='sjw'


2、CentOS系统修改mysql中root的密码:
shell>mysql -u root -p
mysql> update user set password=password(”xueok654123″) where user=’root’;
mysql> flush privileges //刷新数据库
mysql>use dbname; 打开数据库:
mysql>show databases; 显示所有数据库
mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后
mysql>describe user; 显示表mysql数据库中user表的列信息);


显示所有不包含name为”Bob”和phone number为“3444444”的记录,并以phone_number字段排序:

mysql> SELECT * FROM [table name] WHERE name != "Bob" AND phone_number = '3444444' order by phone_number;

显示所有的name以字母“bob”开头和phone number为“3444444”的记录:

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444';

显示name以字母“bob”开头和phone number为“3444444”的第1至第5条记录:

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444' limit 1,5;

使用正则表达式查找记录:使用“正则表达式二进制”强制区分大小写:此命令查找以a开头的任何记录:

mysql> SELECT * FROM [table name] WHERE rec RLIKE "^a";

返回唯一不同的记录:

mysql> SELECT DISTINCT [column name] FROM [table name];

以升序或降序显示选定的记录:

mysql> SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;

返回行数:

mysql> SELECT COUNT(*) FROM [table name];

统计指定列值的总和:

mysql> SELECT SUM(*) FROM [table name];

创建数据表例2

mysql> create table [table name] (personid int(50) not null auto_increment primary key,firstname varchar(35),middlename varchar(50),lastnamevarchar(50) default 'bato');

例如,删除表 MyClass中编号为1 的记录:
    mysql> delete from MyClass where id=1;


--------------------------------------------我是分割线----------------------------------------------

每个用户的email是唯一的,如果用户使用email作为用户名登陆的话,就需要查询出email对应的一条记录。

SELECT * FROM t_user WHERE email=?;

 

上面的语句实现了查询email对应的一条用户信息,但是由于email这一列没有加索引,会导致全表扫描,效率会很低。

 

SELECT * FROM t_user WHERE email=? LIMIT 1;

 

加上LIMIT 1,只要找到了对应的一条记录,就不会继续向下扫描了,效率会大大提高。

 

LIMIT 1适用于查询结果为1条(也可能为0)会导致全表扫描的的SQL语句。

如果email是索引的话,就不需要加上LIMIT 1,如果是根据主键查询一条记录也不需要LIMIT 1,主键也是索引。
0 0
原创粉丝点击