sql语句--记忆
2014-12-26 17:23
176 查看
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,主键也是索引。
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,主键也是索引。
相关文章推荐
- ASP中巧用Split()函数生成SQL查询语句
- 不当编写SQL语句导致系统不安全
- DataGrid连接Access的快速分页法(3)——SQL语句的选用(降序)
- docmd.runsql 语句执行的操作查询如何回滚?
- 不要忽视SQL语句中的空格
- SQL(Structured Query Language)语句分哪几类
- DataGrid连接Access的快速分页法(2)——SQL语句的选用(升序)
- oracle常用sql查询语句部分集合(图文)
- 如何用外部程序优化SQL语句中的IN和EXISTS
- SQL邮件自动应答(根据收到的邮件中的查询语句回复语句执行结果)
- Web开发中一种用sql语句完成分页的高效率方法,以jsp/asp为例
- 动态SQL语句
- 一个sql语句,包含有几乎所有标准查询语法
- 水晶报表使用经验谈2--使用sql语句直接生成dataset做为报表的数据源!
- SQL语句导入导出大全
- 精妙SQL语句
- MS SQLSERVER 中如何得到表的创建语句
- 使用Sql语句从数据库读出数据字典(Good)
- 一条检验SQL基础的语句!
- Vc++数据库编程中SQL语句构造失败的原因